Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
I den här snabbstarten får du lära dig hur du använder en Microsoft Planetary Computer Pro GeoCatalog-resurs i Azure Batch för att bearbeta geospatiala data i stor skala.
Azure Batch är en molnbaserad jobbschemaläggningstjänst som gör att du kan köra storskaliga parallella och högpresterande databehandlingsarbetsbelastningar (HPC). Genom att kombinera Azure Batch med Microsoft Planetary Computer Pro kan du:
- Bearbeta stora mängder geospatiala data parallellt över flera beräkningsnoder
- Autentisera säkert till GeoCatalog-API:er med hanterade identiteter
- Skala upp eller ned bearbetningskraft baserat på arbetsbelastningskrav
- Automatisera geospatiala datapipelines utan att hantera infrastruktur
Den här snabbstarten visar hur du konfigurerar en Batch-pool med en användartilldelad hanterad identitet, konfigurerar behörigheter för åtkomst till din GeoCatalog och kör jobb som kör frågor mot STAC-API:et.
Tips/Råd
En översikt över programutvecklingsalternativ med Microsoft Planetary Computer Pro finns i Ansluta och skapa program med dina data.
Förutsättningar
Innan du börjar måste du uppfylla följande krav för att slutföra den här snabbstarten:
- Ett Azure-konto med en aktiv prenumeration. Använd länken Skapa ett konto kostnadsfritt.
- En resurs i Microsoft Planetary Computer Pro GeoCatalog.
En Linux-dator med följande verktyg installerade:
- Azure CLI
-
perlpaket.
Skapa ett Batch-konto
Skapa en resursgrupp:
az group create \
--name spatiobatchdemo \
--location uksouth
Skapa ett lagringskonto:
az storage account create \
--resource-group spatiobatchdemo \
--name spatiobatchstorage \
--location uksouth \
--sku Standard_LRS
Tilldela lagringskontot till den aktuella användaren:
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)
Skapa ett Batch-konto:
az batch account create \
--name spatiobatch \
--storage-account spatiobatchstorage \
--resource-group spatiobatchdemo \
--location uksouth
Viktigt!
Se till att du har tillräckligt med kvot för att skapa en pool med datornoder. Om du inte har tillräckligt med kvot kan du begära en ökning genom att följa anvisningarna i dokumentationen om Azure Batch-kvoter och -begränsningar .
Logga in på det nya Batch-kontot genom att köra följande kommando:
az batch account login \
--name spatiobatch \
--resource-group spatiobatchdemo \
--shared-key-auth
När du har autentiserat ditt konto med Batch använder efterföljande az batch kommandon i den här sessionen det Batch-konto som du skapade.
Skapa en användartilldelad hanterad identitet:
az identity create \
--name spatiobatchidentity \
--resource-group spatiobatchdemo
Skapa en pool med beräkningsnoder med hjälp av Azure-portalen:
- I Azure-portalen går du till ditt Batch-konto och väljer Pooler:

- Välj + Lägg till för att skapa en ny pool och välj Användartilldelad som poolens identitet:

- Välj den användartilldelade hanterade identiteten som du skapade tidigare:

- Välj önskat operativsystem och VM-storlek. I den här demonstrationen använder vi Ubuntu Server 20.04 LTS:

- Aktivera Startaktivitet, ställ in följande kommandorad:
bash -c "apt-get update && apt-get install jq python3-pip -y && curl -sL https://aka.ms/InstallAzureCLIDeb | bash"och ställ in höjnivå till Pool autouser, Admin:
- Välj OK för att skapa poolen.
Tilldela behörigheter till den hanterade identiteten
Du behöver ge åtkomst till GeoCatalog för den hanterade identiteten. Gå till din GeoCatalog, välj på Åtkomstkontroll (IAM) och välj Lägg till rolltilldelning:
Välj lämplig roll baserat på dina behov eller GeoCatalog AdministratorGeoCatalog Readeroch välj Nästa:
Välj den hanterade identitet som du skapade och klicka sedan på Granska och tilldela.
Förbereda Batch-jobbet
Skapa en container i lagringskontot:
az storage container create \
--name scripts \
--account-name spatiobatchstorage
Ladda upp skriptet till containern:
az storage blob upload \
--container-name scripts \
--file src/task.py \
--name task.py \
--account-name spatiobatchstorage
Kör Batch-jobben
Det finns två exempel i den här snabbstarten: ett Python-skript och ett Bash-skript. Du kan använda någon av dem för att skapa ett jobb.
Python-skriptjobb
Kör följande kommandon för att köra Python-skriptjobbet:
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
Python-jobbet kör följande Python-skript:
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": "2026-04-15"},
)
print(json.dumps(response.json(), indent=2))
Som använder DefaultAzureCredential för att autentisera med den hanterade identiteten och hämtar samlingarna från GeoCatalog. Kör följande kommando för att få resultatet av jobbet:
az batch task file download \
--job-id pythonjob1 \
--task-id task1 \
--file-path "stdout.txt" \
--destination /dev/stdout
Bash-jobb
Kör följande kommandon för att köra Bash-skriptjobbet:
geocatalog_url="<geocatalog url>"
cat src/bashjob.json | perl -pe "s,##GEOCATALOG_URL##,$geocatalog_url,g" | az batch job create --json-file /dev/stdin
Bash-jobbet kör följande Bash-skript:
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
Som använder az login --identity för att autentisera med den hanterade identiteten och hämtar samlingarna från GeoCatalog. Kör följande kommando för att få resultatet av jobbet:
az batch task file download \
--job-id bashjob1 \
--task-id task1 \
--file-path "stdout.txt" \
--destination /dev/stdout
Relaterat innehåll
- Ansluta och skapa program med dina data
- Konfigurera programautentisering för Microsoft Planetary Computer Pro
- Skapa ett webbprogram med Microsoft Planetary Computer Pro
- Använda Microsoft Planetary Computer Pro Explorer
- Hantera åtkomst till Microsoft Planetary Computer Pro
- Konfigurer hanterade identiteter i batch-pooler
- Kopiera program och data till poolnoder
- Distribuera program till beräkningsnoder med Batch-programpaket
- Skapa och använda resursfiler