Skip to main 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 Administrator Directory,然后浏览到注册项目

  2. 以 JSON 形式提供 Azure Blob 容器和表的连接信息。 请参阅下面的示例。

注册项目

在本示例中,您还可以使用您自己的伪影替换 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"
    }
  }
  1. 返回管理员目录的主页,然后单击服务。

  2. 找到要配置为使用 Azure Blob 容器的地理处理服务,单击服务名称,然后单击编辑。

  3. 在服务的 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 端点的末尾。

  4. 单击保存编辑内容确认。 地理处理服务将自动重启,这需要一些时间。

  5. 如果要配置多个地理处理服务以将 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": []
}