Compartilhar via


Guia de Início Rápido: Usar o GeoCatalog do Computador Planetário Pro da Microsoft no Lote do Azure

Neste início rápido, você aprenderá a usar um recurso do Microsoft Planetary Computer Pro GeoCatalog no Lote do Azure para processar dados geoespaciais em escala.

O Lote do Azure é um serviço de agendamento de trabalho baseado em nuvem que permite executar cargas de trabalho HPC (computação paralela e de alto desempenho) em larga escala. Combinando o Azure Batch com o Microsoft Planetary Computer Pro, você pode:

  • Processar grandes volumes de dados geoespaciais em paralelo entre vários nós de computação
  • Autenticar com segurança nas APIs do GeoCatalog usando identidades gerenciadas
  • Aumentar ou reduzir a potência de processamento com base nas demandas de trabalho.
  • Automatizar pipelines de dados geoespaciais sem gerenciar a infraestrutura

Guia de início rápido demonstra como configurar um pool Batch com uma identidade gerenciada atribuída pelo usuário, configurar permissões para acessar o GeoCatalog e executar trabalhos que fazem consultas à API STAC.

Dica

Para obter uma visão geral das opções de desenvolvimento de aplicativos com o Microsoft Planetary Computer Pro, consulte Conectar e criar aplicativos com seus dados.

Pré-requisitos

Antes de começar, verifique se você atende aos seguintes requisitos para concluir este início rápido:

  • Uma conta do Azure com uma assinatura ativa. Use o link Criar uma conta gratuitamente.
  • Um recurso do Microsoft Planetary Computer Pro GeoCatalog. Um computador Linux com as seguintes ferramentas instaladas:

Criar uma conta do Batch

Crie um grupo de recursos:

az group create \
    --name spatiobatchdemo \
    --location uksouth

Crie uma conta de armazenamento:

az storage account create \
    --resource-group spatiobatchdemo \
    --name spatiobatchstorage \
    --location uksouth \
    --sku Standard_LRS

Atribua o Storage Blob Data Contributor para o usuário atual à conta de armazenamento:

az role assignment create \
    --role "Storage Blob Data Contributor" \
    --assignee $(az account show --query user.name -o tsv) \
    --scope $(az storage account show --name spatiobatchstorage --resource-group spatiobatchdemo --query id -o tsv)

Criar uma conta do Batch

az batch account create \
    --name spatiobatch \
    --storage-account spatiobatchstorage \
    --resource-group spatiobatchdemo \
    --location uksouth

Importante

Verifique se você tem cota suficiente para criar um pool de nós de computador. Se você não tiver cota suficiente, poderá solicitar um aumento seguindo as instruções na documentação de cotas e limites do Azure Batch.

Faça login na nova conta do Batch executando o seguinte comando:

az batch account login \
    --name spatiobatch \
    --resource-group spatiobatchdemo \
    --shared-key-auth

Depois de autenticar sua conta com o Batch, os comandos subsequentes az batch nesta sessão usarão a conta do Batch que você criou.

Criar uma identidade gerenciada atribuída pelo usuário:

az identity create \
    --name spatiobatchidentity \
    --resource-group spatiobatchdemo

Crie um pool de nós de computação usando o portal do Azure:

  1. No portal do Azure, navegue até sua conta do Lote e selecione Pools: captura de tela do portal do Azure mostrando a seção Pools de uma conta do Lote, com opções para adicionar e gerenciar pools.
  2. Selecione + Adicionar para criar um novo pool e selecione Atribuído pelo usuário como a identidade do pool: captura de tela do portal do Azure mostrando a página Adicionar Pool, em que os usuários podem definir configurações para um novo pool, incluindo identidade, sistema operacional e tamanho da VM.
  3. Selecione a Identidade Gerenciada Atribuída ao Usuário que você criou anteriormente: captura de tela do portal do Azure mostrando a seleção de uma Identidade Gerenciada Atribuída ao Usuário para o pool do Batch.
  4. Selecione seu sistema operacional preferencial e o tamanho da VM. Nesta demonstração, usamos o Ubuntu Server 20.04 LTS:  Captura de tela da página de seleção do tamanho da VM para o pool de Batch, onde os usuários podem escolher o tamanho e a configuração da máquina virtual para seus nós de computação.
  5. Habilite a Tarefa Iniciar, defina a seguintelinha de comando:bash -c "apt-get update && apt-get install jq python3-pip -y && curl -sL https://aka.ms/InstallAzureCLIDeb | bash"e defina o Nível de elevação para Usuário automático do pool, Administrador: Captura de tela da página de configuração Iniciar Tarefa para um pool do Lote. A página inclui campos para especificar um script de linha de comando, nível de elevação e outras configurações para inicializar nós de computação.
  6. Selecione OK para criar o pool.

