Poznámka
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Načítání nových dat do prostředku Microsoft Planety Computer Pro GeoCatalog se nazývá příjem dat. GeoCatalog potřebuje oprávnění nebo zdroje příjmu dat pro přístup k datům uloženým externě k prostředku GeoCatalog. V této příručce se naučíte:
- Vytvoření zdroje příjmu dat prostřednictvím webu Azure Portal
- Vytvoření zdroje ingestování prostřednictvím rozhraní Microsoft Planetary Computer Pro API pomocí sady Azure Python SDK.
Požadavky
Planetární počítač Microsoftu Pro GeoCatalog nasazený do vašeho předplatného Azure. Viz Nasazení prostředku GeoCatalog.
Nastavení kontejneru objektů blob Azure se správnými oprávněními k přiřazování spravovaných identit a vyžádání tokenu SAS Viz Vytvoření účtu úložiště Azure.
Spravovaná identita vs. tokeny SAS
Spravované identity poskytují automaticky spravovanou identitu v Microsoft Entra ID pro aplikace, které se mají použít při připojování k prostředkům, které podporují ověřování Microsoft Entra.
Sdílené přístupové podpisy (SAS) vytvářejí kryptografické přihlašovací údaje pro přístup k prostředku, jako je Azure Blob Storage.
Spravované identity jsou bezpečnější a automatizovanější mechanismus pro vytvoření trvalého přístupu k účtu úložiště a jsou doporučeným přístupem k zajištění zabezpečeného přístupu ke službě Azure Blob Storage pro příjem dat.
Spravované identity fungují jenom v rámci jednoho tenanta Microsoft Entra, takže přístup k tokenu SAS je užitečný při přesunu dat z úložiště, které jsou v účtu úložiště mimo vašeho tenanta. Příjem dat je specifický pro kontejner Blob a tokeny SAS z kořenového úložiště nejsou povolené.
Nastavení zdroje příjmu dat prostřednictvím uživatelského rozhraní
Tokeny SAS lze získat několika způsoby; v této příručce to provedeme pomocí webu Azure Portal. Průzkumník služby Azure Storage je také alternativní nástroj s uživatelským rozhraním, který funguje na místním počítači. Viz Průzkumník služby Azure Storage
Přejděte k vašemu prostředku úložiště.
V portálu Azure najděte prostředek úložiště obsahující kontejner Blob Azure s daty, která chcete zpracovat do Planetary Computer Pro. V nastavení prostředku vyberte v části Úložiště dat nastavení Kontejnery.
Vyberte kontejner objektů blob a požádejte o token SAS.
Vyberte konkrétní kontejner, který chcete ingestovat, v tomto příkladu vybereme kontejner "test".
Vyberte nastavení Sdílené přístupové tokeny a otevřete nastavení konfigurace.
Ujistěte se, že jsou tato nastavení správně nastavená:
- Oprávnění = Čtení (ověřte, že nejsou vybrány žádné další možnosti)
- Platnost tokenu SAS pokrývá čas potřebný k ingestování dat (osvědčeným postupem zabezpečení je mít tento token platný maximálně sedm dní).
Po ověření nastavení vyberte tlačítko Generovat token SAS a adresu URL . Zobrazí se dva vygenerované prvky: token SAS objektu blob a adresa URL SAS objektu blob. Nechte okno nebo kartu otevřenou, jelikož tyto informace budete potřebovat pro další sekci.
Přechod na nastavení
Pomocí adresy URL planetárního počítače Pro přejděte na cílovou stránku a na navigačním panelu vyberte kartu Nastavení .
Vytvoření zdroje příjmu dat
- Výběr tlačítka Vytvořit zdroj příjmu dat
- Do pole Adresa URL kontejneru zadejte adresu URL kontejneru Blob.
Zahrňte jenom adresu URL a nezahrnujte klíč. Formát adresy URL by měl být:
https://(Storage Resource Name).blob.core.windows.net/(Blob Container Name)
- Vyjmout a vložit token SAS do pole Pole pro přihlašovací token.
Token SAS vypadá jako řetězec dotazu. Zahrňte veškerý text začínající
?
symbolem:Příklad:
?sv=<signed-version>&ss=<signed-services>&srt=<signed-resource-types>&sp=<signed-permissions>&se=<signed-expiry-time>&st=<signed-start-time>&spr=<signed-protocol>&sig=<signature>
- Výběr tlačítka Vytvořit
Váš zdroj příjmu dat je teď nastavený tak, aby podporoval příjem dat.
Pokud vyprší platnost vašeho příjmu dat nebo potřebujete přidat tokeny SAS pro jiný kontejner objektů blob, opakujte předchozí proces.
Nastavení zdroje příjmu dat pro tokeny SAS prostřednictvím rozhraní API
Zdroje příjmu dat je také možné nastavit prostřednictvím rozhraní API pomocí služby Azure SDK Storage a rozhraní API planetárního počítače. Viz dokumentace k rozhraní API zdrojů příjmu dat.
Následující blok kódu importuje požadované knihovny a nastaví klíčové proměnné.
- Nahraďte
<your_container_url>
adresou URL kontejneru objektů blob Azure obsahující data, která chcete ingestovat. - Nahraďte
<your_geocatalog_url>
adresou URL koncového bodu prostředku Planetary Computer Pro. - Nahraďte
<token_duration_in_hours>
počet hodin, po které má být token SAS platný (výchozí hodnota je 168 hodin, což je 7 dní).
import requests
from azure.identity import AzureCliCredential
from datetime import datetime, timedelta, timezone
import azure.storage.blob
from urllib.parse import urlparse
###################################
# Set Key Variables Here
## The Planetary Computer Pro App ID. Do not change.
MPCPRO_APP_ID = "https://geocatalog.spatio.azure.com"
## The API version. Do not change.
API_VERSION = "2025-04-30-preview"
## Replace with the URL of the Blob Container
CONTAINER_URL = "<your_container_url>" # e.g., "https://youraccount.blob.core.windows.net/yourcontainer"
## Replace with the URL of your GeoCatalog Resource
GEOCATALOG_URL = "<your_geocatalog_url>" # e.g., "https://yourgeocatalog.randomid.region.geocatalog.spatio.azure.com/"
## Replace with the desired duration of the token in hours (default: 168 hours = 7 days)
EXPIRATION_HOURS = <token_duration_in_hours> # e.g., 7 * 24
Další blok kódu používá sadu Azure SDK k vyžádání tokenu SAS pro zadaný kontejner objektů blob.
# Parse the container URL
parsed_url = urlparse(CONTAINER_URL)
account_url = f"{parsed_url.scheme}://{parsed_url.netloc}"
account_name = parsed_url.netloc.split(".")[0]
container_name = parsed_url.path.lstrip("/")
# Login to Azure using the Azure CLI
credential = azure.identity.AzureCliCredential()
# Set up Blob Service Client
with azure.storage.blob.BlobServiceClient(
account_url=account_url,
credential=credential,
) as blob_service_client:
now = datetime.now(timezone.utc).replace(microsecond=0)
key = blob_service_client.get_user_delegation_key(
key_start_time=now + timedelta(hours=-1),
key_expiry_time=now + timedelta(hours = EXPIRATION_HOURS), )
# Generate the SAS token
sas_token = azure.storage.blob.generate_container_sas(
account_name=account_name,
container_name=container_name,
user_delegation_key=key,
permission=azure.storage.blob.ContainerSasPermissions(
read=True,
list=True,
),
start=now + timedelta(hours=-1),
expiry=now + timedelta(hours = EXPIRATION_HOURS),)
Další blok kódu používá rozhraní API planetárního počítače Pro k publikování přihlašovacích údajů.
# Obtain an access token
credential = AzureCliCredential()
access_token = credential.get_token(f"{MPCPRO_APP_ID}/.default")
# Payload for the POST request
payload = {
"sourceType": "SasToken",
"connectionInfo": {
"containerUrl": CONTAINER_URL,
"sasToken": sas_token,
},
}
# STAC Collection API endpoint
endpoint = f"{GEOCATALOG_URL}/inma/ingestion-sources"
# Make the POST request
response = requests.post(
endpoint,
json=payload,
headers={"Authorization": f"Bearer {access_token.token}"},
params={"api-version": API_VERSION},
)
# Print the response
if response.status_code == 201:
print("Ingestion source created successfully")
else:
print(f"Failed to create ingestion: {response.text}")
Další kroky
Teď, když jste nastavili spravovanou identitu, je čas ingestovat data.
Příjem jedné položky:
Pro hromadný příjem dat: