Spouštění dávkových koncových bodů z událostí Event Gridu v úložišti
PLATÍ PRO:Rozšíření Azure CLI ml v2 (aktuální)Python SDK azure-ai-ml v2 (aktuální)
Event Grid je plně spravovaná služba, kterou můžete použít ke snadné správě událostí v mnoha různých službách a aplikacích Azure. Služba zjednodušuje způsob vytváření aplikací řízených událostmi a bezserverových aplikací. V tomto kurzu se dozvíte, jak aktivovat úlohu dávkového koncového bodu pro zpracování souborů, jakmile se vytvoří v účtu úložiště. Architektura používá pracovní postup aplikace logiky k přihlášení k odběru těchto událostí a aktivaci koncového bodu.
Následující diagram znázorňuje architekturu pro toto řešení:
Následující kroky popisují základní kroky v tomto řešení:
Když se v konkrétním účtu úložiště vytvoří nový objekt blob, aktivuje se událost vytvoření souboru.
Událost se odešle do event Gridu, aby se zpracovala všem odběratelům.
Pracovní postup aplikace logiky se přihlásí k odběru a naslouchá těmto událostem.
Účet úložiště může obsahovat více datových prostředků, takže filtrování událostí se použije k reakci pouze na události, ke které dochází v konkrétní složce v účtu úložiště. V případě potřeby je možné provádět další filtrování, například na základě přípon souborů.
Aktivuje se pracovní postup aplikace logiky a provede následující akce:
Získá autorizační token pro vyvolání dávkových koncových bodů pomocí přihlašovacích údajů z instančního objektu.
Aktivuje dávkový koncový bod (výchozí nasazení) pomocí nově vytvořeného souboru jako vstupu.
Koncový bod dávky vrátí název úlohy, která byla vytvořena pro zpracování souboru.
Důležité
Když použijete pracovní postup aplikace logiky, který se připojuje ke službě Event Grid k vyvolání dávkového koncového bodu, vygenerujete jednu úlohu pro každý soubor objektů blob vytvořený v účtu úložiště. Mějte na paměti, že dávkové koncové body distribuují práci na úrovni souboru, takže nedojde k paralelizaci. Místo toho použijete funkci dávkových koncových bodů ke spouštění více úloh ve stejném výpočetním clusteru. Pokud potřebujete spouštět úlohy na celých složkách automatickým způsobem, doporučujeme přepnout na vyvolání dávkových koncových bodů ze služby Azure Data Factory.
Požadavky
Model je správně nasazený jako koncový bod dávky. Tuto architekturu můžete rozšířit tak, aby v případě potřeby fungovala s nasazeními součástí kanálu.
Vaše dávkové nasazení běží ve výpočetním clusteru s názvem
batch-cluster
.Aplikace logiky, kterou vytvoříte, komunikuje s koncovými body batch služby Azure Machine Learning pomocí REST.
Další informace o tom, jak používat rozhraní REST API pro dávkové koncové body, najdete v tématu Vytváření úloh a vstupních dat pro dávkové koncové body.
Ověřování pomocí dávkových koncových bodů
Azure Logic Apps může vyvolat rozhraní REST API dávkových koncových bodů pomocí akce HTTP . Koncové body služby Batch podporují ID Microsoft Entra pro autorizaci, a proto požadavek na rozhraní API vyžaduje správné zpracování ověřování.
Tento kurz používá instanční objekt pro ověřování a interakci s dávkovými koncovými body v tomto scénáři.
Vytvořte instanční objekt pomocí registrace aplikace s ID Microsoft Entra a vytvořte instanční objekt.
Vytvořte tajný klíč, který se má použít pro ověřování pomocí následující možnosti 3: Vytvořte nový tajný klíč klienta.
Nezapomeňte uložit vygenerovanou hodnotu tajného klíče klienta, která se zobrazí jenom jednou.
Nezapomeňte uložit a
tenant id
uložitclient ID
v podokně Přehled aplikace.Udělte instančnímu objektu přístup k vašemu pracovnímu prostoru pomocí udělení přístupu. V tomto příkladu vyžaduje instanční objekt následující:
- Oprávnění v pracovním prostoru ke čtení dávkových nasazení a provádění akcí nad nimi
- Oprávnění ke čtení a zápisu v úložištích dat
Povolení přístupu k datům
K označení vstupních dat, která chcete odeslat do úlohy nasazení, tento kurz používá cloudové identifikátory URI poskytované službou Event Grid. Koncové body služby Batch používají identitu výpočetních prostředků k připojení dat a přitom uchovávají identitu úlohy ke čtení připojených dat. Proto musíte přiřadit spravovanou identitu přiřazenou uživatelem ke výpočetnímu clusteru a ujistit se, že má cluster přístup k připojení podkladových dat. Pokud chcete zajistit přístup k datům, postupujte takto:
Vytvoření prostředku spravované identity:
Aktualizujte výpočetní cluster tak, aby používal spravovanou identitu, kterou jsme vytvořili:
Poznámka:
V tomto příkladu se předpokládá, že máte vytvořený výpočetní cluster s názvem
cpu-cluster
, který se používá pro výchozí nasazení v koncovém bodu.Na webu Azure Portal se ujistěte, že spravovaná identita má správná oprávnění ke čtení dat.
Pokud chcete získat přístup ke službám úložiště, musíte mít přístup alespoň ke čtenáři dat objektů blob služby Storage k účtu úložiště. Úroveň přístupu můžou změnit jenom vlastníci účtu úložiště prostřednictvím webu Azure Portal.
Vytvoření aplikace logiky
Na webu Azure Portal na domovské stránce Azure vyberte Vytvořit prostředek.
V nabídce Azure Marketplace vyberte Aplikaci logiky integrace>.
V podokně Vytvořit aplikaci logiky na kartě Základy zadejte následující informace o prostředku aplikace logiky.
Než budete pokračovat v výběru, přejděte do části Plán . Jako typ plánu vyberte Consumption a zobrazte pouze nastavení pracovního postupu aplikace logiky Consumption, který běží ve víceklientských Azure Logic Apps.
Důležité
V případě pracovních prostorů s povoleným privátním propojením je potřeba použít plán Standard pro Azure Logic Apps s povolenou konfigurací privátní sítě.
Vlastnost Typ plánu také určuje model fakturace, který se má použít.
Typ plánu Popis Standardní Tento typ aplikace logiky je výchozím výběrem a běží v Azure Logic Apps s jedním tenantem a používá cenový model Standard. Využití Tento typ aplikace logiky běží v globálním prostředí, ve víceklientských azure Logic Apps a používá cenový model Consumption. Teď pokračujte následujícími výběry:
Vlastnost Požaduje se Hodnota Popis Oblast Ano USA – západ Oblast datacentra Azure pro ukládání informací o aplikaci Tento příklad nasadí ukázkovou aplikaci logiky do oblasti USA – západ v Azure. Povolení log analytics Yes Ne Tato možnost se zobrazí a použije se jenom v případě, že vyberete typ aplikace logiky Consumption . Tuto možnost změňte pouze v případě, že chcete povolit protokolování diagnostiky. Pro účely tohoto kurzu ponechte výchozí výběr. Až budete hotovi, vyberte Zkontrolovat a vytvořit. Jakmile Azure ověří informace o prostředku aplikace logiky, vyberte Vytvořit.
Jakmile Azure nasadí vaši aplikaci, vyberte Přejít k prostředku.
Azure otevře návrháře pracovního postupu pro vaši aplikaci logiky.
Konfigurace parametrů pracovního postupu
Tento pracovní postup aplikace logiky používá parametry k ukládání konkrétních informací, které potřebujete ke spuštění dávkového nasazení.
Na panelu nástrojů návrháře pracovního postupu vyberte Parametry.
V podokně Parametry vyberte Vytvořit parametr a zadejte následující informace o jednotlivých parametrech, které chcete vytvořit:
Tip
Použijte hodnoty nakonfigurované při ověřování u dávkových koncových bodů.
Název parametru Popis Ukázková hodnota tenant_id
ID tenanta, ve kterém je koncový bod nasazený. 00000000-0000-0000-00000000
client_id
ID klienta instančního objektu použitého k vyvolání koncového bodu. 00000000-0000-0000-00000000
client_secret
Tajný klíč klienta instančního objektu použitého k vyvolání koncového bodu. ABCDEFGhijkLMNOPQRstUVwz
endpoint_uri
Identifikátor URI bodování koncového bodu.
Důležité: Tento identifikátor URI je určený pro koncový bod, který chcete spustit. Koncový bod musí mít nakonfigurované výchozí nasazení.https://<endpoint_name>.<region>.inference.ml.azure.com/jobs
Následující příklad ukazuje ukázkový parametr:
Další informace najdete v tématu Vytvoření parametrů mezi prostředími pro vstupy pracovních postupů v Azure Logic Apps.
Přidání triggeru
Chceme aktivovat pracovní postup aplikace logiky při každém vytvoření nového souboru v konkrétní složce (datovém assetu) účtu úložiště. Aplikace logiky používá informace z události k vyvolání koncového bodu dávky a předání konkrétního souboru ke zpracování.
V návrháři pracovního postupu přidejte podle těchto obecných kroků trigger Event Grid s názvem Když dojde k události prostředku.
V poli s informacemi o připojení vyberte typ ověřování, který chcete použít, a pak vyberte Přihlásit se.
Do pole triggeru zadejte následující informace:
Vlastnost Hodnota Popis Typ prostředku Microsoft.Storage.StorageAccounts
Typ prostředku vygenerující události. Předplatné Název vašeho předplatného Předplatné pro účet úložiště. Název prostředku Název vašeho účtu úložiště Název účtu úložiště, ve kterém se soubory generují. Položka typu události Microsoft.Storage.BlobCreated
Typ události. V seznamu Rozšířených parametrů vyberte Filtr předpon a zadejte následující hodnotu:
/blobServices/default/containers/<container-name>/blobs/<path-to-data-folder>
Důležité
Vlastnost Filtr předpony umožňuje službě Event Grid oznámit pracovní postup pouze při vytvoření objektu blob v konkrétní cestě, kterou jsme označili. V tomto případě předpokládáme, že soubory jsou vytvořeny některými externími procesy ve složce určené <cestou k datové složce> uvnitř názvu> kontejneru<, který je ve vybraném účtu úložiště. Nakonfigurujte tento parametr tak, aby odpovídal umístění vašich dat. V opačném případě se událost aktivuje pro jakýkoli soubor vytvořený v libovolném umístění účtu úložiště. Další informace najdete v tématu Filtrování událostí pro Event Grid.
Následující příklad ukazuje, jak se trigger zobrazí:
Konfigurace akcí
V části Když dojde k triggeru události prostředku, přidejte akci HTTP podle těchto obecných kroků. Přejmenujte akci na Autorizovat.
V akci Autorizovat zadejte následující informace:
Vlastnost Hodnota Notes Metoda POST
Metoda HTTP Identifikátor URI concat('https://login.microsoftonline.com/', parameters('tenant_id'), '/oauth2/token')
Chcete-li zadat tento výraz, vyberte uvnitř pole identifikátoru URI . Z možností, které se zobrazí, vyberte editor výrazů (ikona vzorce). Záhlaví Content-Type
s hodnotouapplication/x-www-form-urlencoded
Text concat('grant_type=client_credentials&client_id=', parameters('client_id'), '&client_secret=', parameters('client_secret'), '&resource=https://ml.azure.com')
Pokud chcete tento výraz zadat, vyberte uvnitř pole Text . Z možností, které se zobrazí, vyberte editor výrazů (ikona vzorce). Následující příklad ukazuje ukázkovou akci Autorizovat :
Pod akcí Autorizovat přidejte další akci HTTP a přejmenujte název na Vyvolání.
V akci Vyvolání zadejte následující informace:
Vlastnost Hodnota Notes Metoda POST
Metoda HTTP Identifikátor URI endpoint_uri
Vyberte uvnitř pole identifikátoru URI a potom v části Parametry vyberte endpoint_uri. Záhlaví Content-Type
s hodnotouapplication/json
Záhlaví Authorization
s hodnotouconcat('Bearer ', body('Authorize')['access_token'])
Chcete-li zadat tento výraz, vyberte uvnitř pole Záhlaví . Z možností, které se zobrazí, vyberte editor výrazů (ikona vzorce). Vyberte uvnitř pole Text a z možností, které se zobrazí, vyberte editor výrazů (ikona vzorce) a zadejte následující výraz:
replace('{ "properties": { "InputData": { "mnistinput": { "JobInputType" : "UriFile", "Uri" : "<JOB_INPUT_URI>" } } } }', '<JOB_INPUT_URI>', triggerBody()?[0]['data']['url'])
Tip
Předchozí datová část odpovídá nasazení modelu. Pokud pracujete s nasazením součásti kanálu, přizpůsobte formát podle očekávání vstupů kanálu. Další informace o strukturování vstupu ve voláníCH REST najdete v tématu Vytváření úloh a vstupních dat pro dávkové koncové body (REST).
Následující příklad ukazuje ukázkovou akci Vyvolání :
Poznámka:
Akce Vyvolání aktivuje dávkovou úlohu, ale akce nebude čekat na dokončení. Služba Azure Logic Apps není ve výchozím nastavení nastavená pro dlouhotrvající aplikace. Pokud potřebujete počkat na dokončení úlohy, doporučujeme přepnout na spuštění dávkových koncových bodů ze služby Azure Data Factory.
Po dokončení uložte pracovní postup.
Pracovní postup aplikace logiky je připravený ke spuštění a automatické aktivaci při každém vytvoření nového souboru v zadané cestě.
Pokud chcete ověřit, že aplikace úspěšně přijala událost, zkontrolujte historii spuštění aplikace: