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 容器和表。如果地理处理服务采用不同的存储帐户,则无法识别这些服务。

请注意您创建的表的确切名称;稍后您将会在 ArcGIS Server 中使用它。

将作业目录移动到 Azure

部署 Azure Blob 容器和表后,请在 ArcGIS Server 中注册 Blob 容器并相应地更改服务属性。

  1. 登录 ArcGIS Server Manager,并向服务器注册存储帐户的 Blob 容器
  2. 当 Blob 容器已注册为云存储时,请使用 REST API 将其链接到 Azure 表。登录到 ArcGIS Server 管理员目录 https://gisserver.domain.com:6443/arcgis/admin
  3. 转至数据 > 项目 > /CloudStores,找到新建 BLOB 容器,然后单击编辑以打开“编辑数据项目”端点。
  4. 在项目的 JSON 表示中,请添加具有 Azure 表名称的以下密钥对:

    "tableStore":"<name of Azure table>"

  5. 单击更新确认。
  6. 返回管理员目录的主页,然后单击服务
  7. 找到要配置为使用 Azure blob 容器的地理处理服务(或其中一个服务),单击服务名称,然后单击编辑
  8. 在服务的 JSON 表示中,找到并编辑具有云存储名称的以下密钥对:

    "jobsDirectory":"/cloudStores/<name of your cloud store>"
    提示:

    云存储的名称将位于管理员目录中其数据项目 URL 端点的末尾。

  9. 单击保存编辑内容确认。
  10. 如果要配置多个地理处理服务以将 Azure Blob 容器用作其作业目录,请对每个服务重复执行步骤 4 - 9。

JSON 示例

在本示例中,Azure 帐户有一个名为 mystorageaccount 的存储帐户,并且在此存储帐户中有一个名为 myblob 的 Blob 容器和一个名为 mytable 的表。key1mystorageaccountthisisafakekey12345。您需要地理处理服务 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": []
}