Skip To Content

Перемещение каталогов сервисов геообработки в хранилище Amazon S3

В версии ArcGIS Server 10.7 администраторы могут изменить местоположение каталога заданий вместе с входными и выходными директориями с локального диска на хранилище Amazon S3. Если производительность сервисов геообработки стабильно большая, можно использовать хранилище Amazon S3 для расширения ресурсов хранения. При такой конфигурации работа сервисов геообработки может быть замедлена.

Примечание:

Слой изображения результирующей карты сервиса геообработки недоступен при такой конфигурации.

Вы можете настроить эту конфигурацию облачного хранилища с помощью ключа доступа или роли IAM, выполнив шаги, описанные ниже.

Подготовка среды Amazon Web Services (AWS)

Для сервисов синхронной геообработки требуется только сервис Amazon S3. Для асинхронных сервисов вам необходимо предоставить ArcGIS Server доступ к DynamoDB и Simple Queue Service. Ваше хранилище Amazon S3, таблица DynamoDB и Simple Queue Service должны находиться в одном регионе.

  1. Создание хранилища в Amazon S3.

    Дополнительные сведения см. в разделе Создание вашего первого хранилища S3.

  2. При необходимости создайте таблицу с serviceId в качестве ключа раздела и с jobId в качестве ключа сортировки.

    Оба ключа представлены в строковом формате. Если вы не предоставите ключи, ArcGIS Server создаст таблицу автоматически.

  3. Для каждого сервиса асинхронной геообработки создайте уникальный запрос стандартного типа в Simple Queue Service.

Использование ключа доступа

Чтобы использовать ключ доступа для подключения к хранилищу Amazon S3, выполните следующие действия:

Примечание:

Если сервис геообработки создаст файл или готовый растр, то ключ доступа будет частью URL-адреса конечного файла или растра, файла схемы JSON или URL-адресов справок. Вы должны определить, соответствует ли это политике безопасности вашей организации.

ArcGIS Server также требуется секретный ключ для ключа доступа в процессе регистрации элемента хранилища данных. Однако ArcGIS Server всегда шифрует секретный ключ.

  1. Войдите в ArcGIS Server Administrator Directory и перейдите к опции Зарегистрировать элемент.
  2. Предоставьте информацию о подключении для хранилища Amazon S3 и DynamoDB, включая ключ доступа и секретный ключ.

    Пример JSON для регистрации элемента данных в ArcGIS REST API

    {
        "path": "/cloudStores/<name of your cloud store>",
        "type": "cloudStore",
        "provider": "amazon",
        "info": {
            "isManaged": false,
            "connectionString": {
                "accessKeyId":"<your access key>",
                 "secretAccessKey":"<your secret key>",
                 "region":"<your region>",
                 "defaultEndpointsProtocol":"https",
                 "credentialType":"accesskey"
                 },
            "objectStore": "<name of your S3 bucket>/<optional folder name>",
            "dynamoDbTable":"<dynamoDB table name>"
        }
    }

  3. Вернитесь на главную страницу каталога Administrator Directory и щелкните Сервисы.
  4. Найдите сервис геообработки, который вы хотите использовать, в среде AWS, щелкните имя сервиса и выберите редактировать.
  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 элемента данных в каталоге Administrator Directory.

  6. Щелкните Сохранить изменения, чтобы подтвердить конфигурацию.

    Сервис геообработки автоматически перезапустится, что займет некоторое время.

  7. Повторите шаги с 4 по 6 для других сервисов.

Пример JSON

Измените JSON свойств сервиса геообработки, добавив пары ключ-значение, необходимые на шаге 5 выше.

Отредактируйте 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/"
 },
 "portalProperties": "",
 "extensions": "",
 "frameworkProperties": {},
 "datasets": []
}

Настройка с ролью IAM

Чтобы использовать роль IAM AWS, у вас должно быть развертывание в том же регионе, что и хранилище Amazon S3, Таблица DynamoDB и Simple Queue Service. Более подробно см. раздел ArcGIS Enterprise on Amazon Web Services.

Убедитесь, что в ваших ролях IAM установлены политики simple queue service в дополнение к политикам IAM для ArcGIS Enterprise on Amazon Web Services.

Шаги настройки те же, что и выше, за исключением регистрации хранилища данных на шаге 2. Для шага 2 используйте приведенный ниже пример JSON.

Пример JSON для регистрации элемента данных в ArcGIS REST API с помощью роли IAM

{
    "path": "/cloudStores/<name of your cloud store>",
    "type": "cloudStore",
    "provider": "amazon",
    "info": {
        "isManaged": false,
        "connectionString": {
             "region":"<your region>",
             "defaultEndpointsProtocol":"https",
             "credentialType":"iamrole"
             },
        "objectStore": "<name of your S3 bucket>/<optional folder name>",
        "dynamoDbTable":"<dynamoDB table name>"
    }
}