Skip To Content

将地理处理服务的作业目录移动到 Microsoft Azure 存储

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 容器并相应地更改服务属性。

  1. 登录 ArcGIS Server 管理员目录,然后浏览到注册项目
  2. 以 JSON 形式提供 Azure Blob 容器和表的连接信息。 请参阅下面的示例。
  3. 返回管理员目录的主页,然后单击服务
  4. 找到要配置为使用 Azure Blob 容器的地理处理服务,单击服务名称,然后单击编辑
  5. 在服务的 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 端点的末尾。

  6. 单击保存编辑内容确认。 地理处理服务将自动重启,这需要一些时间。
  7. 如果要配置多个地理处理服务以将 Azure Blob 容器用作其作业目录,请对每个服务重复执行步骤 4 - 6。

JSON 示例

在本示例中,您还可以使用您自己的伪影替换 datanamemyaccountkeystorageaccountnamecontainernameoptionalfoldernametablename

注册项目

{
    "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": []
}