Compartir a través de


Inicio rápido: Uso de Microsoft Planetary Computer Pro GeoCatalog en Azure Batch

En este inicio rápido, aprenderá a usar un recurso GeoCatalog de Microsoft Planetary Computer Pro en Azure Batch para procesar datos geoespaciales a escala.

Azure Batch es un servicio de programación de trabajos basado en la nube que permite ejecutar cargas de trabajo paralelas y de alto rendimiento (HPC) a gran escala. Al combinar Azure Batch con Microsoft Planetary Computer Pro, puede hacer lo siguiente:

  • Procesamiento de grandes volúmenes de datos geoespaciales en paralelo en varios nodos de proceso
  • Autenticación segura en las API de GeoCatalog mediante identidades administradas
  • Escalar o reducir la potencia de procesamiento en función de las necesidades de carga de trabajo
  • Automatización de canalizaciones de datos geoespaciales sin administrar la infraestructura

En este inicio rápido se muestra cómo configurar un grupo de Batch con una identidad administrada asignada por el usuario, configurar permisos para acceder a GeoCatalog y ejecutar trabajos que consultan la API de STAC.

Sugerencia

Para obtener información general sobre las opciones de desarrollo de aplicaciones con Microsoft Planetary Computer Pro, consulte Conexión y compilación de aplicaciones con los datos.

Prerrequisitos

Antes de comenzar, asegúrese de cumplir los siguientes requisitos para completar este inicio rápido:

  • Una cuenta de Azure con una suscripción activa. Use el vínculo Crear una cuenta de forma gratuita.
  • Un recurso de Microsoft Planetary Computer Pro GeoCatalog. Una máquina Linux con las siguientes herramientas instaladas:

Crear una cuenta de Batch

Cree un grupo de recursos:

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

Cree una cuenta de almacenamiento:

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

Asigne al Storage Blob Data Contributor usuario actual a la cuenta de almacenamiento:

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)

Cree una cuenta de Batch:

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

Importante

Asegúrese de tener suficiente cuota para crear un grupo de nodos informáticos. Si no tiene cuota suficiente, puede solicitar un aumento siguiendo las instrucciones de la documentación sobre cuotas y límites de Azure Batch .

Inicie sesión en la nueva cuenta de Batch ejecutando el siguiente comando:

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

Una vez que autentique su cuenta con Batch, los comandos posteriores az batch de esta sesión usarán la cuenta de Batch que usted creó.

Cree una identidad administrada asignada por el usuario:

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

Cree un grupo de nodos de proceso mediante Azure Portal:

  1. En Azure Portal, vaya a la cuenta de Batch y seleccione Grupos: captura de pantalla de Azure Portal que muestra la sección Grupos de una cuenta de Batch, con opciones para agregar y administrar grupos.
  2. Seleccione + Agregar para crear un grupo y seleccione Asignado por el usuario como identidad del grupo: Captura de pantalla de Azure Portal que muestra la página Agregar grupo, donde los usuarios pueden configurar las opciones de un nuevo grupo, incluida la identidad, el sistema operativo y el tamaño de la máquina virtual.
  3. Seleccione la identidad administrada asignada por el usuario que creó anteriormente: Recorte de pantalla de Azure Portal que muestra la selección de una identidad administrada asignada por el usuario para el grupo de Batch.
  4. Seleccione el sistema operativo y el tamaño de máquina virtual preferidos. En esta demostración, usamos Ubuntu Server 20.04 LTS: Captura de pantalla de la página de selección de tamaño de máquina virtual para el grupo de Batch, donde los usuarios pueden elegir el tamaño y la configuración de la máquina virtual para sus nodos de proceso.
  5. Habilite la Tarea Iniciar, establezca la siguiente Línea de comandos: bash -c "apt-get update && apt-get install jq python3-pip -y && curl -sL https://aka.ms/InstallAzureCLIDeb | bash" y establezca Nivel de elevación en Usuario automático del grupo, Administrador: Recorte de pantalla de la página Iniciar configuración de la tarea para un grupo de Batch. La página incluye campos para especificar un script de línea de comandos, un nivel de elevación y otra configuración para inicializar nodos de proceso.
  6. Seleccione Aceptar para crear el grupo.

Asignar permisos a la identidad administrada

Debe proporcionar acceso a la identidad administrada a GeoCatalog. Vaya a GeoCatalog, seleccione Control de acceso (IAM) y seleccione Agregar asignación de roles:

Captura de pantalla de Azure Portal que muestra la página Agregar asignación de roles. La página incluye campos para seleccionar un rol, asignar acceso a un usuario, grupo o identidad administrada y revisar la asignación antes de confirmar.

Seleccione el rol adecuado en función de sus necesidades, GeoCatalog Administrator o GeoCatalog Reader, y seleccione Siguiente:

Captura de pantalla de Azure Portal en la que se muestra la página Seleccionar rol. La página incluye un menú desplegable para elegir un rol, como Administrador de GeoCatalog o Lector de GeoCatalog, y un botón para continuar con el paso siguiente.

Seleccione la identidad administrada que creó y, a continuación, seleccione Revisar y asignar.

Captura de pantalla de Azure Portal en la que se muestra la página Seleccionar identidad. La página incluye una lista de identidades administradas disponibles, lo que permite a los usuarios elegir la identidad que desean asignar al grupo de Batch.

Preparar el trabajo por lotes

Cree un contenedor en la cuenta de almacenamiento:

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

Cargue el script en el contenedor:

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

Ejecute los trabajos por lotes

Hay dos ejemplos en este inicio rápido: un script de Python y un script de Bash. Puede usar cualquiera de ellos para crear un trabajo.

Trabajo de script de Python

Para ejecutar el trabajo de script de Python, ejecute los siguientes 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

El trabajo de Python ejecuta el siguiente script de 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 autenticarse con la identidad administrada y recupera las colecciones de GeoCatalog. Para obtener los resultados del trabajo, ejecute el siguiente comando:

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

Trabajo de Bash

Para ejecutar el trabajo de script de Bash, ejecute los siguientes 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

El trabajo de Bash ejecuta el siguiente script de 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 autenticarse con la identidad administrada y recupera las colecciones de GeoCatalog. Para obtener los resultados del trabajo, ejecute el siguiente comando:

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