Como criar o registo de dados

O serviço de registo de dados permite-lhe registar conteúdos de dados numa Conta de Armazenamento do Azure com a sua conta Azure Maps. Um exemplo de dados pode incluir uma coleção de Geofences utilizada no serviço geofencing Azure Maps. Outro exemplo são os ficheiros ZIP que contêm pacotes de desenho (DWG) ou ficheiros GeoJSON que Azure Maps o Criador utiliza para criar ou atualizar mapas interiores.

Pré-requisitos

Importante

  • Este artigo utiliza o us.atlas.microsoft.com URL geográfico. Se a sua conta não tiver sido criada no Estados Unidos, tem de utilizar um URL geográfico diferente. Para obter mais informações, veja Access to Creator services (Acesso aos serviços do Criador).
  • Nos exemplos de URL neste artigo, terá de substituir:
    • {Azure-Maps-Subscription-key}com a sua chave de subscrição Azure Maps.
    • {udid} com o ID de dados de utilizador do seu registo de dados. Para obter mais informações, veja O ID de dados do utilizador.

Preparar para registar dados no Azure Maps

Antes de poder registar dados no Azure Maps, tem de criar um ambiente que contenha todos os componentes necessários. Precisa de uma conta de armazenamento com um ou mais contentores que contêm os ficheiros que pretende registar e as identidades geridas para autenticação. Esta secção explica como preparar o ambiente do Azure para registar dados no Azure Maps.

Criar identidades geridas

Existem dois tipos de identidades geridas: atribuídas pelo sistema e atribuídas pelo utilizador. As identidades geridas atribuídas pelo sistema têm o ciclo de vida associado ao recurso que as criou. As identidades geridas atribuídas pelo utilizador podem ser utilizadas em vários recursos. Para obter mais informações, veja Identidades geridas para recursos do Azure.

Utilize os seguintes passos para criar uma identidade gerida e adicioná-la à sua conta Azure Maps.

Criar uma identidade gerida atribuída pelo sistema:

  1. Aceda à sua conta de Azure Maps no portal do Azure.
  2. Selecione Identidade no menu esquerdo.
  3. Alterne o Estado para Ativado.

Para obter mais informações, veja Identidades geridas para recursos do Azure.

Criar um contentor e carregar ficheiros de dados

Antes de adicionar ficheiros a um registo de dados, tem de os carregar para um contentor na sua conta de armazenamento do Azure. Os contentores são semelhantes a um diretório num sistema de ficheiros, são como os seus ficheiros são organizados na sua conta de armazenamento do Azure.

Para criar um contentor no portal do Azure, siga estes passos:

  1. Na sua conta de armazenamento do Azure, selecione Contentores na secção Armazenamento de dados no painel de navegação.

  2. Selecione + Contentor no painel Contentores para apresentar o painel Novo contentor .

  3. Selecione Criar para criar o contentor.

    Uma captura de ecrã da nova página de contentor numa conta de armazenamento do Azure.

    Assim que o contentor tiver sido criado, pode carregar ficheiros para o mesmo.

  4. Assim que o contentor for criado, selecione-o.

    Captura de ecrã a mostrar o novo contentor que acabou de ser criado numa conta de armazenamento do Azure.

  5. Selecione Carregar na barra de ferramentas e selecione um ou mais ficheiros

  6. Selecione o botão Carregar.

    Uma captura de ecrã da página carregar blob ao criar um contentor.

Adicionar um arquivo de dados

Depois de criar uma conta de armazenamento do Azure com ficheiros carregados para um ou mais contentores, está pronto para criar o arquivo de dados que liga as contas de armazenamento à sua conta de Azure Maps.

Importante

Todas as contas de armazenamento ligadas a uma conta Azure Maps têm de estar na mesma localização geográfica. Para obter mais informações, veja Azure Maps âmbito geográfico do serviço.

Nota

Se não tiver uma conta de armazenamento, consulte Criar uma conta de armazenamento.

  1. Selecione Arquivo de dados no menu esquerdo da sua conta Azure Maps.

  2. Selecione o botão Adicionar . É apresentado um ecrã Adicionar arquivo de dados no lado direito.

  3. Introduza o ID do Arquivo de Dados pretendido e, em seguida, selecione o Nome da subscrição e a Conta de armazenamento nas listas pendentes.

  4. Selecione Adicionar.

    Uma captura de ecrã a mostrar o ecrã adicionar arquivo de dados.

