Volání Azure Functions z pracovních postupů v Azure Logic Apps

Platí pro: Azure Logic Apps (Consumption + Standard)

Pokud chcete spustit kód, který provádí určitou úlohu v pracovním postupu aplikace logiky, nemusíte vytvářet úplnou aplikaci ani infrastrukturu. Místo toho můžete vytvořit a volat funkci Azure. Azure Functions poskytuje bezserverovou architekturu v cloudu a schopnost provádět následující úlohy:

  • Rozšiřte chování pracovního postupu spuštěním funkcí vytvořených pomocí Node.js nebo jazyka C#.
  • Provádění výpočtů v pracovním postupu
  • Použití rozšířeného formátování nebo výpočetních polí v pracovním postupu

Tento návod ukazuje, jak volat existující funkci Azure z pracovního postupu Consumption nebo Standard. Pokud chcete spustit kód bez použití služby Azure Functions, projděte si následující dokumentaci:

Omezení

  • Ověřování volání funkcí Azure s využitím spravované identity s ověřováním Microsoft Entra podporují pouze pracovní postupy Consumption. Standardní pracovní postupy se v současné době nepodporují v části o tom, jak povolit ověřování pro volání funkcí.

  • Azure Logic Apps nepodporuje používání Azure Functions s povolenými sloty nasazení. I když tento scénář může někdy fungovat, toto chování je nepředvídatelné a může vést k problémům s autorizací, když se pracovní postup pokusí volat funkci Azure Functions.

Požadavky

  • Účet Azure a předplatné. Pokud předplatné nemáte, zaregistrujte si bezplatný účet Azure.

  • Prostředek aplikace funkcí Azure, který obsahuje jednu nebo více funkcí Azure.

    • Prostředek aplikace funkcí a prostředek aplikace logiky musí používat stejné předplatné Azure.

    • Prostředek aplikace funkcí musí jako zásobník modulu runtime používat .NET nebo Node.js .

    • Když do aplikace funkcí přidáte novou funkci, můžete vybrat jazyk C# nebo JavaScript.

  • Funkce Azure, kterou chcete volat. Tuto funkci můžete vytvořit pomocí následujících nástrojů:

    • Azure Portal

    • Visual Studio

    • Visual Studio Code

    • Azure CLI

    • Azure PowerShell

    • Šablona ARM

    • Vaše funkce musí používat šablonu triggeru HTTP.

      Šablona triggeru HTTP může přijímat obsah, který má application/json typ z pracovního postupu vaší aplikace logiky. Když do pracovního postupu přidáte funkci, návrhář zobrazí vlastní funkce vytvořené z této šablony v rámci vašeho předplatného Azure.

    • Kód funkce musí po dokončení funkce obsahovat odpověď a datovou část, kterou chcete vrátit do pracovního postupu. Objekt context odkazuje na zprávu, že váš pracovní postup odesílá prostřednictvím parametru akce Azure Functions s názvem Text požadavku dále v této příručce.

      Tato příručka používá následující ukázkovou funkci, která má název FabrikamAzureFunction:

      module.exports = function (context, data) {
      
         var input = data;
      
         // Function processing logic
         // Function response for later use
         context.res = {
            body: {
              content:"Thank you for your feedback: " + input
            }
         };
         context.done();
      }
      

      Pokud chcete získat přístup k vlastnostem objektu context z vaší funkce, použijte následující syntaxi:

      context.body.<property-name>

      Pokud například chcete odkazovat na content vlastnost v objektu context , použijte následující syntaxi:

      context.body.content

      Tento kód obsahuje také proměnnou input , která ukládá hodnotu z parametru data , aby vaše funkce s touto hodnotou mohl provádět operace. V rámci funkcí data Jazyka JavaScript je proměnná také zkratkou pro context.body.

      Poznámka:

      Tato body vlastnost se vztahuje na context objekt a není stejná jako token Body ve výstupu akce, který můžete také předat funkci.

    • Vaše funkce nemůže používat vlastní trasy, pokud jste nedefinujete definici OpenAPI (soubor Swagger).

      Pokud máte definici OpenAPI pro funkci, návrhář pracovního postupu vám při práci s parametry funkce poskytuje bohatší prostředí. Než bude váš pracovní postup moct najít a získat přístup k funkcím, které mají definice OpenAPI, nastavte aplikaci funkcí pomocí následujícího postupu.

  • Pracovní postup aplikace logiky Consumption nebo Standard, který začíná libovolným triggerem.

    Příklady v této příručce používají trigger Office 365 Outlook s názvem Při přijetí nového e-mailu.

  • Pokud chcete vytvořit a volat funkci Azure, která volá jiný pracovní postup, ujistěte se, že sekundární pracovní postup začíná triggerem, který poskytuje volatelný koncový bod.

    Můžete například spustit pracovní postup pomocí obecného triggeru HTTP nebo požadavku nebo můžete použít aktivační událost založenou na službě, jako jsou fronty Azure nebo Event Grid. Uvnitř funkce odešlete požadavek HTTP POST na adresu URL triggeru a uveďte datovou část, kterou má sekundární pracovní postup zpracovat. Další informace najdete v tématu Volání, trigger nebo vnoření pracovních postupů aplikace logiky.

