Share via


Quickstart: Microsoft Planetary Computer Pro GeoCatalog gebruiken in Azure Batch

In deze quickstart leert u hoe u een Microsoft Planetary Computer Pro GeoCatalog-resource in Azure Batch gebruikt om georuimtelijke gegevens op schaal te verwerken.

Azure Batch is een cloudservice voor het plannen van taken waarmee u grootschalige parallelle en HPC-workloads (High Performance Computing) kunt uitvoeren. Door Azure Batch te combineren met Microsoft Planetary Computer Pro, kunt u het volgende doen:

  • Grote hoeveelheden georuimtelijke gegevens parallel verwerken op meerdere rekenknooppunten
  • Veilig verifiëren bij GeoCatalog-API's met behulp van beheerde identiteiten
  • Verwerkingskracht omhoog of omlaag schalen op basis van de werkbelastingvereisten
  • Georuimtelijke gegevenspijplijnen automatiseren zonder infrastructuur te beheren

In deze quickstart ziet u hoe u een Batch-pool instelt met een door de gebruiker toegewezen beheerde identiteit, machtigingen configureert voor toegang tot uw GeoCatalog en taken uitvoert die een query uitvoeren op de STAC-API.

Aanbeveling

Zie Toepassingen verbinden en bouwen met uw gegevens voor een overzicht van de opties voor toepassingsontwikkeling met Microsoft Planetary Computer Pro.

Vereiste voorwaarden

Voordat u begint, moet u voldoen aan de volgende vereisten om deze quickstart te voltooien:

  • Een Azure-account met een actief abonnement. Gebruik de koppeling Gratis een account maken.
  • Een Microsoft Planetary Computer Pro GeoCatalog-resource. Een Linux-computer waarop de volgende hulpprogramma's zijn geïnstalleerd:

Een Batch-account maken

Een resourcegroep maken:

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

Een opslagaccount maken:

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

Wijs de Storage Blob Data Contributor huidige gebruiker toe aan het opslagaccount:

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)

Een Batch-account maken:

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

Belangrijk

Zorg ervoor dat u voldoende quotum hebt om een groep computerknooppunten te maken. Als u onvoldoende quotum hebt, kunt u een verhoging aanvragen door de instructies in de documentatie over quota en limieten van Azure Batch te volgen.

Meld u aan bij het nieuwe Batch-account door de volgende opdracht uit te voeren:

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

Zodra u uw account met Batch hebt geverifieerd, gebruiken volgende az batch opdrachten in deze sessie het Batch-account dat u hebt gemaakt.

Een door de gebruiker toegewezen beheerde identiteit maken:

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

Maak een pool met rekenknooppunten met behulp van Azure Portal:

  1. Navigeer in Azure Portal naar uw Batch-account en selecteer Pools: Schermopname van Azure Portal met de sectie Pools van een Batch-account, met opties voor het toevoegen en beheren van pools.
  2. Selecteer + Toevoegen om een nieuwe pool te maken en selecteer Door de gebruiker toegewezen als de identiteit van de pool: Schermopname van Azure Portal met de pagina Groep toevoegen, waar gebruikers instellingen voor een nieuwe pool kunnen configureren, inclusief identiteit, besturingssysteem en VM-grootte.
  3. Selecteer de door de gebruiker toegewezen beheerde identiteit die u eerder hebt gemaakt: Schermopname van Azure Portal met de selectie van een door de gebruiker toegewezen beheerde identiteit voor de Batch-pool.
  4. Selecteer uw voorkeursbesturingssysteem en VM-grootte. In deze demo gebruiken we Ubuntu Server 20.04 LTS: Schermopname van de pagina vm-grootteselectie voor de Batch-pool, waar gebruikers de grootte en configuratie van de virtuele machine voor hun rekenknooppunten kunnen kiezen.
  5. Schakel Starttaak in, stel de volgende opdrachtregel in: bash -c "apt-get update && apt-get install jq python3-pip -y && curl -sL https://aka.ms/InstallAzureCLIDeb | bash" en stel het niveau Benodigde bevoegdheden in op Pool autouser, Beheerder: Schermopname van de configuratiepagina Taak starten voor een Batch-pool. De pagina bevat velden om een opdrachtregelscript, het niveau Benodigde bevoegdheden en andere instellingen voor het initialiseren van rekenknooppunten op te geven.
  6. Selecteer OK om de pool te maken.

Machtigingen toewijzen aan de beheerde identiteit

U moet de beheerde identiteit toegang geven tot het GeoCatalog. Ga naar uw GeoCatalog, selecteer toegangsbeheer (IAM) en selecteer Roltoewijzing toevoegen:

Schermopname van Azure Portal met de pagina Roltoewijzing toevoegen. De pagina bevat velden voor het selecteren van een rol, het toewijzen van toegang tot een gebruiker, groep of beheerde identiteit en het controleren van de toewijzing voordat u dit bevestigt.

Selecteer de juiste rol op basis van uw behoeften of GeoCatalog AdministratorGeoCatalog Readerselecteer Volgende:

Schermopname van Azure Portal met de pagina Rol selecteren. De pagina bevat een vervolgkeuzemenu om een rol te kiezen, zoals GeoCatalog Administrator of GeoCatalog Reader, en een knop om door te gaan naar de volgende stap.

Selecteer de beheerde identiteit die u hebt gemaakt en selecteer vervolgens Beoordelen en toewijzen.

Schermopname van Azure Portal met de pagina Identiteit selecteren. De pagina bevat een lijst met beschikbare beheerde identiteiten, zodat gebruikers de identiteit kunnen kiezen die ze willen toewijzen aan de Batch-pool.

De Batch-taak voorbereiden

Maak een container in het opslagaccount:

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

Upload het script naar de container:

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

De Batch-taken uitvoeren

Deze quickstart bevat twee voorbeelden: een Python-script en een Bash-script. U kunt een van beide gebruiken om een taak te maken.

Python-script-taak

Voer de volgende opdrachten uit om de Python-scripttaak uit te voeren:

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

De Python-taak voert het volgende Python-script uit:

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

Dit maakt gebruik DefaultAzureCredential van verificatie met de beheerde identiteit en haalt de verzamelingen op uit het GeoCatalog. Voer de volgende opdracht uit om de resultaten van de taak op te halen:

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

Bash-taak

Voer de volgende opdrachten uit om de Bash-scripttaak uit te voeren:

geocatalog_url="<geocatalog url>"

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

De Bash-taak voert het volgende Bash-script uit:

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

Dit maakt gebruik az login --identity van verificatie met de beheerde identiteit en haalt de verzamelingen op uit het GeoCatalog. Voer de volgende opdracht uit om de resultaten van de taak op te halen:

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