Atribuir permissões à identidade gerenciada

Você precisa fornecer o acesso de identidade gerenciada ao GeoCatalog. Vá para o GeoCatalog, selecione no controle de acesso (IAM) e selecione Adicionar atribuição de função:

Captura de tela do portal do Azure mostrando a página Adicionar atribuição de função. A página inclui campos para selecionar uma função, atribuir acesso a um usuário, grupo ou identidade gerenciada e examinar a atribuição antes de confirmar.

Selecione a função apropriada com base em suas necessidades GeoCatalog Administrator ou GeoCatalog Readerselecione Avançar:

Captura de tela do portal do Azure mostrando a página Selecionar função. A página inclui um menu suspenso para escolher uma função, como o Administrador do GeoCatalog ou o Leitor de GeoCatalog, e um botão para prosseguir para a próxima etapa.

Selecione a identidade gerenciada que você criou e selecione Examinar + atribuir.

Captura de tela do portal do Azure mostrando a página Selecionar identidade. A página inclui uma lista de identidades gerenciadas disponíveis, permitindo que os usuários escolham a identidade que desejam atribuir ao pool do Lote.

Preparar o trabalho em lote

Crie um contêiner na conta de armazenamento:

az storage container create \
    --name scripts \
    --account-name spatiobatchstorage

Carregue o script no contêiner:

az storage blob upload \
    --container-name scripts \
    --file src/task.py \
    --name task.py \
    --account-name spatiobatchstorage

Executar as tarefas em lote

Há dois exemplos neste início rápido: um script Python e um script Bash. Você pode usar qualquer um deles para criar um trabalho.

Tarefa de script Python

Para executar o trabalho de script python, execute os seguintes comandos:

geocatalog_url="<geocatalog url>"
token_expiration=$(date -u -d "30 minutes" "+%Y-%m-%dT%H:%M:%SZ")
python_task_url=$(az storage blob generate-sas --account-name spatiobatchstorage --container-name scripts --name task.py --permissions r --expiry $token_expiration --auth-mode login --as-user --full-uri -o tsv)

cat src/pythonjob.json | perl -pe "s,##PYTHON_TASK_URL##,$python_task_url,g" | perl -pe "s,##GEOCATALOG_URL##,$geocatalog_url,g" | az batch job create --json-file /dev/stdin

A tarefa Python executa o seguinte script:

import json
from os import environ
import requests
from azure.identity import DefaultAzureCredential

MPCPRO_APP_ID = "https://geocatalog.spatio.azure.com"
credential = DefaultAzureCredential()
access_token = credential.get_token(f"{MPCPRO_APP_ID}/.default")

geocatalog_url = environ["GEOCATALOG_URL"]

response = requests.get(
    f"{geocatalog_url}/stac/collections",
    headers={"Authorization": "Bearer " + access_token.token},
    params={"api-version": "2025-04-30-preview"},
)
print(json.dumps(response.json(), indent=2))

Que usa DefaultAzureCredential para autenticar com a identidade gerenciada e recupera as coleções do GeoCatalog. Para obter os resultados do trabalho, execute o seguinte comando:

az batch task file download \
    --job-id pythonjob1 \
    --task-id task1 \
    --file-path "stdout.txt" \
    --destination /dev/stdout

Trabalho do Bash

Para executar o trabalho de script bash, execute os seguintes comandos:

geocatalog_url="<geocatalog url>"

cat src/bashjob.json | perl -pe "s,##GEOCATALOG_URL##,$geocatalog_url,g" | az batch job create --json-file /dev/stdin

A tarefa Bash executa o seguinte script Bash:

az login --identity --allow-no-subscriptions > /dev/null
token=$(az account get-access-token --resource https://geocatalog.spatio.azure.com --query accessToken --output tsv)
curl --header \"Authorization: Bearer $token\" $GEOCATALOG_URL/stac/collections | jq

Que usa az login --identity para autenticar com a identidade gerenciada e recupera as coleções do GeoCatalog. Para obter os resultados do trabalho, execute o seguinte comando:

az batch task file download \
    --job-id bashjob1 \
    --task-id task1 \
    --file-path "stdout.txt" \
    --destination /dev/stdout