Tipy pro práci s funkcemi Azure

Generování definice OpenAPI nebo souboru Swagger pro vaši funkci

Pro bohatší prostředí při práci s parametry funkce v návrháři pracovního postupu vygenerujte definici OpenAPI nebo soubor Swagger pro vaši funkci. Pokud chcete nastavit aplikaci funkcí tak, aby váš pracovní postup mohl najít a používat funkce s popisy Swaggeru, postupujte takto:

  1. Na webu Azure Portal otevřete aplikaci funkcí. Ujistěte se, že je aplikace funkcí aktivně spuštěná.

  2. V aplikaci funkcí nastavte sdílení prostředků mezi zdroji (CORS), aby bylo možné všechny zdroje povolit pomocí následujících kroků:

    1. V nabídce aplikace funkcí v části ROZHRANÍ API vyberte CORS.

    2. V části Povolené původy přidejte zástupný znak hvězdičky (*), ale odeberte všechny ostatní původy v seznamu a vyberte Uložit.

      Snímek obrazovky s webem Azure Portal, podoknem CORS a zástupným znakem * zadaným v části Povolené zdroje

Přístup k hodnotám vlastností uvnitř požadavků HTTP

Funkce založené na webhoocích mohou přijímat požadavky HTTP jako vstupy a předávat tyto požadavky jiným funkcím. Přestože má například Azure Logic Apps funkce, které převádějí hodnoty DateTime, tato základní ukázková funkce JavaScriptu ukazuje, jak můžete přistupovat k vlastnosti uvnitř objektu požadavku HTTP, který je předán funkci a provádět operace s touto hodnotou vlastnosti. Pro přístup k vlastnostem uvnitř objektů používá tento příklad operátor tečky (.):

function convertToDateString(request, response){
   var data = request.body;
   response = {
      body: data.date.ToDateString();
   }
}

Tady je postup, který se stane uvnitř této funkce:

  1. Funkce vytvoří proměnnou data a přiřadí body objekt, který je uvnitř request objektu, proměnné. Funkce pomocí operátoru tečka (.) odkazuje na body objekt uvnitř objektu request :

    var data = request.body;
    
  2. Funkce teď může přistupovat k date vlastnosti prostřednictvím data proměnné a převést hodnotu vlastnosti z typu DateTime na Typ DateString voláním ToDateString() funkce. Funkce také vrátí výsledek prostřednictvím body vlastnosti v odpovědi funkce:

    body: data.date.ToDateString();
    

Po vytvoření funkce v Azure postupujte podle kroků a přidejte do pracovního postupu funkci Azure.

Přidání funkce do pracovního postupu (Pracovní postupy Consumption + Standard)

