在 ArcGIS Server 10.7 中,管理员可以将地理处理服务(或多个地理处理服务)的作业目录从磁盘位置更改为 Microsoft Azure 云存储位置,并同时保持所有其他服务器目录不变。如果地理处理服务始终具有较大的输出,则可以使用此选项来扩展存储资源。
注:
如果发布 Web 工具时,在地图图像图层中查看输出选项已打开,则您无法将云存储用作生成的地理处理服务的作业目录。在此工作流中进行更改后,该服务将损坏。
准备 Azure 环境
您需要一个 Microsoft Azure 帐户来创建存储帐户以及 Blob 容器和表。
创建 Azure 存储帐户
所有存储帐户必须满足以下要求:
- 需要标准性能存储帐户。
- 此帐户可以是常规用途 v2(推荐)或常规用途 v1 帐户。不支持 Blob 存储、Block Blob 存储和 Azure 文件存储帐户。
- 建议使用热访问层。
- 可以根据组织的需要调整存储帐户的其他高级设置。
部署存储帐户后,请复制存储帐户访问键的 key1,以便在将帐户注册为 ArcGIS Server 云存储时使用。
创建 BLOB 容器和表
在同一存储帐户中创建 BLOB 容器和表。如果地理处理服务采用不同的存储帐户,则无法识别这些服务。
请注意您创建的表的确切名称;稍后您将会在 ArcGIS Server 中使用它。
将作业目录移动到 Azure
部署 Azure Blob 容器和表后,请在 ArcGIS Server 中注册 Blob 容器并相应地更改服务属性。
- 登录 ArcGIS Server Manager,并向服务器注册存储帐户的 Blob 容器。
- 当 Blob 容器已注册为云存储时,请使用 REST API 将其链接到 Azure 表。登录到 ArcGIS Server 管理员目录 https://gisserver.domain.com:6443/arcgis/admin。
- 转至数据 > 项目 > /CloudStores,找到新建 BLOB 容器,然后单击编辑以打开“编辑数据项目”端点。
- 在项目的 JSON 表示中,请添加具有 Azure 表名称的以下密钥对:
"tableStore":"<name of Azure table>"
- 单击更新确认。
- 返回管理员目录的主页,然后单击服务。
- 找到要配置为使用 Azure blob 容器的地理处理服务(或其中一个服务),单击服务名称,然后单击编辑。
- 在服务的 JSON 表示中,找到并编辑具有云存储名称的以下密钥对:
"jobsDirectory":"/cloudStores/<name of your cloud store>"
提示:
云存储的名称将位于管理员目录中其数据项目 URL 端点的末尾。
- 单击保存编辑内容确认。
- 如果要配置多个地理处理服务以将 Azure Blob 容器用作其作业目录,请对每个服务重复执行步骤 4 - 9。
JSON 示例
在本示例中,Azure 帐户有一个名为 mystorageaccount 的存储帐户,并且在此存储帐户中有一个名为 myblob 的 Blob 容器和一个名为 mytable 的表。key1 的 mystorageaccount 为 thisisafakekey12345。您需要地理处理服务 myGPService1 在其作业目录中使用 Azure 存储。
在注册过程中,云存储名称为 azureblob。
编辑云存储属性时,将更改 JSON,且将 "tableStore": "mytable" 添加至末尾: 编辑数据项目。{
"path": "/cloudStores/azureblob",
"type": "cloudStore",
"id": "31245-abcde...",
"provider": "azure",
"info": {
"isManaged": false,
"connectionString": "abc/def/ghi/jkl/lmn/opq",
"objectStore": "myblob",
"tableStore": "mytable"
}
}
随后可将 "jobsDirectory": "/cloudStores/azureblob", 添加至 "virtualOutputDir": "/rest/directories/arcgisoutput", 后,以更改地理处理服务的服务属性 JSON。
编辑 GPServer。
{
"serviceName": "myGPService1", <... removed to save space ...>
"resultMapServer": "false", "maximumRecords": "1000", "virtualOutputDir": "/rest/directories/arcgisoutput", "jobsDirectory": "/cloudStores/azureblob", "portalURL": "https://domain/webadaptor/", "toolbox": <... removed to save space ...>
}, "portalProperties": < ...removed to save space... >, "extensions": < ...removed to save space... >, "frameworkProperties": {}, "datasets": []
}