Udostępnij za pośrednictwem


Szybki start: korzystanie z usługi Microsoft Planetary Computer Pro GeoCatalog w usłudze Azure Batch

W tym quickstarcie uczysz się, jak używać zasobu Microsoft Planetary Computer Pro GeoCatalog w usłudze Azure Batch do przetwarzania danych geoprzestrzennych na dużą skalę.

Usługa Azure Batch to oparta na chmurze usługa planowania zadań, która umożliwia uruchamianie obciążeń równoległych i obliczeń o wysokiej wydajności (HPC) na dużą skalę. Łącząc usługę Azure Batch z firmą Microsoft Planetary Computer Pro, można wykonywać następujące czynności:

  • Przetwarzanie dużych ilości danych geoprzestrzennych równolegle w wielu węzłach obliczeniowych
  • Bezpieczne uwierzytelnianie w interfejsach API usługi GeoCatalog przy użyciu tożsamości zarządzanych
  • Skalowanie mocy obliczeniowej w górę lub w dół na podstawie wymagań dotyczących obciążeń
  • Automatyzowanie potoków danych geoprzestrzennych bez zarządzania infrastrukturą

W tych wskazówkach szybkiego startu demonstruje się, jak skonfigurować pulę Batch z przypisaną przez użytkownika tożsamością zarządzaną, skonfigurować uprawnienia dostępu do GeoCatalog i uruchamiać zadania, które wysyłają zapytania do interfejsu STAC API.

Wskazówka

Aby zapoznać się z omówieniem opcji tworzenia aplikacji za pomocą programu Microsoft Planetary Computer Pro, zobacz Connect and build applications with your data (Łączenie i tworzenie aplikacji przy użyciu danych).

Wymagania wstępne

Przed rozpoczęciem upewnij się, że spełniasz następujące wymagania, aby ukończyć ten szybki przewodnik:

Tworzenie konta usługi Batch

Tworzenie grupy zasobów:

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

Utwórz konto pamięci masowej

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

Przypisz Storage Blob Data Contributor bieżącemu użytkownikowi na koncie magazynu:

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)

Utwórz konto usługi Batch:

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

Ważne

Upewnij się, że masz wystarczający limit przydziału, aby utworzyć pulę węzłów obliczeniowych. Jeśli nie masz wystarczającej ilości zasobów, możesz poprosić o zwiększenie, postępując zgodnie z instrukcjami w dokumentacji limitów i przydziałów usługi Azure Batch.

Zaloguj się do nowego konta usługi Batch, uruchamiając następujące polecenie:

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

Po uwierzytelnieniu konta w usłudze Batch, kolejne polecenia w tej sesji będą korzystać z utworzonego przez Ciebie konta usługi Batch.

Utwórz tożsamość zarządzaną przypisaną przez użytkownika:

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

Utwórz pulę węzłów obliczeniowych przy użyciu witryny Azure Portal:

  1. W witrynie Azure Portal przejdź do konta usługi Batch i wybierz pozycję Pule: Zrzut ekranu witryny Azure Portal przedstawiający sekcję Pule konta usługi Batch z opcjami dodawania pul i zarządzania nimi.
  2. Wybierz pozycję + Dodaj , aby utworzyć nową pulę i wybierz pozycję Użytkownik przypisany jako tożsamość puli: Zrzut ekranu witryny Azure Portal przedstawiający stronę Dodawanie puli, na której użytkownicy mogą konfigurować ustawienia nowej puli, w tym tożsamość, system operacyjny i rozmiar maszyny wirtualnej.
  3. Wybierz tożsamość zarządzaną przypisaną użytkownikowi, którą utworzyłeś wcześniej: Zrzut ekranu portalu Azure przedstawiający wybór tożsamości zarządzanej przypisanej użytkownikowi dla puli usługi Batch.
  4. Wybierz preferowany system operacyjny i rozmiar maszyny wirtualnej. W tym pokazie używamy systemu Ubuntu Server 20.04 LTS: Zrzut ekranu przedstawiający stronę wyboru rozmiaru maszyny wirtualnej dla puli usługi Batch, gdzie użytkownicy mogą wybrać rozmiar i konfigurację maszyny wirtualnej dla swoich węzłów obliczeniowych.
  5. Włącz Uruchom zadanie, ustaw wiersz polecenia na następujący: i ustaw bash -c "apt-get update && apt-get install jq python3-pip -y && curl -sL https://aka.ms/InstallAzureCLIDeb | bash" na autoużytkownik puli, Administrator: Screenshot of the Start Task configuration page for a Batch pool. The page includes fields to specify a command line script, elevation level, and other settings for initializing compute nodes.
  6. Wybierz przycisk OK , aby utworzyć pulę.

Przypisywanie uprawnień do tożsamości zarządzanej

Musisz podać dostęp tożsamości zarządzanej do usługi GeoCatalog. Przejdź do GeoCatalogu, wybierz pozycję Kontrola dostępu (IAM) i wybierz pozycję Dodaj przypisanie roli:

Zrzut ekranu witryny Azure Portal przedstawiający stronę Dodawanie przypisania roli. Strona zawiera pola do wybierania roli, przypisywania dostępu do użytkownika, grupy lub tożsamości zarządzanej oraz przeglądania przypisania przed potwierdzeniem.

Wybierz odpowiednią rolę w zależności od potrzeb GeoCatalog Administrator lub GeoCatalog Reader, a następnie wybierz pozycję Dalej:

Zrzut ekranu witryny Azure Portal przedstawiający stronę Wybieranie roli. Strona zawiera menu rozwijane umożliwiające wybranie roli, takiej jak Administrator geokatalogu lub Czytelnik geokatalogu, oraz przycisk umożliwiający przejście do następnego kroku.

Wybierz utworzoną tożsamość zarządzaną, a następnie wybierz Przejrzyj + przypisz.

Zrzut ekranu witryny Azure Portal przedstawiający stronę Wybieranie tożsamości. Strona zawiera listę dostępnych tożsamości zarządzanych, co pozwala użytkownikom wybrać tożsamość, którą mają przypisać do puli usługi Batch.

Przygotowywanie zadania usługi Batch

Utwórz kontener na koncie magazynowym

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

Przekaż skrypt do kontenera:

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

Uruchom zadania Batch

W tym szybkim wprowadzeniu przedstawiono dwa przykłady: skrypt języka Python i skrypt Bash. Możesz użyć każdego z nich do utworzenia zadania.

Zadanie skryptu języka Python

Aby wykonać zadanie skryptu języka Python, wykonaj następujące polecenia:

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

Zadanie języka Python wykonuje następujący skrypt języka 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))

Które używa DefaultAzureCredential do uwierzytelniania tożsamości zarządzanej i pobiera kolekcje z GeoCatalog. Aby uzyskać wyniki zadania, wykonaj następujące polecenie:

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

Zadanie powłoki Bash

Aby wykonać skrypt Bash, użyj następujących poleceń:

geocatalog_url="<geocatalog url>"

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

Zadanie powłoki Bash wykonuje następujący skrypt powłoki 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

Które używa az login --identity do uwierzytelniania tożsamości zarządzanej i pobiera kolekcje z GeoCatalog. Aby uzyskać wyniki zadania, uruchom następujące polecenie:

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