Az Azure Functions meghívása munkafolyamatokból az Azure Logic Appsben
A következőkre vonatkozik: Azure Logic Apps (Használat + Standard)
A logikai alkalmazás munkafolyamatában egy adott feladatot végrehajtó kód futtatásához nem kell teljes alkalmazást vagy infrastruktúrát létrehoznia. Ehelyett létrehozhat és meghívhat egy Azure-függvényt. Az Azure Functions kiszolgáló nélküli számítástechnikát biztosít a felhőben, és a következő feladatok elvégzésére képes:
- A munkafolyamat viselkedésének kiterjesztése Node.js vagy C# használatával létrehozott függvények futtatásával.
- Számítások végrehajtása a munkafolyamatban.
- Speciális formázási vagy számítási mezők alkalmazása a munkafolyamatban.
Ez az útmutató bemutatja, hogyan hívhat meg egy meglévő Azure-függvényt a Használat vagy a Standard munkafolyamatból. Ha az Azure Functions használata nélkül szeretne kódot futtatni, tekintse meg a következő dokumentációt:
- Kódrészletek futtatása munkafolyamatokban
- .NET-keretrendszer kód létrehozása és futtatása Standard munkafolyamatokból
Korlátozások
Csak a használati munkafolyamatok támogatják az Azure-függvényhívások hitelesítését felügyelt identitással, Microsoft Entra-hitelesítéssel. A standard munkafolyamatok jelenleg nem támogatottak a függvényhívások hitelesítésének engedélyezéséről szóló szakaszban.
Az Azure Logic Apps nem támogatja az Azure Functions használatát az üzembehelyezési pontok engedélyezésével. Bár ez a forgatókönyv néha működik, ez a viselkedés kiszámíthatatlan, és engedélyezési problémákat okozhat, amikor a munkafolyamat megpróbálja meghívni az Azure-függvényt.
Előfeltételek
Azure-fiók és -előfizetés. Ha még nincs előfizetése, regisztráljon egy ingyenes Azure-fiókra.
Egy Azure-függvényalkalmazás-erőforrás, amely egy vagy több Azure-függvényt tartalmaz.
A függvényalkalmazás erőforrásának és a logikai alkalmazás erőforrásának ugyanazt az Azure-előfizetést kell használnia.
A függvényalkalmazás-erőforrásnak .NET-t vagy Node.js kell használnia futtatókörnyezeti veremként.
Amikor új függvényt ad hozzá a függvényalkalmazáshoz, kiválaszthatja a C# vagy a JavaScript lehetőséget.
A meghívni kívánt Azure-függvény. Ezt a függvényt a következő eszközökkel hozhatja létre:
A függvénynek a HTTP-eseményindító sablont kell használnia .
A HTTP-eseményindító sablon képes elfogadni a logikai alkalmazás munkafolyamatából származó, típussal rendelkező
application/json
tartalmat. Amikor függvényt ad hozzá a munkafolyamathoz, a tervező megjeleníti a sablonból az Azure-előfizetésben létrehozott egyéni függvényeket.A függvénykódnak tartalmaznia kell a választ és a hasznos adatokat, amelyeket a függvény befejezése után vissza szeretne adni a munkafolyamatnak. Az
context
objektum arra az üzenetre hivatkozik, amelyet a munkafolyamat a kérelem törzse nevű Azure Functions-műveletparaméteren keresztül küld az útmutató későbbi részében.Ez az útmutató a fabrikamAzureFunction nevű mintafüggvényt használja:
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(); }
Ha a függvényen belülről szeretné elérni az
context
objektum tulajdonságait, használja az alábbi szintaxist:context.body.<property-name>
Ha például az objektum tulajdonságára
content
context
szeretne hivatkozni, használja a következő szintaxist:context.body.content
Ez a kód tartalmaz egy változót
input
is, amely a paraméterből tárolja azdata
értéket, hogy a függvény műveleteket hajthat végre ezen az értéken. A JavaScript-függvényekben adata
változó parancsikonként is használhatócontext.body
.Feljegyzés
Az
body
itt található tulajdonság azcontext
objektumra vonatkozik, és nem ugyanaz, mint a művelet kimenetében lévő Body token, amelyet a függvénynek is átadhat.A függvény csak akkor használhat egyéni útvonalakat, ha definiált egy OpenAPI-definíciót.
Ha rendelkezik OpenAPI-definícióval a függvényhez, a munkafolyamat-tervező gazdagabb élményt nyújt a függvényparaméterek használatakor. Mielőtt a munkafolyamat megkeresheti és elérheti az OpenAPI-definíciókkal rendelkező függvényeket, állítsa be a függvényalkalmazást az alábbi lépések végrehajtásával.
Egy használatalapú vagy standard logikai alkalmazás munkafolyamata, amely bármilyen eseményindítóval kezdődik.
Az ebben az útmutatóban szereplő példák az Office 365 Outlook When a new email arrives (Új e-mailek érkezésekor) nevű Outlook-eseményindítót használják.
Ha egy másik munkafolyamatot meghívó Azure-függvényt szeretne létrehozni és meghívni, győződjön meg arról, hogy a másodlagos munkafolyamat egy hívható végpontot biztosító eseményindítóval kezdődik.
Elindíthatja például a munkafolyamatot az általános HTTP- vagy kérelem-eseményindítóval, vagy használhat szolgáltatásalapú eseményindítót, például az Azure Queuest vagy az Event Gridet. A függvényen belül küldjön egy HTTP POST-kérést az eseményindító URL-címére, és adja meg a másodlagos munkafolyamat által feldolgozandó hasznos adatokat. További információ: Hívás, eseményindító vagy beágyazott logikai alkalmazás munkafolyamatai.
Tippek az Azure-függvények használatához
Függvények keresése OpenAPI-definíciókkal
Ha úgy szeretné beállítani a függvényalkalmazást, hogy a munkafolyamat megkereshesse és használhassa az OpenAPI-definíciókkal rendelkező függvényeket, kövesse az alábbi lépéseket:
Nyissa meg a függvényalkalmazást az Azure Portalon. Győződjön meg arról, hogy a függvényalkalmazás aktívan fut.
A függvényalkalmazásban állítsa be a forrásközi erőforrás-megosztást (CORS), hogy az összes forrás engedélyezve legyen az alábbi lépések végrehajtásával:
Tulajdonságértékek elérése HTTP-kérelmekben
A Webhook-alapú függvények bemenetként elfogadhatják a HTTP-kéréseket, és továbbíthatják ezeket a kéréseket más függvényeknek. Például, bár az Azure Logic Apps olyan függvényekkel rendelkezik , amelyek a DateTime-értékeket konvertálják, ez az alapszintű JavaScript-mintafüggvény bemutatja, hogyan férhet hozzá a függvénynek átadott HTTP-kérelemobjektumon belüli tulajdonsághoz, és hogyan hajthat végre műveleteket ezen a tulajdonságértéken. Az objektumokon belüli tulajdonságok eléréséhez ez a példa a pont (.) operátort használja:
function convertToDateString(request, response){
var data = request.body;
response = {
body: data.date.ToDateString();
}
}
A függvényen belül a következők történnek:
A függvény létrehoz egy változót
data
, majd hozzárendeli azbody
objektumon belülirequest
objektumot a változóhoz. A függvény a pont (.) operátorral hivatkozik azbody
request
objektumon belüli objektumra:var data = request.body;
A függvény mostantól hozzáférhet a
date
tulajdonsághoz adata
változón keresztül, és a függvény meghívásával a DateTime típusból DateString típussá alakíthatja aToDateString()
tulajdonság értékét. A függvény az eredményt a függvény válaszában lévő tulajdonságon keresztülbody
is visszaadja:body: data.date.ToDateString();
Miután létrehozta a függvényt az Azure-ban, kövesse az Azure-függvények munkafolyamathoz való hozzáadásának lépéseit.
URI-paraméterek átadása függvénynek
Ha URI-paramétert kell átadnia a függvénynek, lekérdezési paramétereket használhat a függvény végponti URL-címében.
Ha a munkafolyamat-tervező meg van nyitva a logikai alkalmazás számára, és meg van nyitva a függvényinformációs panel, válassza a Speciális paraméterek listából a Lekérdezések lehetőséget.
Megjelenik egy tábla, ahol kulcs-érték párokként adhat meg paraméterbemenetet.
Adja meg a paraméter kulcs-érték párját, például:
Függvény hozzáadása a munkafolyamathoz (Használat + Standard munkafolyamatok)
Ha azure-függvényt szeretne meghívni a munkafolyamatból, hozzáadhatja a függvényeket, mint a tervező bármely más műveletét.
Az Azure Portalon nyissa meg a Consumption logikai alkalmazás munkafolyamatát a tervezőben.
A tervezőben kövesse az alábbi általános lépéseket az Azure-függvény kiválasztása nevű Azure Functions-művelet hozzáadásához.
A Művelet hozzáadása panelen kövesse az alábbi lépéseket:
A függvényalkalmazások listájában válassza ki a függvényalkalmazást, válassza ki a függvényt, majd válassza a Művelet hozzáadása lehetőséget, például:
A függvény információs mezőjének megjelenése után kövesse az alábbi lépéseket:
A kérelemtörzs esetében adja meg a függvény bemenetét, amelynek egy JavaScript Object Notation (JSON) objektum formátumát kell használnia, például:
{"context": <selected-input> }
Ez a bemenet az a környezeti objektum hasznos adata vagy üzenete, amelyet a munkafolyamat a függvénynek küld.
Az előző lépések kimeneteit megjelenítő jogkivonatok kiválasztásához válassza a Kérelem törzse mezőben, majd válassza ki a dinamikus tartalomlista (villám ikon) megnyitásának lehetőségét.
Kifejezés létrehozásához jelölje be a Kérelem törzse mezőben, majd válassza a kifejezésszerkesztő (képletikon) megnyitásának lehetőségét.
Az alábbi példa egy JSON-objektumot határoz meg az
content
attribútummal és egy jogkivonattal, amely az e-mail-eseményindító From kimenetét jelöli kérelem törzsértékeként :Itt a környezeti objektum nem sztringként lesz eladva, így az objektum tartalma közvetlenül a JSON hasznos adataihoz lesz hozzáadva. Íme a teljes példa:
Ha egy sztringet, JSON-objektumot vagy JSON-tömböt áthaladó JSON-jogkivonattól eltérő környezeti objektumot ad meg, hibaüzenet jelenik meg. A környezeti objektumot azonban sztringként is megjelenítheti, ha a jogkivonatot idézőjelek közé (") helyezi, például ha a Kapott idő jogkivonatot szeretné használni:
Ha más részleteket szeretne megadni, például a használni kívánt metódust, a kérelemfejléceket, a lekérdezési paramétereket vagy a hitelesítést, nyissa meg a Speciális paraméterek listát, és válassza ki a kívánt paramétereket. A hitelesítéshez a beállítások a kiválasztott függvénytől függően eltérőek. További információkért tekintse át a függvények hitelesítésének engedélyezése című témakört.
Hitelesítés engedélyezése Azure-függvényhívásokhoz (csak használatalapú munkafolyamatok esetén)
A Használat munkafolyamat felügyelt identitással hitelesíthet egy Azure-függvényhívást, és hozzáférhet a Microsoft Entra ID által védett erőforrásokhoz. A felügyelt identitás anélkül hitelesítheti a hozzáférést, hogy be kellene jelentkeznie, és meg kellene adnia a hitelesítő adatokat vagy titkos kulcsokat. Az Azure kezeli Ön helyett ezt az identitást, és segít biztonságban tartani az Ön hitelesítő adatait, mivel így nincs szükség titkos kulcsok megadására és rendszeres módosítására. Beállíthatja a rendszer által hozzárendelt identitást vagy egy manuálisan létrehozott, felhasználó által hozzárendelt identitást a logikai alkalmazás erőforrásszintjén. A munkafolyamatból hívott Azure-függvény ugyanazt a felügyelt identitást használhatja a hitelesítéshez.
Feljegyzés
Csak a használati munkafolyamatok támogatják az Azure-függvényhívások hitelesítését felügyelt identitással és Microsoft Entra-hitelesítéssel. A standard munkafolyamatok jelenleg nem tartalmazzák ezt a támogatást, amikor a művelet használatával meghív egy Azure-függvényt.
További információkért tekintse meg a következő dokumentációt:
Ha úgy szeretné beállítani a függvényalkalmazást és a függvényt, hogy azok használni tudják a Használat logikai alkalmazás felügyelt identitását, kövesse az alábbi magas szintű lépéseket:
A logikai alkalmazás felügyelt identitásának engedélyezése és beállítása.
Keresse meg a Microsoft Entra-hitelesítés beállításához szükséges értékeket.
A függvény beállítása névtelen hitelesítéshez (csak használatalapú munkafolyamatok esetén)
Ahhoz, hogy a függvény a Consumption logikai alkalmazás felügyelt identitását használja, a függvény hitelesítési szintjét a következőre anonymous
kell állítania: . Ellenkező esetben a munkafolyamat BadRequest-hibát jelez.
Az Azure Portalon keresse meg és válassza ki a függvényalkalmazást.
Az alábbi lépések egy FabrikamFunctionApp nevű példafüggvényalkalmazást használnak.
A függvényalkalmazás erőforrásmenüjének Fejlesztési eszközök csoportjában válassza a Speciális eszközök>ugrása lehetőséget.
Miután megnyílik a Kudu Plus oldal, a Kudu webhely címsorában, a Hibakeresési konzol menüben válassza a CMD elemet.
A következő lap megjelenése után a mappalistában válassza ki a webhely>wwwroot your-function (webhely wwwroot>your-function) elemét.
Az alábbi lépések egy FabrikamAzureFunction nevű példafüggvényt használnak.
Nyissa meg a function.json fájlt szerkesztésre.
A kötések objektumban ellenőrizze, hogy létezik-e az authLevel tulajdonság. Ha a tulajdonság létezik, állítsa a tulajdonság értékét a következőre
anonymous
: . Ellenkező esetben adja hozzá a tulajdonságot, és állítsa be az értéket.Ha végzett, mentse a beállításokat. Folytassa a következő szakaszt.
A Microsoft Entra-hitelesítés beállításához szükséges értékek megkeresése (csak használati munkafolyamatok esetén)
Mielőtt beállíthatja a függvényalkalmazást a felügyelt identitás és a Microsoft Entra-hitelesítés használatára, az alábbi értékeket kell megkeresnie és mentenie az ebben a szakaszban leírt lépések végrehajtásával.
Keresse meg a Microsoft Entra-bérlő bérlőazonosítóját.
Keresse meg a felügyelt identitás objektumazonosítóját.
Keresse meg a felügyelt identitáshoz társított vállalati alkalmazás alkalmazásazonosítóját.
A Microsoft Entra-bérlő bérlőazonosítójának megkeresése
Futtassa a Get-AzureAccount nevű PowerShell-parancsot, vagy az Azure Portalon kövesse az alábbi lépéseket:
Nyissa meg a Microsoft Entra-bérlőt az Azure Portalon.
Ez az útmutató a Fabrikamot használja példabérltetőként.
A bérlői menüben válassza az Áttekintés lehetőséget.
Másolja és mentse a bérlőazonosítót későbbi használatra, például:
A felügyelt identitás objektumazonosítójának megkeresése
Miután engedélyezte a felügyelt identitást a Consumption logikai alkalmazás erőforrásához, keresse meg a felügyelt identitás objektumát. Ezzel az azonosítóval fogja megkeresni a társított nagyvállalati alkalmazást a Microsoft Entra-bérlőben.
A logikai alkalmazás menü Beállítások területén válassza az Identitás lehetőséget, majd válassza ki a hozzárendelt rendszer vagy felhasználó lehetőséget.
A felügyelt identitáshoz társított Azure Enterprise-alkalmazás alkalmazásazonosítójának megkeresése
Ha engedélyezi a felügyelt identitást a logikaialkalmazás-erőforráson, az Azure automatikusan létrehoz egy társított Azure Enterprise-alkalmazást , amely ugyanazzal a névvel rendelkezik. Most meg kell keresnie a társított vállalati alkalmazást, és ki kell másolnia annak alkalmazásazonosítóját. Később ezzel az alkalmazásazonosítóval hozzáadhat egy identitásszolgáltatót a függvényalkalmazáshoz egy alkalmazásregisztráció létrehozásával.
Az Azure Portalon keresse meg és nyissa meg a Microsoft Entra-bérlőt.
A bérlői menü Kezelés területén válassza a Vállalati alkalmazások lehetőséget.
A Minden alkalmazás lap keresőmezőjébe írja be a felügyelt identitás objektumazonosítóját. Az eredményekből keresse meg a megfelelő vállalati alkalmazást, és másolja ki az alkalmazásazonosítót:
Most használja a másolt alkalmazásazonosítót egy identitásszolgáltató hozzáadásához a függvényalkalmazáshoz.
Identitásszolgáltató hozzáadása a függvényalkalmazáshoz (csak használati munkafolyamatok)
Most, hogy rendelkezik a bérlőazonosítóval és az alkalmazásazonosítóval, beállíthatja a függvényalkalmazást a Microsoft Entra-hitelesítés használatára egy identitásszolgáltató hozzáadásával és egy alkalmazásregisztráció létrehozásával.
Nyissa meg a függvényalkalmazást az Azure Portalon.
A függvényalkalmazás menü Beállítások területén válassza a Hitelesítés, majd az Identitásszolgáltató hozzáadása lehetőséget.
Az Identitásszolgáltató hozzáadása panel Alapszintű beállítások csoportjában válassza a Microsoftot az identitásszolgáltatói listából.
Az Alkalmazásregisztráció csoportban az alkalmazásregisztráció típusához válassza a Meglévő alkalmazásregisztráció adatainak megadása lehetőséget, és adja meg a korábban mentett értékeket.
Tulajdonság Kötelező Érték Leírás Alkalmazás (ügyfél) azonosítója Igen <alkalmazásazonosító> Az alkalmazásregisztrációhoz használandó egyedi azonosító. Ebben a példában használja a felügyelt identitáshoz társított vállalati alkalmazáshoz másolt alkalmazásazonosítót. Titkos ügyfélkód Nem kötelező, de ajánlott <titkos ügyfélkód> Az a titkos érték, amelyet az alkalmazás használ a személyazonosságának igazolására egy jogkivonat kérésekor. Az ügyfél titkos kódját az alkalmazás konfigurációjában hozza létre és tárolja a rendszer egy MICROSOFT_PROVIDER_AUTHENTICATION_SECRET nevű pont-ragadós alkalmazásbeállításként.
- Győződjön meg arról, hogy rendszeresen elforgatja a titkos kulcsokat, és biztonságosan tárolja őket. Kezelheti például a titkos kulcsokat az Azure Key Vaultban, ahol felügyelt identitással lekérheti a kulcsot anélkül, hogy az értéket illetéktelen felhasználónak tárja fel. Ezt a beállítást a Key Vault-hivatkozások használatára frissítheti.
– Ha titkos ügyfélkulcs-értéket ad meg, a bejelentkezési műveletek a hibrid folyamatot használják, és a hozzáférési és frissítési jogkivonatokat is visszaadják.
- Ha nem ad meg ügyfélkulcsot, a bejelentkezési műveletek az OAuth 2.0 implicit engedélyezési folyamatot használják. Ez a metódus közvetlenül csak egy azonosító jogkivonatot vagy hozzáférési jogkivonatot ad vissza. Ezeket a jogkivonatokat a szolgáltató küldi el, és az EasyAuth tokentárolóban tárolja.
Fontos: Biztonsági kockázatok miatt az implicit engedélyezési folyamat már nem megfelelő hitelesítési módszer. Ehelyett használja az engedélyezési kódfolyamatot a Code Exchange -hez (PKCE) készült Proof Key vagy az egyoldalas (SPA) engedélyezési kódokkal.Kiállító URL-címe Nem <authentication-endpoint-URL>/<Microsoft-Entra-tenant-ID>/v2.0 Ez az URL átirányítja a felhasználókat a megfelelő Microsoft Entra-bérlőre, és letölti a megfelelő metaadatokat a megfelelő jogkivonat-aláíró kulcsok és a jogkivonat-kiállító jogcímértékének meghatározásához. Az Azure AD v1-et használó alkalmazások esetében hagyja ki a /v2.0-t az URL-címből.
Ebben a forgatókönyvben használja a következő URL-címet:https://sts.windows.net/
<Microsoft-Entra-tenant-ID>Engedélyezett jogkivonat-célközönségek Nem <application-ID-URI> A függvényalkalmazás alkalmazásazonosítója URI (erőforrás-azonosító). Olyan felhő- vagy kiszolgálóalkalmazások esetében, ahol engedélyezni szeretné a webalkalmazásból származó hitelesítési jogkivonatokat, adja hozzá a webalkalmazás alkalmazásazonosítójának URI-ját. A konfigurált ügyfélazonosítót mindig implicit módon tekintjük engedélyezett célközönségnek.
Ebben a forgatókönyvben az érték a következőhttps://management.azure.com
: . Később ugyanezt az URI-t használhatja a Audience tulajdonságban, amikor beállítja a függvényműveletet a munkafolyamatban a felügyelt identitás használatára.
Fontos: Az alkalmazásazonosító URI-jának (erőforrás-azonosítójának) pontosan meg kell egyeznie a Microsoft Entra ID által várt értékkel, beleértve a szükséges záró perjeleket is.Ezen a ponton a verzió az alábbi példához hasonlóan néz ki:
Ha először állítja be a függvényalkalmazást identitásszolgáltatóval, megjelenik az App Service hitelesítési beállítások szakasza is. Ezek a beállítások határozzák meg, hogy a függvényalkalmazás hogyan reagál a nem hitelesített kérelmekre. Az alapértelmezett kijelölés átirányítja az összes kérést az új identitásszolgáltatónál való bejelentkezéshez. Ezt a viselkedést most testre szabhatja, vagy később módosíthatja ezeket a beállításokat a fő hitelesítési lapon a Hitelesítés beállításai melletti Szerkesztés gombra kattintva. Ha többet szeretne megtudni ezekről a lehetőségekről, tekintse át a hitelesítési folyamatot – Hitelesítés és engedélyezés a Azure-alkalmazás Szolgáltatásban és az Azure Functionsben.
Ellenkező esetben folytathatja a következő lépést.
Az alkalmazásregisztráció létrehozásának befejezéséhez válassza a Hozzáadás lehetőséget.
Ha végzett, a Hitelesítés lap most már felsorolja az identitásszolgáltatót és az alkalmazásregisztrációs alkalmazás (ügyfél) azonosítóját. A függvényalkalmazás mostantól használhatja ezt az alkalmazásregisztrációt hitelesítésre.
Másolja ki az alkalmazásregisztráció alkalmazás-(ügyfél-) azonosítóját , hogy később használhassa az Azure Functions-művelet Audience tulajdonságában a munkafolyamathoz.
Térjen vissza a tervezőhöz, és kövesse a lépéseket a felügyelt identitással való hozzáférés hitelesítéséhez a beépített Azure Functions-művelettel.