Skip To Content

将地理处理服务的目录迁移到 Microsoft Azure

ArcGIS Server 10.7 中,管理员可以将地理处理服务(或多个地理处理服务)的作业目录从磁盘位置更改为 Microsoft Azure 云存储位置。 如果地理处理服务始终具有较大的输出,则可以使用此选项来扩展存储资源。 使用此配置,您的服务可能会变慢。

注:

输出地图图像图层选项在此配置中不可用。

注:

警告:JSON 模式文件、helpURL、文件和栅格输出将具有对任何有权访问该服务的人可见的文件签名。 尽管该签名会在几个小时后过期,但用户可以在何处使用该签名没有限制。 请确保您的整个 Blob store 不包含敏感数据。 评估此配置是否符合您组织的安全策略。

准备 Azure 环境

您需要一个 Microsoft Azure 帐户来创建存储帐户以及 Blob 容器和表。

创建 Azure 存储帐户

所有存储帐户必须满足以下要求:

  • 需要标准性能存储帐户。
  • 此帐户需要常规用途 v2 帐户。 所有其他类型的存储帐户都没有完成此配置所需的基本存储服务。 如果您仍在使用常规用途 v1 帐户,则可能仍然可以使用。
  • 建议使用热访问层。
  • 可以根据组织的需要调整存储帐户的其他高级设置。

部署存储帐户后,请复制存储帐户访问键的 key1,以便在将帐户注册为 ArcGIS Server 云存储时使用。

创建 Blob 容器、表和队列

为所有地理处理服务创建一个 Blob 容器,以及一个用于异步地理处理服务的额外表和队列。 它们必须位于同一个存储帐户中。

  1. 创建一个 Blob 容器。
  2. 如果您正在配置异步地理处理服务,则可能还需要创建一个表。 否则,ArcGIS Server 将为您创建一个。
  3. 还可以为每个异步地理处理服务创建唯一队列。 为每个服务将 "jobsStoreQueue":"<name of the queue>" 添加到 serviceProperties

请注意您创建的容器、表和可选队列的确切名称;稍后您将会在以下步骤中使用它们。

将作业目录移动到 Azure

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

  1. 登录 ArcGIS Server 管理员目录,然后浏览到注册项目
  2. 以 JSON 形式提供 Azure Blob 容器和表的连接信息。 请参阅下面的示例。

    注册项目

    在本示例中,您还可以使用您自己的伪影替换 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"
        }
      }

  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>"
    }

    同步地理处理配置

    {
      "serviceId": "<a unique service ID>",
      "outputStore": "/cloudStores/<name of your cloud store>",
      "jobObjectStore": "/cloudStores/<name of your cloud store>"
    }
    提示:

    <name of the cloud store> 将位于管理员目录中其数据项目 URL 端点的末尾。

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

JSON 示例

通过在上面的步骤 5 中添加键值对更改地理处理服务的服务属性 JSON。

编辑 GPServer。 以下是异步地理处理服务配置的缩略 JSON。

{
  "serviceName": "myGPService1",
  "resultMapServer": "false",
  "maximumRecords": "1000",
  "virtualOutputDir": "/rest/directories/arcgisoutput", 

  "serviceId": "<this_is_a_unique_serviceid>",
  "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": "<this_is_a_unique_queue_name>", 

  "portalURL": "https://domain/webadaptor/",
  "toolbox":  "<... removed to save space ...>"
 },
 "portalProperties": "",
 "extensions": "",
 "frameworkProperties": {},
 "datasets": []
}