Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Из этого краткого руководства вы узнаете, как использовать ресурс Microsoft Planetary Computer Pro GeoCatalog в Azure Batch для обработки геопространственных данных в большом масштабе.
Пакетная служба Azure — это облачная служба планирования заданий, которая позволяет выполнять крупномасштабные параллельные и высокопроизводительные вычислительные нагрузки (HPC). Сочетая пакетную службу Azure с Microsoft Planetary Computer Pro, вы можете:
- Обработка больших объемов геопространственных данных параллельно между несколькими вычислительными узлами
- Выполните безопасную проверку подлинности в API GeoCatalog с помощью управляемых удостоверений
- Увеличение или уменьшение масштаба обработки на основе требований рабочей нагрузки
- Автоматизация геопространственных конвейеров данных без управления инфраструктурой
В этом кратком руководстве показано, как настроить пул пакетной службы с управляемым удостоверением, назначаемое пользователем, настроить разрешения для доступа к GeoCatalog и выполнять задания, запрашивающие API STAC.
Подсказка
Общие сведения о вариантах разработки приложений с помощью Microsoft Planetary Computer Pro см. в статье "Подключение и сборка приложений с помощью данных".
Предпосылки
Прежде чем приступить к работе, убедитесь, что вы соблюдаете следующие требования для выполнения этой краткой инструкции.
- Учетная запись Azure с активной подпиской. Используйте ссылку "Создать учетную запись бесплатно".
- Ресурс Microsoft Planetary Computer Pro GeoCatalog.
Компьютер под управлением Linux с установленными следующими инструментами:
- Azure CLI
-
perlпакет.
Создание учетной записи Batch
Создайте группу ресурсов:
az group create \
--name spatiobatchdemo \
--location uksouth
Создайте учетную запись хранения:
az storage account create \
--resource-group spatiobatchdemo \
--name spatiobatchstorage \
--location uksouth \
--sku Standard_LRS
Storage Blob Data Contributor Назначьте текущему пользователю учетную запись хранения:
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.
az batch account create \
--name spatiobatch \
--storage-account spatiobatchstorage \
--resource-group spatiobatchdemo \
--location uksouth
Это важно
Убедитесь, что у вас достаточно квоты для создания пула узлов компьютера. Если у вас недостаточно квоты, вы можете запросить увеличение, следуя инструкциям в документации по квотам и ограничениям пакетной службы Azure .
Войдите в новую учетную запись Batch, выполнив следующую команду:
az batch account login \
--name spatiobatch \
--resource-group spatiobatchdemo \
--shared-key-auth
После того как вы подтвердите учетную запись с помощью Batch, последующие az batch команды в этом сеансе используют созданную вами учетную запись Batch.
Создайте назначенное пользователем управляемое удостоверение:
az identity create \
--name spatiobatchidentity \
--resource-group spatiobatchdemo
Создайте пул вычислительных узлов с помощью портала Azure:
- На портале Azure перейдите к учетной записи пакетной службы и выберите пулы:

- Нажмите кнопку "+ Добавить ", чтобы создать новый пул и выберите имя пользователя в качестве удостоверения пула:

- Выберите управляемое удостоверение, назначенное пользователем, которое вы создали ранее:

- Выберите предпочтительную операционную систему и размер виртуальной машины. В этой демонстрации мы используем Ubuntu Server 20.04 LTS:

- Включите Начать задачу, задайте следующую командную строку:
bash -c "apt-get update && apt-get install jq python3-pip -y && curl -sL https://aka.ms/InstallAzureCLIDeb | bash"и установите уровень повышения прав на автопользователь пула, Админ:
- Нажмите кнопку "ОК ", чтобы создать пул.
Назначение разрешений управляемому удостоверению
Необходимо предоставить управляемому удостоверению доступ к GeoCatalog. Перейдите в GeoCatalog, выберите элемент управления доступом (IAM) и выберите "Добавить назначение ролей":
Выберите соответствующую роль в зависимости от ваших потребностей GeoCatalog Administrator или GeoCatalog Readerнажмите кнопку "Далее".
Выберите созданное управляемое удостоверение и нажмите кнопку "Проверить и назначить".
Подготовка пакетной задачи
Создайте контейнер в учетной записи хранения:
az storage container create \
--name scripts \
--account-name spatiobatchstorage
Отправьте скрипт в контейнер:
az storage blob upload \
--container-name scripts \
--file src/task.py \
--name task.py \
--account-name spatiobatchstorage
Запустите пакетные задания
В этом кратком руководстве приведены два примера: скрипт Python и скрипт Bash. Для создания задания можно использовать любой из них.
Задание скрипта Python
Чтобы выполнить задание скрипта Python, выполните следующие команды:
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 выполняет следующий скрипт 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": "2026-04-15"},
)
print(json.dumps(response.json(), indent=2))
Использует DefaultAzureCredential для аутентификации с помощью управляемого удостоверения и извлекает коллекции из GeoCatalog. Чтобы получить результаты задания, выполните следующую команду:
az batch task file download \
--job-id pythonjob1 \
--task-id task1 \
--file-path "stdout.txt" \
--destination /dev/stdout
Задача Bash
Чтобы выполнить задание скрипта Bash, выполните следующие команды:
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 выполняет следующий скрипт 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
Использует az login --identity для аутентификации с помощью управляемого удостоверения и извлекает коллекции из GeoCatalog. Чтобы получить результаты задания, выполните следующую команду:
az batch task file download \
--job-id bashjob1 \
--task-id task1 \
--file-path "stdout.txt" \
--destination /dev/stdout
Связанный контент
- Подключение и сборка приложений с помощью данных
- Настройка проверки подлинности приложения для Microsoft Planetary Computer Pro
- Создание веб-приложения с помощью Microsoft Planetary Computer Pro
- Использование Обозревателя планетарных компьютеров Майкрософт
- Управление доступом к Microsoft Planetary Computer Pro
- Настройка управляемых идентичностей в пулах Batch
- Копирование приложений и данных в узлы пула
- Развёртывание приложений на вычислительных узлах при помощи пакетных приложений Batch
- Создание и использование файлов ресурсов