Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
In questa guida introduttiva si apprenderà come usare la risorsa GeoCatalog Microsoft Planetary Computer Pro In Azure Batch per elaborare i dati geospaziali. Planetary Computer Pro GeoCatalog è un catalogo dati geospaziale che fornisce una visualizzazione unificata degli asset di dati geospaziali nell'organizzazione. È possibile usare Planetary Computer Pro GeoCatalog per individuare, gestire e analizzare i dati geospaziali.
Prerequisiti
Prima di iniziare, assicurarsi di soddisfare i requisiti seguenti per completare questa guida introduttiva:
- Un account Azure con una sottoscrizione attiva. Usare il collegamento Crea un account gratuitamente.
- Una risorsa Microsoft Planetary Computer Pro GeoCatalog.
Un computer Linux con gli strumenti seguenti installati:
- Interfaccia della riga di comando di Azure
-
perl
pacchetto.
Creare un account batch
Creare un gruppo di risorse:
az group create \
--name spatiobatchdemo \
--location uksouth
Creare un account di archiviazione:
az storage account create \
--resource-group spatiobatchdemo \
--name spatiobatchstorage \
--location uksouth \
--sku Standard_LRS
Attribuire l'oggetto Storage Blob Data Contributor
all'utente corrente dell'account di archiviazione:
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)
Creare un account Batch:
az batch account create \
--name spatiobatch \
--storage-account spatiobatchstorage \
--resource-group spatiobatchdemo \
--location uksouth
Importante
Assicurarsi di avere una quota sufficiente per creare un pool di nodi computer. Se la quota non è sufficiente, è possibile richiedere un aumento seguendo le istruzioni riportate nella documentazione relativa alle quote e ai limiti di Azure Batch .
Accedere al nuovo account Batch eseguendo il comando seguente:
az batch account login \
--name spatiobatch \
--resource-group spatiobatchdemo \
--shared-key-auth
Dopo aver autenticato l'account con Batch, i comandi successivi az batch
in questa sessione usano l'account Batch creato.
Creare un'identità gestita assegnata dall'utente:
az identity create \
--name spatiobatchidentity \
--resource-group spatiobatchdemo
Creare un pool di nodi di calcolo usando il portale di Azure:
- Nel portale di Azure passare all'account Batch e selezionare Pool:
- Selezionare + Aggiungi per creare un nuovo pool e selezionare Assegnata dall'utente come identità del pool:
- Selezionare l'identità gestita assegnata dall'utente creata in precedenza:
- Selezionare il sistema operativo preferito e le dimensioni della macchina virtuale. In questa demo si usa Ubuntu Server 20.04 LTS:
- Attivare Start Task, impostare il seguente Command line:
bash -c "apt-get update && apt-get install jq python3-pip -y && curl -sL https://aka.ms/InstallAzureCLIDeb | bash"
e impostare il Livello di elevazione su Pool autouser, Admin: - Selezionare OK per creare il pool.
Assegnare autorizzazioni all'identità gestita
È necessario fornire all'identità gestita l'accesso al GeoCatalog. Passare a GeoCatalog, selezionare Controllo di accesso (IAM) e selezionare Aggiungi assegnazione di ruolo:
Selezionare il ruolo appropriato in base alle esigenze GeoCatalog Administrator
o GeoCatalog Reader
e selezionare Avanti:
Selezionare l'identità gestita creata e quindi selezionare Rivedi e assegna.
Preparare il processo Batch
Creare un contenitore nell'account di archiviazione:
az storage container create \
--name scripts \
--account-name spatiobatchstorage
Caricare lo script nel contenitore:
az storage blob upload \
--container-name scripts \
--file src/task.py \
--name task.py \
--account-name spatiobatchstorage
Eseguire i lavori Batch
In questa guida introduttiva sono disponibili due esempi: uno script Python e uno script Bash. Puoi usare uno di loro per creare un lavoro.
Lavoro script Python
Per eseguire il processo di script Python, eseguire i comandi seguenti:
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
Il compito Python esegue il seguente script 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))
Che usa DefaultAzureCredential
per eseguire l'autenticazione con l'identità gestita e recupera le raccolte da GeoCatalog. Per ottenere i risultati del processo, eseguire il comando seguente:
az batch task file download \
--job-id pythonjob1 \
--task-id task1 \
--file-path "stdout.txt" \
--destination /dev/stdout
Processo Bash
Per eseguire il processo di script Bash, eseguire i comandi seguenti:
geocatalog_url="<geocatalog url>"
cat src/bashjob.json | perl -pe "s,##GEOCATALOG_URL##,$geocatalog_url,g" | az batch job create --json-file /dev/stdin
Il processo Bash esegue lo script Bash seguente:
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
Che usa az login --identity
per eseguire l'autenticazione con l'identità gestita e recupera le raccolte da GeoCatalog. Per ottenere i risultati del processo, eseguire il comando seguente:
az batch task file download \
--job-id bashjob1 \
--task-id task1 \
--file-path "stdout.txt" \
--destination /dev/stdout
Contenuti correlati
Per altre informazioni sulle identità gestite nei pool batch, vedere Configurare le identità gestite nella documentazione dei pool di Batch .
Per altre informazioni su come distribuire file nell'account Batch, vedere Copiare applicazioni e dati nei nodi del pool, Distribuire applicazioni in nodi di calcolo con pacchetti di applicazioni Batch e Creazione e uso di file di risorse.