Создание реестра данных

Служба реестра данных позволяет регистрировать содержимое данных в учетной записи хранения Azure с помощью учетной записи Azure Maps. Примером данных может быть коллекция геозон, используемых в службе геозон Azure Maps. Другим примером являются ZIP-файлы, содержащие пакеты рисования (DWG) или файлы GeoJSON, которые Azure Maps Creator использует для создания или обновления карт помещений.

Предварительные требования

Важно!

  • В этой статье используется географический URL-адрес us.atlas.microsoft.com. Если ваша учетная запись не была создана в США, необходимо использовать другой географический URL-адрес. Дополнительные сведения см. в разделе Доступ к службам Creator.
  • В примерах URL-адресов в этой статье необходимо изменить:

Подготовка к регистрации данных в Azure Maps

Перед регистрацией данных в Azure Maps необходимо создать среду, содержащую все необходимые компоненты. Вам потребуется учетная запись хранения с одним или несколькими контейнерами, которые содержат файлы, которые вы хотите зарегистрировать, и управляемые удостоверения для проверки подлинности. В этом разделе объясняется, как подготовить среду Azure для регистрации данных в Azure Maps.

Создание управляемых удостоверений

Существует два типа управляемых удостоверений: назначаемые системой и назначаемые пользователем. Жизненный цикл управляемых удостоверений, назначаемых системой, связан с ресурсом, который их создал. Назначаемые пользователем управляемые удостоверения могут использоваться для нескольких ресурсов. Дополнительные сведения см. в статье Управляемые удостоверения для ресурсов Azure.

Выполните следующие действия, чтобы создать управляемое удостоверение и добавить его в учетную запись Azure Maps.

Создайте управляемое удостоверение, назначаемое системой:

  1. Перейдите к своей учетной записи Azure Maps в портал Azure.
  2. Выберите Удостоверение в меню слева.
  3. Переведите переключатель Состояние в положение Вкл.

Дополнительные сведения см. в статье Управляемые удостоверения для ресурсов Azure.

Создание контейнера и отправка файлов данных

Перед добавлением файлов в реестр данных необходимо передать их в контейнер в учетной записи хранения Azure. Контейнеры похожи на каталог в файловой системе, так как упорядочены файлы в вашей учетной записи хранения Azure.

Чтобы создать контейнер на портале Azure, сделайте следующее:

  1. В учетной записи хранения Azure выберите Контейнеры в разделе Хранилище данных в области навигации.

  2. Выберите + Контейнер в области Контейнеры , чтобы открыть панель Новый контейнер .

  3. Щелкните Создать, чтобы создать контейнер.

    Снимок экрана: страница нового контейнера в учетной записи хранения Azure.

    После создания контейнера вы можете отправить в него файлы.

  4. После создания контейнера выберите его.

    Снимок экрана: новый контейнер, только что созданный в учетной записи хранения Azure.

  5. Выберите Отправить на панели инструментов и выберите один или несколько файлов.

  6. Нажмите кнопку Отправить.

    Снимок экрана: страница отправки BLOB-объекта при создании контейнера.

Добавление хранилища данных

После создания учетной записи хранения Azure с файлами, отправленными в один или несколько контейнеров, вы можете создать хранилище данных, которое связывает учетные записи хранения с вашей учетной записью Azure Maps.

Важно!

Все учетные записи хранения, связанные с учетной записью Azure Maps, должны находиться в одном географическом расположении. Дополнительные сведения см. в разделе Azure Maps географических область службы.

Примечание

Если у вас нет учетной записи хранения, см. статью Создание учетной записи хранения.

  1. Выберите Хранилище данных в меню слева в учетной записи Azure Maps.

  2. Нажмите кнопку Добавить. Справа появится экран Добавление хранилища данных .

  3. Введите нужный идентификатор хранилища данных , а затем выберите имя подписки и учетную запись хранения в раскрывающихся списках.

  4. Выберите Добавить.

    Снимок экрана: экран добавления хранилища данных.

Новое хранилище данных теперь отображается в списке хранилищ данных.

Назначение ролей управляемым удостоверениям и их добавление в хранилище данных

После создания управляемых удостоверений и хранилища данных можно добавить управляемые удостоверения в хранилище данных и одновременно назначить им роли Участник и Читатель данных BLOB-объектов хранилища . Хотя можно добавить роли в управляемые удостоверения непосредственно в управляемые удостоверения или учетную запись хранения, что можно легко сделать, одновременно связав их с хранилищем данных Azure Maps непосредственно в области хранилища данных.

Примечание

Каждому управляемому удостоверению, связанному с хранилищем данных, потребуются роли участника и читателя данных BLOB-объектов хранилища . Если у вас нет необходимых разрешений для предоставления ролей управляемым удостоверениям, обратитесь к администратору Azure. Чтобы назначить роли управляемым удостоверениям и связать их с хранилищем данных, выполните приведенные ниже действия.

  1. Выберите Хранилище данных в меню слева в учетной записи Azure Maps.

  2. Выберите одно или несколько хранилищ данных из списка, а затем — Назначить роли.

  3. Выберите управляемое удостоверение , чтобы связать его с выбранными хранилищами данных из раскрывающегося списка.

  4. Выберите Участник и Читатель данных BLOB-объектов хранилища в раскрывающемся списке Роли для назначения .

    Снимок экрана: экран назначения ролей для хранилища данных.

  5. Нажмите кнопку Назначить.