Pokud chcete volat funkci Azure z pracovního postupu, můžete přidat funkce jako jakoukoli jinou akci v návrháři.

  1. Na webu Azure Portal otevřete pracovní postup aplikace logiky Consumption v návrháři.

  2. V návrháři postupujte podle těchto obecných kroků a přidejte akci Azure Functions s názvem Zvolit funkci Azure.

  3. V podokně Vytvořit Připojení ion postupujte takto:

    1. Zadejte název Připojení pro připojení k aplikaci funkcí.

    2. V seznamu aplikací funkcí vyberte svou aplikaci funkcí.

    3. V seznamu funkcí vyberte funkci a pak vyberte Přidat akci, například:

      Snímek obrazovky znázorňující pracovní postup Consumption s vybranou aplikací funkcí a funkcí

  4. V poli akce vybrané funkce postupujte takto:

    1. V textu požadavku zadejte vstup funkce, který musí být formátován jako objekt JSON (JavaScript Object Notation). Tento vstup je datová část objektu kontextu nebo zpráva, kterou pracovní postup odesílá do vaší funkce.

      • Pokud chcete vybrat tokeny, které představují výstupy z předchozích kroků, vyberte v poli Text požadavku a pak vyberte možnost pro otevření seznamu dynamického obsahu (ikona blesku).

      • Pokud chcete vytvořit výraz, vyberte v poli Text požadavku a pak vyberte možnost pro otevření editoru výrazů (ikona vzorce).

      Následující příklad určuje objekt JSON s atributem content a token představující výstup z e-mailu trigger jako hodnotu Text požadavku:

      Snímek obrazovky znázorňující pracovní postup Consumption a funkci s příkladem textu požadavku pro datovou část objektu kontextu

      Kontextový objekt se tady nepřetypuje jako řetězec, takže se obsah objektu přidá přímo do datové části JSON. Tady je úplný příklad:

      Snímek obrazovky znázorňující pracovní postup Consumption a funkci s úplným příkladem textu požadavku pro datovou část objektu kontextu

      Pokud zadáte jiný kontextový objekt než token JSON, který předává řetězec, objekt JSON nebo pole JSON, zobrazí se chyba. Kontextový objekt však můžete přetypovat jako řetězec tak, že token uzavřete do uvozovek ("), například pokud chcete použít token Přijatý čas :

      Snímek obrazovky znázorňující pracovní postup Consumption a příklad textu požadavku, který přetypuje kontextový objekt jako řetězec

    2. Pokud chcete zadat další podrobnosti, například metodu pro použití, hlavičky požadavků, parametry dotazu nebo ověřování, otevřete seznam rozšířených parametrů a vyberte požadované parametry. U ověřování se vaše možnosti liší v závislosti na vybrané funkci. Další informace najdete v tématu Povolení ověřování pro funkce.

Povolení ověřování pro volání funkcí Azure (pouze pracovní postupy Consumption)

Pracovní postup Consumption může použít spravovanou identitu k ověření volání funkce Azure a přístupu k prostředkům chráněným ID Microsoft Entra. Spravovaná identita může ověřovat přístup, aniž byste se museli přihlašovat a zadávat přihlašovací údaje nebo tajné kódy. Azure tuto identitu spravuje za vás a pomáhá zabezpečit vaše přihlašovací údaje, protože nemusíte zadávat ani vyměňovat tajné kódy. Identitu přiřazenou systémem nebo ručně vytvořenou identitu přiřazenou uživatelem můžete nastavit na úrovni prostředku aplikace logiky. Funkce Azure, která je volána z pracovního postupu, může pro ověřování použít stejnou spravovanou identitu.

Poznámka:

Ověřování volání funkce Azure pomocí spravované identity a ověřování Microsoft Entra podporují pouze pracovní postupy Consumption. Standardní pracovní postupy v současné době tuto podporu nezahrnují, když k volání funkce Azure použijete akci.

Další informace najdete v následující dokumentaci:

Pokud chcete nastavit aplikaci funkcí a funkci, aby mohly používat spravovanou identitu aplikace logiky Consumption, postupujte takto:

  1. Povolte a nastavte spravovanou identitu aplikace logiky.

  2. Nastavte funkci pro anonymní ověřování.

  3. Vyhledejte požadované hodnoty pro nastavení ověřování Microsoft Entra.

  4. Vytvořte registraci aplikace pro vaši aplikaci funkcí.

Nastavení funkce pro anonymní ověřování (jenom pracovní postupy Consumption)

Aby vaše funkce používala spravovanou identitu aplikace logiky Consumption, musíte nastavit úroveň ověřování vaší funkce na anonymoushodnotu . V opačném případě pracovní postup vyvolá chybu BadRequest .

  1. Na webu Azure Portal vyhledejte a vyberte svou aplikaci funkcí.

    Následující kroky používají ukázkovou aplikaci funkcí s názvem FabrikamFunctionApp.

  2. V nabídce prostředků aplikace funkcí v části Vývojové nástroje vyberte Rozšířené nástroje>Go.

    Snímek obrazovky s nabídkou aplikace funkcí s vybranými možnostmi rozšířených nástrojů a go

  3. Po otevření stránky Kudu Plus v záhlaví webu Kudu v nabídce Konzola ladění vyberte CMD.

    Snímek obrazovky se stránkou Kudu Services s otevřenou nabídkou konzoly ladění a vybranou možností s názvem CMD

  4. Jakmile se zobrazí další stránka, vyberte v seznamu složek web>wwwroot>your-function.

    Následující kroky používají ukázkovou funkci s názvem FabrikamAzureFunction.

    Snímek obrazovky se seznamem složek s otevřenými složkami pro web, wwwroot a vaší funkcí

  5. Otevřete soubor function.json pro úpravy.

    Snímek obrazovky ukazuje function.json soubor s vybraným příkazem upravit.

  6. V objektu bindings zkontrolujte, zda existuje vlastnost authLevel . Pokud vlastnost existuje, nastavte hodnotu vlastnosti na anonymous. V opačném případě přidejte danou vlastnost a nastavte hodnotu.

    Snímek obrazovky ukazuje objekt vazby s vlastností authLevel nastavenou na anonymní.

  7. Až budete hotovi, uložte nastavení. Pokračujte k další části.

Vyhledání požadovaných hodnot pro nastavení ověřování Microsoft Entra (pouze pracovní postupy Consumption)

Než budete moct aplikaci funkcí nastavit tak, aby používala spravovanou identitu a ověřování Microsoft Entra, musíte pomocí kroků v této části najít a uložit následující hodnoty.

  1. Vyhledejte ID tenanta vašeho tenanta Microsoft Entra.

  2. Vyhledejte ID objektu pro vaši spravovanou identitu.

  3. Vyhledejte ID aplikace pro podnikovou aplikaci přidruženou k vaší spravované identitě.

Vyhledání ID tenanta pro vašeho tenanta Microsoft Entra

Spusťte příkaz PowerShellu s názvem Get-AzureAccount nebo na webu Azure Portal, postupujte takto:

  1. Na webu Azure Portal otevřete tenanta Microsoft Entra.

    V této příručce se jako ukázkový tenant používá Fabrikam .

  2. V nabídce tenanta vyberte Přehled.

  3. Zkopírujte a uložte ID tenanta pro pozdější použití, například:

    Snímek obrazovky se stránkou Vlastnosti ID Microsoft Entra s vybraným tlačítkem kopírovat ID tenanta

Vyhledání ID objektu pro vaši spravovanou identitu

Po povolení spravované identity pro prostředek aplikace logiky Consumption vyhledejte objekt pro vaši spravovanou identitu. Toto ID použijete k vyhledání přidružené podnikové aplikace ve vašem tenantovi Entra.

  1. V nabídce aplikace logiky v části Nastavení vyberte Identita a pak vyberte přiřazený systém nebo přiřazený uživatelem.

    • Přiřazený systém

      Zkopírujte ID objektu (objektu zabezpečení) identity:

      Snímek obrazovky znázorňující stránku Identita aplikace logiky Consumption s vybranou kartou Přiřazenou systémem

    • Přiřazený uživatel

      1. Vyberte identitu:

        Snímek obrazovky znázorňující stránku Identita aplikace logiky Consumption s vybranou kartou s názvem Přiřazený uživatel

      2. Zkopírujte ID objektu (objektu zabezpečení) identity:

        Snímek obrazovky znázorňující stránku Přehled identity přiřazené uživatelem aplikace logiky Consumption s vybraným ID objektu (objektu zabezpečení)

Vyhledání ID aplikace pro aplikaci Azure Enterprise přidruženou k vaší spravované identitě

Když pro prostředek aplikace logiky povolíte spravovanou identitu, Azure automaticky vytvoří přidruženou aplikaci Azure Enterprise se stejným názvem. Teď potřebujete najít přidruženou podnikovou aplikaci a zkopírovat její ID aplikace. Později použijete toto ID aplikace k přidání zprostředkovatele identity pro vaši aplikaci funkcí vytvořením registrace aplikace.

  1. Na webu Azure Portal vyhledejte a otevřete tenanta Entra.

  2. V nabídce tenanta v části Spravovat vyberte Podnikové aplikace.

  3. Na stránce Všechny aplikace zadejte do vyhledávacího pole ID objektu pro vaši spravovanou identitu. Ve výsledcích vyhledejte odpovídající podnikovou aplikaci a zkopírujte ID aplikace:

    Snímek obrazovky znázorňující stránku tenanta Entra s názvem Všechny aplikace s ID objektu podnikové aplikace ve vyhledávacím poli a vybraným odpovídajícím ID aplikace

  4. Teď pomocí zkopírovaného ID aplikace přidejte do aplikace funkcí zprostředkovatele identity.

Přidání zprostředkovatele identity pro vaši aplikaci funkcí (jenom pracovní postupy Consumption)

Teď, když máte ID tenanta a ID aplikace, můžete aplikaci funkcí nastavit tak, aby používala ověřování Microsoft Entra přidáním zprostředkovatele identity a vytvořením registrace aplikace.

  1. Na webu Azure Portal otevřete aplikaci funkcí.

  2. V nabídce aplikace funkcí v části Nastavení vyberte Ověřování a pak vyberte Přidat zprostředkovatele identity.

    Snímek obrazovky s nabídkou aplikace funkcí se stránkou Ověřování a vybranou možností Přidat zprostředkovatele identity

  3. V podokně Přidat zprostředkovatele identity v části Základy v seznamu zprostředkovatele identity vyberte Microsoft.

  4. V části Registrace aplikace jako typ registrace aplikace vyberte Zadat podrobnosti o existující registraci aplikace a zadejte hodnoty, které jste dříve uložili.

    Vlastnost Požaduje se Hodnota Popis
    ID aplikace (klienta) Ano <ID aplikace> Jedinečný identifikátor, který se má použít pro tuto registraci aplikace. V tomto příkladu použijte ID aplikace, které jste zkopírovali pro podnikovou aplikaci přidruženou k vaší spravované identitě.
    Tajný klíč klienta Volitelné, ale doporučené <tajný klíč klienta> Hodnota tajného kódu, kterou aplikace používá k prokázání své identity při vyžádání tokenu. Tajný klíč klienta se vytvoří a uloží v konfiguraci vaší aplikace jako nastavení aplikace typu slot-sticky s názvem MICROSOFT_PROVIDER_AUTHENTICATION_SECRET. Pokud chcete místo toho spravovat tajný klíč ve službě Azure Key Vault, můžete toto nastavení později aktualizovat tak, aby používalo odkazy na službu Key Vault.

    – Pokud zadáte hodnotu tajného klíče klienta, operace přihlašování používají hybridní tok a vrací přístup i obnovovací tokeny.

    – Pokud nezadáte tajný klíč klienta, operace přihlašování používají tok implicitního udělení OAuth 2.0, který vrací pouze token ID.

    Tyto tokeny posílají poskytovatel a ukládají se v úložišti tokenů EasyAuth.
    Adresa URL vystavitele No <authentication-endpoint-URL>/<Entra-tenant-ID>/v2.0 Tato adresa URL přesměruje uživatele na správného tenanta Microsoft Entra a stáhne příslušná metadata k určení odpovídajících podpisových klíčů tokenu a hodnoty deklarace identity vystavitele tokenu. Pro aplikace, které používají Azure AD v1, vynecháte /v2.0 z adresy URL.

    Pro tento scénář použijte následující adresu URL: https://sts.windows.net/<Entra-tenant-ID>
    Povolené cílové skupiny tokenů No <application-ID-URI> Identifikátor URI ID aplikace (ID prostředku) pro aplikaci funkcí. Pro cloudovou nebo serverovou aplikaci, ve které chcete povolit ověřovací tokeny z webové aplikace, přidejte identifikátor URI ID aplikace pro webovou aplikaci. Nakonfigurované ID klienta se vždy implicitně považuje za povolenou cílovou skupinu.

    V tomto scénáři je https://management.azure.comhodnota . Později můžete použít stejný identifikátor URI ve vlastnosti Audience při nastavování akce funkce v pracovním postupu pro použití spravované identity.

    Důležité: Identifikátor URI ID aplikace (ID prostředku) musí přesně odpovídat hodnotě, kterou očekává Microsoft Entra ID, včetně všech požadovaných koncových lomítek.

    V tomto okamžiku vypadá vaše verze podobně jako v tomto příkladu:

    Snímek obrazovky znázorňující registraci aplikace logiky a zprostředkovatele identity pro vaši aplikaci funkcí

    Pokud aplikaci funkcí nastavujete u zprostředkovatele identity poprvé, zobrazí se také část Nastavení ověřování služby App Service. Tyto možnosti určují, jak vaše aplikace funkcí reaguje na neověřené požadavky. Výchozí výběr přesměruje všechny požadavky na přihlášení pomocí nového zprostředkovatele identity. Toto chování můžete nyní přizpůsobit nebo později upravit tato nastavení na hlavní stránce Ověřování výběrem možnosti Upravit vedle nastavení ověřování. Další informace o těchto možnostech najdete v toku ověřování – Ověřování a autorizace ve službě Aplikace Azure a Azure Functions.

    V opačném případě můžete pokračovat dalším krokem.

  5. Pokud chcete dokončit vytváření registrace aplikace, vyberte Přidat.

    Až budete hotovi, zobrazí se na stránce Ověřování seznam zprostředkovatele identity a ID aplikace registrace aplikace (klienta). Vaše aplikace funkcí teď může tuto registraci aplikace použít k ověřování.

  6. Zkopírujte ID aplikace (klienta) registrace aplikace, které se použije později ve vlastnosti Cílové skupiny akce Azure Functions pro váš pracovní postup.

    Snímek obrazovky znázorňující nového zprostředkovatele identity pro aplikaci funkcí

  7. Vraťte se do návrháře a postupujte podle kroků pro ověření přístupu pomocí spravované identity pomocí integrované akce Azure Functions.

Další kroky