O novo arquivo de dados aparece agora na lista de arquivos de dados.

Atribuir funções a identidades geridas e adicioná-las ao arquivo de dados

Assim que as identidades geridas e o arquivo de dados forem criados, pode adicionar as identidades geridas ao arquivo de dados e atribuir-lhes simultaneamente as funções Contribuidor e Leitor de Dados de Blobs de Armazenamento . Embora seja possível adicionar funções às suas identidades geridas diretamente nas identidades geridas ou na conta de armazenamento, o que pode fazer facilmente ao associá-las ao Azure Maps arquivo de dados diretamente no painel do arquivo de dados.

Nota

Cada identidade gerida associada ao arquivo de dados precisará das funções Contribuidor e Leitor de Dados de Blobs de Armazenamento concedidas às mesmas. Se não tiver as permissões necessárias para conceder funções a identidades geridas, consulte o administrador do Azure. Para atribuir funções às suas identidades geridas e associá-las a um arquivo de dados:

  1. Selecione Arquivo de Dados no menu esquerdo da sua conta Azure Maps.

  2. Selecione um ou mais arquivos de dados na lista e, em seguida, Atribuir funções.

  3. Selecione a Identidade gerida a associar aos arquivos de dados selecionados na lista pendente.

  4. Selecione Contribuidor e Leitor de Dados de Blobs de Armazenamento na lista pendente Funções a atribuir .

    Uma captura de ecrã a mostrar a atribuição de funções ao ecrã do arquivo de dados.

  5. Selecione o botão Atribuir .

Propriedades do registo de dados

Com um arquivo de dados criado na sua conta Azure Maps, está pronto para recolher as propriedades necessárias para criar o registo de dados.

Existem as propriedades do AzureBlob que transmite no corpo do pedido HTTP e o ID de dados de utilizador transmitido no URL.

O AzureBlob

É AzureBlob um objeto JSON que define as propriedades necessárias para criar o registo de dados.

Propriedade Descrição
kind Define que tipo de objeto está a ser registado. Atualmente, o AzureBlob é o único tipo que é suportado.
dataFormat O formato de dados do ficheiro localizado no blobUrl. O seu formato pode ser GeoJSON para o serviço espacial ou ZIP para o serviço de conversão.
msiClientId O ID da identidade gerida que está a ser utilizada para criar o registo de dados.
linkedResource O ID do arquivo de dados registado na conta Azure Maps.
O arquivo de dados contém uma ligação para o ficheiro que está a ser registado.
blobUrl Um URL a apontar para a Localização do AzurebBlob, o ficheiro importado para o contentor.

As duas secções seguintes fornecem detalhes sobre como obter os valores a utilizar para as propriedades msiClientId e blobUrl .

A propriedade msiClientId

A msiClientId propriedade é o ID da identidade gerida utilizada para criar o registo de dados. Existem dois tipos de identidades geridas: atribuídas pelo sistema e atribuídas pelo utilizador. As identidades geridas atribuídas pelo sistema têm o ciclo de vida associado ao recurso que as criou. As identidades geridas atribuídas pelo utilizador podem ser utilizadas em vários recursos. Para obter mais informações, veja Identidades geridas para recursos do Azure.

Ao utilizar identidades geridas atribuídas pelo sistema, não precisa de fornecer um valor para a msiClientId propriedade. O serviço de registo de dados utiliza automaticamente a identidade atribuída pelo sistema da conta Azure Maps quando msiClientId é nulo.

A propriedade blobUrl

A blobUrl propriedade é o caminho para o ficheiro que está a ser registado. Pode obter este valor a partir do contentor ao qual foi adicionado. registo de dados

  1. Selecione a sua conta de armazenamento no portal do Azure.

  2. Selecione Contentores no menu esquerdo.

  3. É apresentada uma lista de contentores. Selecione o contentor que contém o ficheiro que pretende registar.

  4. O contentor é aberto, mostrando uma lista dos ficheiros carregados anteriormente.

  5. Selecione o ficheiro pretendido e, em seguida, copie o URL.

    Captura de ecrã a mostrar como selecionar o URL utilizado como a propriedade blobUrl.

O ID de dados do utilizador

O ID de dados do utilizador (udid) do registo de dados é um GUID definido pelo utilizador que tem de estar em conformidade com o seguinte padrão Regex:

^[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}$

Dica