Свойства реестра данных

С помощью хранилища данных, созданного в учетной записи Azure Maps, вы можете собрать свойства, необходимые для создания реестра данных.

В тексте HTTP-запроса передаются свойства AzureBlob, а в URL-адресе передается идентификатор данных пользователя .

The AzureBlob

AzureBlob это объект JSON, который определяет свойства, необходимые для создания реестра данных.

Свойство Описание
kind Определяет тип регистрируемого объекта. В настоящее время поддерживается только AzureBlob .
dataFormat Формат данных файла, расположенного в blobUrl. Его формат может быть GeoJSON для пространственной службы или ZIP для службы преобразования.
msiClientId Идентификатор управляемого удостоверения, используемого для создания реестра данных.
linkedResource Идентификатор хранилища данных, зарегистрированного в учетной записи Azure Maps.
Хранилище данных содержит ссылку на регистримый файл.
blobUrl URL-адрес, указывающий на расположение AzurebBlob, файла, импортированного в контейнер.

В следующих двух разделах содержатся сведения о том, как получить значения, используемые для свойств msiClientId, blobUrl .

Свойство msiClientId

Свойство msiClientId — это идентификатор управляемого удостоверения, используемого для создания реестра данных. Существует два типа управляемых удостоверений: назначаемые системой и назначаемые пользователем. Жизненный цикл управляемых удостоверений, назначаемых системой, связан с ресурсом, который их создал. Назначаемые пользователем управляемые удостоверения могут использоваться для нескольких ресурсов. Дополнительные сведения см. в статье Управляемые удостоверения для ресурсов Azure.

При использовании управляемых удостоверений, назначаемых системой, не нужно предоставлять значение для msiClientId свойства . Служба реестра данных автоматически использует назначенное системой удостоверение учетной записи Azure Maps, если msiClientId имеет значение NULL.

Свойство blobUrl

Свойство blobUrl — это путь к регистрируемого файлу. Это значение можно получить из контейнера, в который оно было добавлено. реестр данных

  1. Выберите учетную запись хранения в портал Azure.

  2. В меню слева выберите Контейнеры .

  3. Появится список контейнеров. Выберите контейнер, содержащий файл, который требуется зарегистрировать.

  4. Откроется контейнер со списком ранее отправленных файлов.

  5. Выберите нужный файл и скопируйте URL-адрес.

    Снимок экрана: выбор URL-адреса, используемого в качестве свойства blobUrl.

Идентификатор данных пользователя

Идентификатор данных пользователя (udid) реестра данных — это определяемый пользователем GUID, который должен соответствовать следующему шаблону регулярного выражения:

^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$

Совет

udid это определяемый пользователем ИДЕНТИФИКАТОР GUID, который необходимо указать при создании реестра данных. Если вы хотите убедиться, что у вас есть глобальный уникальный идентификатор (GUID), попробуйте создать его, запустив средство создания GUID, например программу командной строки Guidgen.exe (доступно в Visual Studio).

Создание реестра данных

Теперь, когда у вас есть учетная запись хранения с нужными файлами, связанными с учетной записью Azure Maps через хранилище данных, и вы собрали все необходимые свойства, вы можете использовать API реестра данных для регистрации этих файлов. Если в учетной записи хранения Azure есть несколько файлов, которые вы хотите зарегистрировать, необходимо выполнить запрос на регистрацию для каждого файла (udid).

Примечание

Максимальный размер файла, который можно зарегистрировать в Azure Maps хранилище данных, составляет один гигабайт.

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

  1. Укажите сведения, необходимые для ссылки на учетную запись хранения, добавляемую в реестр данных, в тексте HTTP-запроса. Сведения должны быть в формате JSON и содержать следующие поля:

    {
    "kind": "AzureBlob",
        "azureBlob": {
            "dataFormat": "geojson",
            "linkedResource": "{datastore ID}",
            "blobUrl": "https://teststorageaccount.blob.core.windows.net/testcontainer/test.geojson"
        }
    }
    

    Примечание

    При использовании управляемых удостоверений, назначаемых системой, вы получите сообщение об ошибке, если указать значение свойства msiClientId в HTTP-запросе.

    Дополнительные сведения о свойствах, необходимых в тексте HTTP-запроса, см. в разделе Свойства реестра данных.

  2. Когда текст HTTP-запроса будет готов, выполните следующий HTTP-запрос PUT:

    https://us.atlas.microsoft.com/dataRegistries/{udid}?api-version=2023-06-01&subscription-key={Your-Azure-Maps-Subscription-key} 
    
    

    Дополнительные сведения о свойстве см. в udid разделе Идентификатор данных пользователя.

  3. Скопируйте значение ключа Operation-Location из заголовка ответа.

