Partilhar via


Guia de início rápido: usar o Microsoft Planetary Computer Pro GeoCatalog no Azure Batch

Neste quickstart, aprende a usar um recurso do Microsoft Planetary Computer Pro GeoCatalog no Azure Batch para processar dados geoespaciais em grande escala.

O Azure Batch é um serviço de agendamento de tarefas baseado na cloud que lhe permite executar cargas de trabalho paralelas em grande escala e computação de alto desempenho (HPC). Ao combinar o Azure Batch com o Microsoft Planetary Computer Pro, pode:

  • Processar grandes volumes de dados geoespaciais em paralelo através de múltiplos nós de computação
  • Autentifique de forma segura nas APIs do GeoCatalog usando identidades geridas
  • Escalar o poder de processamento para cima ou para baixo com base nas exigências de carga de trabalho
  • Automatizar pipelines de dados geoespaciais sem gerir a infraestrutura

Este quickstart demonstra como configurar um pool Batch com uma identidade gerida atribuída pelo utilizador, configurar permissões para aceder ao seu GeoCatálogo e executar trabalhos que consultam a API STAC.

Sugestão

Para uma visão geral das opções de desenvolvimento de aplicações com o Microsoft Planetary Computer Pro, consulte Ligar e construir aplicações com os seus dados.

Pré-requisitos

Antes de começar, certifique-se de atender 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. Uma máquina Linux com as seguintes ferramentas instaladas:
    • da CLI do Azure
    • perl pacote.

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 ao 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)

Crie uma conta 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 não tiveres quota suficiente, podes solicitar um aumento seguindo as instruções na documentação de quotas e limites do Azure Batch.

Entre 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 usam a conta do Batch que você criou.

Crie uma identidade gerenciada atribuída ao usuário:

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

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

  1. No portal do Azure, navegue até sua conta de Lote e selecione Pools: captura de tela do portal do Azure mostrando a seção Pools de uma conta de 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 identidade do pool: captura de tela do portal do Azure mostrando a página Adicionar Pool, onde 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 de lotes.
  4. Selecione seu sistema operacional preferido e o tamanho da VM. Nesta demonstração, usamos o Ubuntu Server 20.04 LTS: Captura de tela da página de seleção de tamanho da VM para o pool de lotes, 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 Iniciar tarefa, defina a seguinte linha de comando: bash -c "apt-get update && apt-get install jq python3-pip -y && curl -sL https://aka.ms/InstallAzureCLIDeb | bash" e defina Nível de elevação como Usuário automático do pool, Admin: Captura de tela da página de configuração Iniciar tarefa para um pool de lotes. 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 seu GeoCatalog, selecione Controle de acesso (IAM) e selecione Adicionar atribuição de função:

Captura de ecrã do portal do Azure a mostrar 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 revisar a atribuição antes de confirmar.

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

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

Selecione a identidade gerenciada que você criou e, em seguida, selecione Revisar + atribuir.

Captura de ecrã do portal do Azure a mostrar 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 de lotes.

Prepare 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 emprego.

Trabalho de script em 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 em Python:

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

Tarefa de 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