O udid é um GUID definido pelo utilizador que tem de ser fornecido ao criar um registo de dados. Se quiser ter a certeza de que tem um identificador exclusivo global (GUID), considere criá-lo ao executar uma ferramenta de geração de GUID, como o programa de linha de comandos Guidgen.exe (Disponível com o Visual Studio).

Criar um registo de dados

Agora que tem a sua conta de armazenamento com os ficheiros pretendidos associados à sua conta de Azure Maps através do arquivo de dados e que recolheu todas as propriedades necessárias, está pronto para utilizar a API de registo de dados para registar esses ficheiros. Se tiver vários ficheiros na sua conta de armazenamento do Azure que pretende registar, terá de executar o pedido de registo para cada ficheiro (udid).

Nota

O tamanho máximo de um ficheiro que pode ser registado num arquivo de dados Azure Maps é um gigabyte.

Para criar um registo de dados:

  1. Forneça as informações necessárias para referenciar a conta de armazenamento que está a ser adicionada ao registo de dados no corpo do seu pedido HTTP. As informações têm de estar no formato JSON e conter os seguintes campos:

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

    Nota

    Ao utilizar identidades geridas atribuídas pelo sistema, receberá um erro se fornecer um valor para a propriedade msiClientId no seu pedido HTTP.

    Para obter mais informações sobre as propriedades necessárias no corpo do pedido HTTP, veja Propriedades do registo de dados.

  2. Assim que tiver o corpo do pedido HTTP pronto, execute o seguinte pedido HTTP PUT:

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

    Para obter mais informações sobre a udid propriedade, veja O ID de dados do utilizador.

  3. Copie o valor da chave Operation-Location do cabeçalho de resposta.

Dica

Se o conteúdo de um ficheiro registado anteriormente for modificado, falhará a validação de dados e não será utilizável no Azure Maps até ser novamente registado. Para voltar a registar um ficheiro, execute novamente o pedido de registo, transmitindo o mesmo AzureBlob utilizado para criar o registo original. O valor da chave Operation-Location é o URL de estado que irá utilizar para verificar o estado da criação do registo de dados na próxima secção, que contém o ID de operação utilizado pela API de operação Obter .

Nota

O valor da chave Operation-Location não irá conter o subscription-key, terá de adicioná-lo ao URL do pedido ao utilizá-lo para verificar o estado de criação do registo de dados.

Verificar o estado de criação do registo de dados

Para (opcionalmente) verificar o estado do processo de criação do registo de dados, introduza o URL de estado que copiou na secção Criar um registo de dados e adicione a chave de subscrição como um parâmetro de cadeia de consulta. O pedido deve ter um aspeto semelhante ao seguinte URL:

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

Obter uma lista de todos os ficheiros no registo de dados

Utilize o pedido Lista para obter uma lista de todos os ficheiros registados numa conta Azure Maps:

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

O exemplo seguinte demonstra três estados possíveis, concluídos, em execução e com falhas:

{
  "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==."
      }
    }
  ]
}

Os dados devolvidos ao executar o pedido de lista são semelhantes aos dados fornecidos ao criar um registo com algumas adições:

property descrição
contentMD5 Hash MD5 criado a partir do conteúdo do ficheiro que está a ser registado. Para obter mais informações, veja Validação de dados
sizeInBytes O tamanho do conteúdo em bytes.

Substituir um registo de dados

Se precisar de substituir um ficheiro registado anteriormente por outro ficheiro, execute novamente o pedido de registo, transmitindo o mesmo AzureBlob utilizado para criar o registo original, exceto o blobUrl. Tem BlobUrl de ser modificado para apontar para o novo ficheiro.

Validação de dados

Quando regista um ficheiro no Azure Maps através da API de registo de dados, é criado um hash MD5 a partir do conteúdo do ficheiro, codificando-o numa impressão digital de 128 bits e guardando-o AzureBlob na propriedade .contentMD5 O hash MD5 armazenado na contentMD5 propriedade é utilizado para garantir a integridade dos dados do ficheiro. Uma vez que o algoritmo hash MD5 produz sempre a mesma saída dada a mesma entrada, o processo de validação de dados pode comparar a contentMD5 propriedade do ficheiro quando foi registado num hash do ficheiro na conta de armazenamento do Azure para verificar se está intacto e não modificado. Se o hash não for o mesmo, a validação falhará. Se o ficheiro na conta de armazenamento subjacente for alterado, a validação falhará. Se precisar de modificar o conteúdo de um ficheiro registado no Azure Maps, terá de registá-lo novamente.