Aracılığıyla paylaş


Hızlı Başlangıç: Azure Batch'te Microsoft Planet Computer Pro GeoCatalog kullanma

Bu hızlı başlangıçta Azure Batch'te bir Microsoft Planetary Computer Pro GeoCatalog kaynağını kullanarak jeo-uzamsal verileri uygun ölçekte işlemeyi öğreneceksiniz.

Azure Batch, büyük ölçekli paralel ve yüksek performanslı bilgi işlem (HPC) iş yüklerini çalıştırmanızı sağlayan bulut tabanlı bir iş zamanlama hizmetidir. Azure Batch'i Microsoft Planet Computer Pro ile birleştirerek şunları yapabilirsiniz:

  • Birden çok işlem düğümü arasında büyük hacimli jeo-uzamsal verileri paralel olarak işleme
  • Yönetilen kimlikleri kullanarak GeoCatalog API'leri için güvenli bir şekilde kimlik doğrulaması yapın
  • İş yükü taleplerine göre işleme gücünü artırma veya azaltma ölçeği
  • Altyapıyı yönetmeden jeo-uzamsal veri işlem hatlarını otomatikleştirme

Bu hızlı başlangıçta kullanıcı tarafından atanan yönetilen kimliğe sahip bir Batch havuzu ayarlama, GeoCatalog'unuza erişim izinlerini yapılandırma ve STAC API'sini sorgulayan işleri çalıştırma işlemleri gösterilmektedir.

Tavsiye

Microsoft Planet Computer Pro ile uygulama geliştirme seçeneklerine genel bakış için bkz. Verilerinizle uygulama bağlama ve derleme.

Önkoşullar

Başlamadan önce, bu hızlı başlangıcı tamamlamak için aşağıdaki gereksinimleri karşıladığınızdan emin olun:

  • Aktif bir aboneliğe sahip bir Azure hesabı. Ücretsiz hesap oluştur bağlantısını kullanın.
  • Microsoft Planetary Computer Pro GeoCatalog kaynağı. Aşağıdaki araçların yüklü olduğu bir Linux makinesi:

Batch hesabı oluştur.

Kaynak grubu oluşturma:

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

Depolama hesabı oluşturma:

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

Storage Blob Data Contributor kullanıcısını geçerli depolama hesabına atayın:

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)

Batch hesabı oluşturma:

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

Önemli

Bilgisayar düğümleri havuzu oluşturmak için yeterli kotanız olduğundan emin olun. Yeterli kotanız yoksa , Azure Batch kotaları ve sınırları belgelerindeki yönergeleri izleyerek bir artış isteyebilirsiniz.

Aşağıdaki komutu çalıştırarak yeni Batch hesabında oturum açın:

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

Batch ile hesabınızın kimliğini doğruladıktan sonra, bu oturumdaki sonraki az batch komutlar oluşturduğunuz Batch hesabını kullanır.

Kullanıcı Tarafından Atanan Yönetilen Kimlik Oluşturma:

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

Azure portalını kullanarak işlem düğümleri havuzu oluşturun:

  1. Azure portalında Batch hesabınıza gidin ve Havuzlar: Havuzekleme ve yönetme seçenekleriyle birlikte Batch hesabının Havuzlar bölümünü gösteren Azure portalı ekran görüntüsü'ne tıklayın.
  2. Yeni bir havuz oluşturmak için + Ekle'yi seçin ve havuz kimliği olarak kullanıcı tarafından atanan'ı seçin: Kullanıcıların kimlik, işletim sistemi ve VM boyutu gibi yeni bir havuz için ayarları yapılandırabileceği Havuz Ekle sayfasını gösteren Azure portalının ekran görüntüsü.
  3. Daha önce oluşturduğunuz Kullanıcı Tarafından Atanan Yönetilen Kimlik'i seçin: Batch havuzu için Kullanıcı Tarafından Atanan Yönetilen Kimlik seçimini gösteren Azure portalı ekran görüntüsü.
  4. Tercih ettiğiniz işletim sistemini ve VM boyutunu seçin. Bu tanıtımda, kullanıcıların işlem düğümleri için sanal makine boyutunu ve yapılandırmasını seçebileceği Batch havuzunun VM boyutu seçim sayfasının ekran görüntüsü olan Ubuntu Server 20.04 LTS:'yi kullanacağız.
  5. Görevi Başlat'ı etkinleştirin, aşağıdaki Komut satırını ayarlayın: bash -c "apt-get update && apt-get install jq python3-pip -y && curl -sL https://aka.ms/InstallAzureCLIDeb | bash" ve Yükseltme düzeyiniHavuz otomatik kullanıcısı olarak ayarlayın, Yönetici: Batch havuzunun Görev Yapılandırmayı Başlat sayfasının ekran görüntüsü. Sayfada komut satırı betiği, yükseltme düzeyi ve işlem düğümlerini başlatmaya yönelik diğer ayarları belirten alanlar bulunur.
  6. Havuzu oluşturmak için Tamam'ı seçin.

Yönetilen kimliğe izin atama

GeoCatalog'a yönetilen kimlik erişimi sağlamanız gerekir. GeoCatalog'unuza gidin, Erişim denetimi (IAM) seçeneğini belirleyin ve Rol ataması ekle'yi seçin:

Rol ataması ekle sayfasını gösteren Azure portalının ekran görüntüsü. Sayfada rol seçme, kullanıcıya, gruba veya yönetilen kimliğe erişim atama ve onaylamadan önce atamayı gözden geçirme alanları yer alır.

gereksinimlerinize GeoCatalog Administrator göre uygun rolü veya GeoCatalog Readeröğesini seçin ve İleri'yi seçin:

Rol seç sayfasını gösteren Azure portalının ekran görüntüsü. Sayfada GeoCatalog Yöneticisi veya GeoCatalog Reader gibi bir rol seçmek için açılan menü ve sonraki adıma geçmek için bir düğme bulunur.

Oluşturduğunuz yönetilen kimliği seçin ve ardından Gözden geçir ve ata'yı seçin.

Kimlik seçin sayfasını gösteren Azure portalının ekran görüntüsü. Sayfa, kullanıcıların Batch havuzuna atamak istedikleri kimliği seçmesine olanak sağlayan kullanılabilir yönetilen kimliklerin listesini içerir.

Batch işini hazırla

Depolama hesabında bir kapsayıcı oluşturun:

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

Betik dosyasını kapsayıcıya yükleyin.

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

Batch işlerini çalıştır

Bu hızlı başlangıçta iki örnek vardır: Python betiği ve Bash betiği. bunlardan birini kullanarak bir iş oluşturabilirsiniz.

Python script görevi

Python betik işini yürütmek için aşağıdaki komutları yürütebilirsiniz:

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 işi aşağıdaki Python betiğini yürütür:

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

Yönetilen kimlikle kimlik doğrulaması yapmak için kullanır DefaultAzureCredential ve koleksiyonları GeoCatalog'dan alır. İşin sonuçlarını almak için aşağıdaki komutu yürütür:

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

Bash işi

Bash betik işini yürütmek için aşağıdaki komutları çalıştırın:

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 işi aşağıdaki Bash betiğini yürütür:

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

Yönetilen kimlikle kimlik doğrulaması yapmak için kullanır az login --identity ve koleksiyonları GeoCatalog'dan alır. İşin sonuçlarını almak için aşağıdaki komutu çalıştırın:

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