Совет

Если содержимое ранее зарегистрированного файла будет изменено, проверка данных завершится ошибкой и не будет использоваться в Azure Maps до повторной регистрации. Чтобы повторно зарегистрировать файл, повторно запустите запрос на регистрацию, передав тот же объект AzureBlob , который использовался для создания исходной регистрации. Значение ключа Operation-Location — это URL-адрес состояния, который будет использоваться для проверка состояния создания реестра данных в следующем разделе. Он содержит идентификатор операции, используемый API операции Get.

Примечание

Значение раздела Operation-Location не будет содержать subscription-key, необходимо добавить его в URL-адрес запроса при его использовании для проверка состояния создания реестра данных.

Проверка состояния создания реестра данных

Чтобы (необязательно) проверка состояние процесса создания реестра данных, введите URL-адрес состояния, скопированный в разделе Создание реестра данных, и добавьте ключ подписки в качестве параметра строки запроса. Запрос должен выглядеть примерно так:

https://us.atlas.microsoft.com/dataRegistries/operations/{udid}?api-version=2023-06-01&subscription-key={Your-Azure-Maps-Primary-Subscription-key}

Получение списка всех файлов в реестре данных

Используйте запрос list для получения списка всех файлов, зарегистрированных в учетной записи Azure Maps:

https://us.atlas.microsoft.com/dataRegistries?api-version=2023-06-01&subscription-key={Azure-Maps-Subscription-key}

В следующем примере показано три возможных состояния: завершено, запущено и сбой:

{
  "value": [
    {
      "udid": "f6495f62-94f8-0ec2-c252-45626f82fcb2",
      "description": "Contoso Indoor Design",
      "kind": "AzureBlob",
      "azureBlob": {
        "dataFormat": "zip",
        "msiClientId": "3263cad5-ed8b-4829-b72b-3d1ba556e373",
        "linkedResource": "my-storage-account",
        "blobUrl": "https://mystorageaccount.blob.core.windows.net/my-container/my/blob/path1.zip",
        "sizeInBytes": 29920,
        "contentMD5": "CsFxZ2YSfxw3cRPlqokV0w=="
      },
      "status": "Completed"
    },
    {
      "udid": "8b1288fa-1958-4a2b-b68e-13a7i5af7d7c",
      "kind": "AzureBlob",
      "azureBlob": {
        "dataFormat": "geojson",
        "msiClientId": "3263cad5-ed8b-4829-b72b-3d1ba556e373",
        "linkedResource": "my-storage-account",
        "blobUrl": "https://mystorageaccount.blob.core.windows.net/my-container/my/blob/path2.geojson",
        "sizeInBytes": 1339
      },
      "status": "Running"
    },
    {
      "udid": "7c1288fa-2058-4a1b-b68f-13a6h5af7d7c",
      "description": "Contoso Geofence GeoJSON",
      "kind": "AzureBlob",
      "azureBlob": {
        "dataFormat": "geojson",
        "linkedResource": "my-storage-account",
        "blobUrl": "https://mystorageaccount.blob.core.windows.net/my-container/my/blob/path3.geojson",
        "sizeInBytes": 1650,
        "contentMD5": "rYpEfIeLbWZPyaICGEGy3A=="
      },
      "status": "Failed",
      "error": {
        "code": "ContentMD5Mismatch",
        "message": "Actual content MD5: sOJMJvFParkSxBsvvrPOMQ== doesn't match expected content MD5: CsFxZ2YSfxw3cRPlqokV0w==."
      }
    }
  ]
}

Данные, возвращаемые при выполнении запроса списка, аналогичны данным, предоставленным при создании реестра с несколькими дополнениями:

свойство; description
contentMD5 Хэш MD5, созданный на основе содержимого регистрируемого файла. Дополнительные сведения см. в разделе Проверка данных.
sizeInBytes Размер содержимого в байтах.

Замена реестра данных

Если необходимо заменить ранее зарегистрированный файл другим файлом, повторно выполните запрос на регистрацию, передав тот же объект AzureBlob , который использовался для создания исходной регистрации, за исключением blobUrl. Необходимо BlobUrl изменить так, чтобы он указывал на новый файл.

Проверка данных

При регистрации файла в Azure Maps с помощью API реестра данных из содержимого файла создается хэш MD5, кодирующий его в 128-разрядный отпечаток и сохраняющий его в AzureBlob качестве contentMD5 свойства . Хэш MD5, хранящийся в свойстве contentMD5 , используется для обеспечения целостности данных файла. Так как хэш-алгоритм MD5 всегда создает одни и те же выходные данные при одинаковых входных данных, процесс проверки данных может сравнить contentMD5 свойство файла при его регистрации с хэшом файла в учетной записи хранения Azure, чтобы проверка, что он нетронут и неизменен. Если хэш не совпадает, проверка завершается ошибкой. Если файл в базовой учетной записи хранения изменяется, проверка завершается ошибкой. Если необходимо изменить содержимое файла, зарегистрированного в Azure Maps, его необходимо зарегистрировать еще раз.