在 ArcGIS Server 10.7 中,管理员可以将地理处理服务(或多个地理处理服务)的作业目录从磁盘位置更改为 Microsoft Azure 云存储位置。 如果地理处理服务始终具有较大的输出,则可以使用此选项来扩展存储资源。
注:
如果发布 Web 工具时,在地图图像图层中查看输出选项已打开,则您无法将云存储用作生成的地理处理服务的作业目录。 在此工作流中进行更改后,该服务将损坏。
准备 Azure 环境
您需要一个 Microsoft Azure 帐户来创建存储帐户以及 Blob 容器和表。
创建 Azure 存储帐户
所有存储帐户必须满足以下要求:
- 需要标准性能存储帐户。
- 此帐户可以是常规用途 v2(推荐)或常规用途 v1 帐户。 不支持 Blob 存储、Block Blob 存储和 Azure 文件存储帐户。
- 建议使用热访问层。
- 可以根据组织的需要调整存储帐户的其他高级设置。
部署存储帐户后,请复制存储帐户访问键的 key1,以便在将帐户注册为 ArcGIS Server 云存储时使用。
创建 Blob 容器和表
在同一存储帐户中创建 Blob 容器和表。 如果地理处理服务采用不同的存储帐户,则无法识别这些服务。
还可以为每个异步地理处理服务创建唯一队列。 为每个服务将 "jobsStoreQueue":"<name of the queue>" 添加到 serviceProperties。
请注意您创建的容器、表和可选队列的确切名称;稍后您将会在以下步骤中使用它们。
将作业目录移动到 Azure
部署 Azure Blob 容器和表后,请在 ArcGIS Server 中注册 Blob 容器并相应地更改服务属性。
- 登录 ArcGIS Server 管理员目录,然后浏览到注册项目
- 以 JSON 形式提供 Azure Blob 容器和表的连接信息。 请参阅下面的示例。
- 返回管理员目录的主页,然后单击服务。
- 找到要配置为使用 Azure Blob 容器的地理处理服务,单击服务名称,然后单击编辑。
- 在服务的 JSON 表示中,添加具有新的唯一 serviceId、云存储名称和服务队列的以下密钥对:
"serviceId": "<a unique service ID>", "jobQueueStore":"/cloudStores/<name of your cloud store>", "jobTableStore": "/cloudStores/<name of your cloud store>", "outputStore": "/cloudStores/<name of your cloud store>", "jobObjectStore": "/cloudStores/<name of your cloud store>", "jobsStoreQueue": "<name of the queue>",
提示:
云存储的名称将位于管理员目录中其数据项目 URL 端点的末尾。
- 单击保存编辑内容确认。 地理处理服务将自动重启,这需要一些时间。
- 如果要配置多个地理处理服务以将 Azure Blob 容器用作其作业目录,请对每个服务重复执行步骤 4 - 6。
JSON 示例
在本示例中,您还可以使用您自己的伪影替换 dataname、myaccountkey、storageaccountname、containername、optionalfoldername 和 tablename。
注册项目{
"path": "/cloudStores/dataname",
"type": "cloudStore",
"provider": "azure",
"info": {
"isManaged": false,
"connectionString": {
"accountKey":"myaccontkey",
"accountName":"mystorageaccountname",
"defaultEndpointsProtocol":"https",
"accountEndpoint":"core.windows.net",
"credentialType":"accessKey"
},
"objectStore": "containername/optionalfoldername",
"tableStore":"tablename"
}
}
通过在上面的步骤 5 中添加键值对更改地理处理服务的服务属性 JSON。
编辑 GPServer。
{
"serviceName": "myGPService1",
<... removed to save space ...>
"resultMapServer": "false",
"maximumRecords": "1000",
"virtualOutputDir": "/rest/directories/arcgisoutput",
<... below is the new key-values needed ...>
"serviceId": "this_is_a_unique_serviceid",
"jobQueueStore":"/cloudStores/azure",
"jobTableStore": "/cloudStores/azure",
"outputStore": "/cloudStores/azure",
"jobObjectStore": "/cloudStores/azure",
"jobsStoreQueue": "this_is_a_unique_queue_name",
<... end of new key-values needed ...>
"portalURL": "https://domain/webadaptor/",
"toolbox": <... removed to save space ...>
},
"portalProperties": < ...removed to save space... >,
"extensions": < ...removed to save space... >,
"frameworkProperties": {},
"datasets": []
}