Bagikan melalui


Mulai Cepat: Menggunakan Microsoft Planetary Computer Pro GeoCatalog di Azure Batch

Dalam panduan memulai cepat ini, Anda mempelajari cara menggunakan sumber daya Pro GeoCatalog di Microsoft Planetary Computer di Azure Batch untuk memproses data geospasial berskala besar.

Azure Batch adalah layanan penjadwalan pekerjaan berbasis cloud yang memungkinkan Anda menjalankan beban kerja komputasi paralel dan performa tinggi (HPC) skala besar. Dengan menggabungkan Azure Batch dengan Microsoft Planetary Computer Pro, Anda dapat:

  • Memproses data geospasial dalam volume besar secara paralel di beberapa simpul komputasi
  • Mengautentikasi dengan aman ke API GeoCatalog menggunakan identitas terkelola
  • Menyesuaikan daya pemrosesan naik atau turun berdasarkan permintaan beban kerja
  • Mengotomatiskan alur data geospasial tanpa mengelola infrastruktur

Panduan ini menunjukkan cara menyiapkan Batch pool dengan identitas terkelola yang ditetapkan pengguna, mengatur izin untuk mengakses GeoCatalog Anda, dan menjalankan pekerjaan yang melakukan kueri pada STAC API.

Tip

Untuk gambaran umum opsi pengembangan aplikasi dengan Microsoft Planetary Computer Pro, lihat Menyambungkan dan membangun aplikasi dengan data Anda.

Prasyarat

Sebelum memulai, pastikan Anda memenuhi persyaratan berikut untuk menyelesaikan panduan memulai cepat ini:

  • Sebuah akun Azure dengan langganan aktif. Gunakan tautan Buat akun secara gratis.
  • Sumber daya Microsoft Planetary Computer Pro GeoCatalog. Komputer Linux dengan alat berikut terinstal:

Membuat akun Batch

Buat grup sumber daya:

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

Buat akun penyimpanan:

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

Tetapkan Storage Blob Data Contributor ke pengguna saat ini ke akun penyimpanan:

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)

Buat akun Batch:

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

Penting

Pastikan Anda memiliki cukup kuota untuk membuat kumpulan simpul komputer. Jika Anda tidak memiliki kuota yang cukup, Anda dapat meminta penambahan dengan mengikuti instruksi dalam dokumentasi kuota dan batasan Azure Batch .

Masuk ke akun Batch baru dengan menjalankan perintah berikut:

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

Setelah Anda mengautentikasi akun Anda dengan Batch, perintah berikutnya az batch dalam sesi ini menggunakan akun Batch yang Anda buat.

Membuat Identitas Terkelola yang Ditetapkan Pengguna:

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

Buat kumpulan simpul komputasi menggunakan portal Microsoft Azure:

  1. Di portal Microsoft Azure, navigasikan ke akun Batch Anda dan pilih Kumpulan: Cuplikan layar portal Microsoft Azure memperlihatkan bagian Kumpulan dari akun Batch, dengan opsi untuk menambahkan dan mengelola kumpulan.
  2. Pilih + Tambahkan untuk membuat kumpulan baru dan pilih Ditetapkan pengguna sebagai identitas kumpulan: Cuplikan layar portal Microsoft Azure memperlihatkan halaman Tambahkan Kumpulan, di mana pengguna dapat mengonfigurasi pengaturan untuk kumpulan baru, termasuk identitas, sistem operasi, dan ukuran VM.
  3. Pilih Identitas Terkelola yang Ditetapkan Pengguna yang Anda buat sebelumnya: Cuplikan layar portal Microsoft Azure memperlihatkan pilihan Identitas Terkelola yang Ditetapkan Pengguna untuk kumpulan Batch.
  4. Pilih sistem operasi dan ukuran VM pilihan Anda. Dalam demo ini, kami menggunakan Ubuntu Server 20.04 LTS: Cuplikan layar halaman pemilihan ukuran VM untuk kumpulan Batch, di mana pengguna dapat memilih ukuran dan konfigurasi komputer virtual untuk simpul komputasi mereka.
  5. Aktifkan Tugas Mulai, atur baris Perintah berikut: bash -c "apt-get update && apt-get install jq python3-pip -y && curl -sL https://aka.ms/InstallAzureCLIDeb | bash" dan atur tingkat Elevasi ke Autouser kumpulan, Admin: Cuplikan layar halaman konfigurasi Mulai Tugas untuk kumpulan Batch. Halaman ini menyertakan bidang untuk menentukan skrip baris perintah, tingkat elevasi, dan pengaturan lainnya untuk menginisialisasi simpul komputasi.
  6. Pilih OK untuk membuat kumpulan.

Menetapkan izin ke identitas terkelola

Anda perlu menyediakan akses identitas terkelola ke GeoCatalog. Buka GeoCatalog Anda, pilih Kontrol akses (IAM) dan pilih Tambahkan penetapan peran:

Cuplikan layar portal Microsoft Azure memperlihatkan halaman Tambahkan penetapan peran. Halaman menyertakan bidang untuk memilih peran, menetapkan akses ke pengguna, grup, atau identitas terkelola, dan meninjau tugas sebelum mengonfirmasi.

Pilih peran yang sesuai berdasarkan kebutuhan Anda, GeoCatalog Administrator atau GeoCatalog Reader, dan pilih Berikutnya:

Cuplikan layar portal Microsoft Azure memperlihatkan halaman Pilih peran. Halaman ini menyertakan menu dropdown untuk memilih peran, seperti Administrator GeoCatalog atau Pembaca GeoCatalog, dan tombol untuk melanjutkan ke langkah berikutnya.

Pilih identitas terkelola yang Anda buat lalu pilih Tinjau + tetapkan.

Cuplikan layar portal Microsoft Azure memperlihatkan halaman Pilih identitas. Halaman ini menyertakan daftar identitas terkelola yang tersedia, memungkinkan pengguna memilih identitas yang ingin mereka tetapkan ke kumpulan Batch.

Menyiapkan pekerjaan Kelompok

Buat kontainer di akun penyimpanan:

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

Unggah skrip ke kontainer:

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

Menjalankan pekerjaan Batch

Ada dua contoh dalam panduan cepat ini: skrip Python, dan skrip Bash. Anda dapat menggunakan salah satu dari mereka untuk membuat pekerjaan.

Pekerjaan skrip Python

Untuk menjalankan pekerjaan skrip Python, jalankan perintah berikut:

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

Pekerjaan Python menjalankan skrip Python berikut:

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

Yang menggunakan DefaultAzureCredential untuk mengautentikasi dengan identitas terkelola dan mengambil koleksi dari GeoCatalog. Untuk mendapatkan hasil pekerjaan, jalankan perintah berikut:

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

Pekerjaan Bash

Untuk menjalankan pekerjaan skrip Bash, jalankan perintah berikut:

geocatalog_url="<geocatalog url>"

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

Tugas Bash menjalankan skrip Bash berikut:

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

Yang menggunakan az login --identity untuk mengautentikasi dengan identitas terkelola dan mengambil koleksi dari GeoCatalog. Untuk mendapatkan hasil pekerjaan, jalankan perintah berikut:

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