Sdílet prostřednictvím


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í:

Koncepční diagram znázorňuje komponenty pro tuto architekturu.

Následující kroky popisují základní kroky v tomto řešení:

  1. Když se v konkrétním účtu úložiště vytvoří nový objekt blob, aktivuje se událost vytvoření souboru.

  2. Událost se odešle do event Gridu, aby se zpracovala všem odběratelům.

  3. 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ů.

  4. Aktivuje se pracovní postup aplikace logiky a provede následující akce:

    1. 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.

    2. Aktivuje dávkový koncový bod (výchozí nasazení) pomocí nově vytvořeného souboru jako vstupu.

  5. 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.

  1. Vytvořte instanční objekt pomocí registrace aplikace s ID Microsoft Entra a vytvořte instanční objekt.

  2. 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.

  3. Nezapomeňte uložit vygenerovanou hodnotu tajného klíče klienta, která se zobrazí jenom jednou.

  4. Nezapomeňte uložit a tenant id uložit client ID v podokně Přehled aplikace.

  5. 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:

  1. Vytvoření prostředku spravované identity:

    IDENTITY=$(az identity create  -n azureml-cpu-cluster-idn  --query id -o tsv)
    
  2. 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.

    az ml compute update --name cpu-cluster --identity-type user_assigned --user-assigned-identities $IDENTITY
    
  3. 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

  1. Na webu Azure Portal na domovské stránce Azure vyberte Vytvořit prostředek.

  2. V nabídce Azure Marketplace vyberte Aplikaci logiky integrace>.

    Snímek obrazovky znázorňující nabídku Azure Marketplace s vybranými možnostmi integrace a aplikace logiky

  3. V podokně Vytvořit aplikaci logiky na kartě Základy zadejte následující informace o prostředku aplikace logiky.

    Vlastnost Požaduje se Hodnota Popis
    Předplatné Ano <Azure-subscription-name> Název vašeho předplatného Azure Tento příklad používá průběžné platby.
    Skupina prostředků Ano LA-TravelTime-RG Skupina prostředků Azure, ve které vytvoříte prostředek aplikace logiky a související prostředky. Tento název musí být v různých oblastech jedinečný a může obsahovat pouze písmena, číslice, pomlčky (-), podtržítka (_), závorky ((, )) a tečky (.).
    Název Ano LA-TravelTime Název prostředku aplikace logiky, který musí být jedinečný napříč oblastmi a může obsahovat jenom písmena, číslice, spojovníky (-), podtržítka (_), závorky ((, )) a tečky (.).

    Snímek obrazovky s webem Azure Portal, podoknem pro vytvoření aplikace logiky a informacemi o novém prostředku aplikace logiky

  4. 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.
  5. 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.
  6. Až budete hotovi, vyberte Zkontrolovat a vytvořit. Jakmile Azure ověří informace o prostředku aplikace logiky, vyberte Vytvořit.

  7. 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í.

  1. Na panelu nástrojů návrháře pracovního postupu vyberte Parametry.

    Snímek obrazovky s podoknem Parametry pro definování parametrů požadovaných pro pracovní postup

  2. 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:

    Snímek obrazovky ukazuje, jak přidat jeden parametr v návrháři.

    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í.

  1. 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.

  2. V poli s informacemi o připojení vyberte typ ověřování, který chcete použít, a pak vyberte Přihlásit se.

  3. 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.
  4. 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í:

    Snímek obrazovky s aktivitou triggeru aplikace logiky

Konfigurace akcí

  1. 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.

  2. 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 hodnotou application/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 :

    Snímek obrazovky ukazuje ukázkovou akci Autorizace v pracovním postupu aplikace logiky.

  3. Pod akcí Autorizovat přidejte další akci HTTP a přejmenujte název na Vyvolání.

  4. 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 hodnotou application/json
    Záhlaví Authorization s hodnotou concat('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).
  5. 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í :

    Snímek obrazovky ukazuje ukázkovou akci Vyvolat v pracovním postupu aplikace logiky.

    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.

  6. 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ě.

  7. Pokud chcete ověřit, že aplikace úspěšně přijala událost, zkontrolujte historii spuštění aplikace:

    Snímek obrazovky znázorňující historii spuštění pracovního postupu aplikace logiky

Další kroky