Gyakorlat – Munkafolyamtat létrehozása a Durable Functions használatával
Ebben a gyakorlatban az előző leckéből származó példaforgatókönyv segítségével megtudhatja, hogyan hozhat létre jóváhagyási munkafolyamatot az Azure Portalon a Durable Functions használatával.
Függvényalkalmazás létrehozása
Jelentkezzen be az Azure Portalra ugyanazzal a fiókkal, amellyel a tesztkörnyezetet aktiválta.
Az Azure Portal menüjében vagy a kezdőlapon, az Azure-szolgáltatások alatt válassza az Erőforrás létrehozása lehetőséget. Megjelenik az Erőforrás létrehozása panel.
Keresse meg és válassza ki a függvényalkalmazást. Válassza a Felhasználás lehetőséget, majd a Kiválasztás gombot. Megjelenik a Függvényalkalmazás létrehozása panel.
Az Alapszintű beállítások lapon adja meg az alábbi értékeket minden beállításhoz.
Beállítás Érték Leírás Projekt részletei Előfizetés Concierge-előfizetés Megszabja az előfizetést, amelyben létrehozta az új függvényalkalmazást. Erőforráscsoport A legördülő listában válassza a [tesztkörnyezeti erőforráscsoport neve] lehetőséget Megszabja az erőforráscsoport nevét, amelyben létrehozza a függvényalkalmazást. A függvényalkalmazást a tesztkörnyezet aktiválásakor hozzárendelt tesztkörnyezeti erőforráscsoportban hozzuk létre, azaz [tesztkörnyezeti erőforráscsoport neve] .Példány részletei Függvényalkalmazás neve [Globálisan egyedi név] Megszabja az új függvényalkalmazást azonosító nevet. Érvényes karakterek: a-z
,0-9
és-
.Közzététel Kód Azt adja meg, hogy a függvény tároló helyett kódot használ. Futtatókörnyezet verme Node.js Megszabja, hogy a modulban szereplő mintakód JavaScript nyelven íródott. Verzió 20 LTS Megadja a futtatókörnyezet vermének verzióját. Régió [Válasszon a szakaszt követő listából] Válassza ki az Önhöz legközelebb eső régiót, amely szintén az engedélyezett tesztkörnyezeti régiók egyike. Operációs rendszer Operációs rendszer Windows Megszabja a függvényalkalmazást üzemeltető operációs rendszert. Terv Az ingyenes tesztkörnyezetben az Azure globális régióinak egy részében hozhat létre erőforrásokat. Az erőforrások létrehozásakor válasszon ki egy régiót az alábbi listából:
- USA 2. nyugati régiója
- USA déli középső régiója
- USA középső régiója
- USA keleti régiója
- Nyugat-Európa
- Délkelet-Ázsia
- Kelet-Japán
- Dél-Brazília
- Délkelet-Ausztrália
- Közép-India
Válassza a Következő: Tárolás lehetőséget.
A Tárolás lapon adja meg az alábbi értékeket minden beállításhoz.
Beállítás Érték Leírás Tárolás Tárfiók [Globálisan egyedi név] Megadja a függvényalkalmazás által használt új tárfiók nevét (amelynek nem kell megegyeznie a függvényhez megadott globálisan egyedi névvel). A tárfiókok nevének 3 és 24 karakter közötti hosszúságúnak kell lennie, és csak számokat és kisbetűket tartalmazhat. Ez a párbeszédpanel automatikusan kitölti a mezőt egy dinamikusan generált egyedi névvel. Azonban más nevet, vagy akár egy meglévő fiókot is használhat helyette. Válassza a Következő: Hálózatkezelés lehetőséget. Fogadja el az alapértelmezett beállításokat.
Válassza a Következő: Figyelés lehetőséget.
A Figyelés lapon adja meg a beállítás alábbi értékét.
Beállítás Érték Leírás Application Insights Az Application Insights engedélyezése Nem Megadja, hogy az alkalmazás Elemzések le van tiltva ehhez a modulhoz. Válassza a Véleményezés + a konfigurált beállítások létrehozása és áttekintése lehetőséget. Ha elégedett a beállításokkal, válassza a Létrehozás lehetőséget a függvényalkalmazás kiépítéséhez és üzembe helyezéséhez.
Folytatás előtt várja meg, amíg az üzembe helyezési folyamat befejeződik. Az üzembe helyezés eltarthat néhány percig.
A durable-functions npm-csomag telepítése
Mivel JavaScript Durable Functions-függvényeket hozunk létre, telepíteni kell az durable-functions
npm-csomagot. Ehhez hajtsa végre a következő lépéseket.
Válassza az Ugrás az erőforrásra lehetőséget a függvényalkalmazás kiválasztásához. Megjelenik a Függvényalkalmazás panel.
A bal oldali menüpanel Fejlesztési eszközök csoportjában válassza az App Service-szerkesztő (előzetes verzió) lehetőséget, majd válassza a Szerkesztő megnyitása lehetőséget. Az App Service-szerkesztő Gyorsindítás panelje egy új böngészőablakban jelenik meg.
A bal oldali menüablakban jelölje ki a WWWROOT mappát.
A bal oldali eszköztár menüjében válassza a Konzol megnyitása ikont.
Ez a művelet elindítja a konzolt. Ezzel a konzollal elérheti a függvényeket üzemeltető webkiszolgálót, és megírhatja a függvények kódját.
Hozzon létre egy új package.json fájlt.
Futtassa a következő parancsokat a konzolon az új JSON-fájl létrehozásához és a szerkesztőben való megnyitásához.
touch package.json open package.json
Adja hozzá a következő kódot.
{ "name": "example", "version": "1.0.0" }
Cserélje le
example
a csomag nevére. Használhatja például a függvényhez korábban megadott globálisan egyedi nevet.
Nyomja le a CTRL+S billentyűkombinációt a fájl mentéséhez, majd nyomja le a Ctrl+Q billentyűkombinációt a dokumentum bezárásához.
Lépjen vissza az Azure Portalra.
A bal oldali menüsáv Fejlesztési eszközök csoportjában válassza a Konzol lehetőséget. Megjelenik a Konzol panel a függvényalkalmazáshoz.
Futtassa az alábbi parancsot:
npm install durable-functions
Ez a parancs utasítja a csomópontcsomag-kezelőt, hogy telepítse a csomagot és a
durable-functions
szükséges függőségeket. A telepítés eltarthat néhány percig, és a csomópontcsomag-kezelő figyelmeztetéseket jeleníthet meg, amelyeket figyelmen kívül hagyhat.Feljegyzés
Ha a rendszer arra kéri, hogy telepítse az npm újabb verzióját, a hibaüzenetben megadott paranccsal telepítse az újabb verziót, majd telepítse a
durable-functions
csomagot az új verzió telepítése után.Várjon, amíg az összes csomag telepítése befejeződött.
A bal oldali menüpanelen görgessen fel, és válassza az Áttekintés lehetőséget, majd a felső menüsávon válassza az Újraindítás lehetőséget, majd válassza az Igen lehetőséget, amikor a rendszer kéri az újraindítást.
A folytatás előtt várja meg, amíg az újraindítás befejeződik.
A tervezési javaslat beküldésére szolgáló ügyfél-függvény létrehozása
Az Azure Portal menüjében vagy a Kezdőlap Legutóbbi erőforrások területén válassza az Összes megtekintése lehetőséget, majd válassza ki a függvényalkalmazást. Megjelenik a Függvényalkalmazás panel.
Az Áttekintés lapon válassza a Képernyő közepén található Függvények lapot.
Válassza a Létrehozás az Azure Portalon gombot. Megjelenik a Függvény létrehozása panel.
A Sablon kiválasztása területen a Szűrő mezőbe írja be a Durable Functions HTTP starter parancsot, és válassza ki a sablont a listából. A sablon egy olyan tartós függvényt hoz létre, amely egy HTTP-kérelemmel futtatható.
A Sablon részletei területen az Új függvény mezőnél írja be a httpStart nevet a függvény nevéhez, majd az Engedélyezési szint mezőben válassza a Függvény, majd a Létrehozás lehetőséget. Megjelenik a httpStart panel a függvényhez.
A bal oldali menüpanel Fejlesztőeszközök csoportjában válassza a Kód + Teszt lehetőséget. Megjelenik a Függvény Kód + Teszt panelje.
A index.js fájl kódja megjelenik a szerkesztőben. A fájlnak az alábbi példához hasonlónak kell lennie:
const df = require("durable-functions"); module.exports = async function (context, req) { const client = df.getClient(context); const instanceId = await client.startNew(req.params.functionName, undefined, req.body); context.log(`Started orchestration with ID = '${instanceId}'.`); return client.createCheckStatusResponse(context.bindingData.req, instanceId); };
A függvény fájljainak legördülő listájában válassza a function.json lehetőséget az új függvényhez társított kötések megtekintéséhez. Az itt található információk határozzák meg a hitelesítés követelményeit és azokat a HTTP-metódusokat, amelyek a függvényt aktiválják. A fájl emellett azt is meghatározza, hogy a függvény egy olyan ügyfél, amely elindítja a vezénylési folyamatot. A fájlnak az alábbi példához hasonlónak kell lennie:
{ "bindings": [ { "authLevel": "function", "name": "req", "type": "httpTrigger", "direction": "in", "route": "orchestrators/{functionName}", "methods": [ "post", "get" ] }, { "name": "$return", "type": "http", "direction": "out" }, { "name": "starter", "type": "orchestrationClient", "direction": "in" } ] }
Feljegyzés
A kötésekkel az erőforrásokat és egyéb elemeket lehet egy eseményindítóhoz hozzárendelni. Ez egy deklaratív mechanizmus, amely szükségtelenné teszi, hogy a kód más szolgáltatásaira és funkcióira való hivatkozásokat ne kelljen szigorúan kódolni.
A vezénylőfüggvény létrehozása
Az Azure Portal menüjében vagy a Kezdőlap Legutóbbi erőforrások területén válassza az Összes megtekintése lehetőséget, majd válassza ki a függvényalkalmazást. Megjelenik a Függvényalkalmazás panel.
Az Áttekintés lapon válassza a Képernyő közepén található Függvények lapot.
A Függvények menüsávon válassza a Létrehozás lehetőséget. Megjelenik a Függvény létrehozása panel.
A Sablon kiválasztása csoportban a Szűrő mezőbe írja be a Durable Functions vezénylőt, és válassza ki a sablont a listából. Ez a sablon egy olyan tartós függvényt hoz létre, amely összehangolja a függvények végrehajtását.
A Sablon részletei területen az Új függvény mezőhöz írja be az OrchFunction nevet a függvény nevére, majd válassza a Létrehozás lehetőséget. Megjelenik az OrchFunction függvénypanel.
A bal oldali menüpanel Fejlesztőeszközök csoportjában válassza a Kód + Teszt lehetőséget. Megjelenik a Függvény Kód + Teszt panelje.
A index.js fájl kódja megjelenik a szerkesztőben.
Cserélje le a meglévő kódot a következő kódra.
const df = require("durable-functions"); module.exports = df.orchestrator(function* (context) { const outputs = []; /* * We will call the approval activity with a reject and an approved to simulate both */ outputs.push(yield context.df.callActivity("Approval", "Approved")); outputs.push(yield context.df.callActivity("Approval", "Rejected")); return outputs; });
Ez a kód meghív egy Jóváhagyás nevű tevékenységfüggvényt, amelyet hamarosan létrehoz. A vezénylőfüggvény kódja kétszer hívja meg az Approval függvényt. Az első alkalommal szimulálja a javaslat elfogadását, a második alkalommal pedig a javaslat elutasítási logikáját.
Az egyes hívások visszaadott értéke össze lesz adva, és visszakerül az ügyfélfüggvénybe. Éles környezet esetén a vezénylési függvény az elfogadás/elutasítás között döntő tevékenységfüggvények sorozatát hívná meg, és ezek eredményét adná vissza.
A felső menüsávon válassza a Mentés lehetőséget az új függvény mentéséhez.
A tevékenységfüggvény létrehozása
Az Azure Portal menüjében vagy a Kezdőlap Legutóbbi erőforrások területén válassza az Összes megtekintése lehetőséget, majd válassza ki a függvényalkalmazást. Megjelenik a Függvényalkalmazás panel.
Az Áttekintés lapon válassza a Képernyő közepén található Függvények lapot.
A Függvények menüsávon válassza a Létrehozás lehetőséget. Megjelenik a Függvény létrehozása panel.
A Sablon kiválasztása csoportban a Szűrő mezőbe írja be a Durable Functions-tevékenységet, és válassza ki a sablont a listából. Ez a sablon létrehoz egy tartós függvényt, amely akkor fut, amikor egy tevékenységet vezénylő függvény hív meg.
A Sablon részletei területen az Új függvény mezőben adja meg a függvény nevének jóváhagyását, majd válassza a Létrehozás lehetőséget. Megjelenik a Jóváhagyási panel a függvényalkalmazáshoz.
A bal oldali menüpanel Fejlesztőeszközök csoportjában válassza a Kód + Teszt lehetőséget. Megjelenik a Függvény Kód + Teszt panelje.
A index.js fájl kódja megjelenik a szerkesztőben.
Cserélje le a meglévő kódot a következő kódra.
module.exports = async function (context) { return `Your project design proposal has been - ${context.bindings.name}!`; };
A függvény a javaslat állapotát jelző üzenetet ad vissza. A kifejezés
context.bindings.name
vagyAccepted
Rejected
a vezénylőtől a függvénynek átadott paramétertől függően. Egy valós forgatókönyvben hozzáadná azt a logikát, amely a függvény elfogadási vagy elutasítási műveleteit kezeli.A felső menüsávon válassza a Mentés lehetőséget az új függvény mentéséhez.
A Durable Functions-munkafolyamat elindulásának ellenőrzése
Az Azure Portal menüjében vagy a Kezdőlap Legutóbbi erőforrások területén válassza az Összes megtekintése lehetőséget, majd válassza ki a függvényalkalmazást. Megjelenik a Függvényalkalmazás panel.
Válassza a Függvények lapot a lap közepén.
Válassza ki a HttpStart függvényt . Megjelenik a httpStart panel a függvényhez.
A felső menüsávon válassza a Függvény URL-címének lekérése lehetőséget, és másolja ki az URL-címet. Az URL-címnek az alábbi példához hasonlónak kell lennie:
https://example.azurewebsites.net/api/orchestrators/{functionName}?code=AbCdEfGhIjKlMnOpQrStUvWxYz==
Ezt az URL-címet használja a függvények futtatásához.
Nyisson meg egy új böngészőablakot, és lépjen a másolt URL-címre. Az URL-címben írja felül a {functionName} helyőrzőt a OrchFunction névvel, az alábbi példához hasonlóan:
https://example.azurewebsites.net/api/orchestrators/OrchFunction?code=AbCdEfGhIjKlMnOpQrStUvWxYz==
A válaszüzenet URI-végpontok készletét fogja tartalmazni, amelyek a végrehajtás monitorozásához és szabályozásához használhatók fel hasonlóan a következő példához:
{ "id": "f0e1d2c3b4a5968778695a4b3c2d1e0f", "statusQueryGetUri": "https://example.azurewebsites.net/...", "sendEventPostUri": "https://example.azurewebsites.net/...", "terminatePostUri": "https://example.azurewebsites.net/...", "rewindPostUri": "https://example.azurewebsites.net/...", "purgeHistoryDeleteUri": "https://example.azurewebsites.net/..." }
Másolja ki a statusQueryGetUri értéket, és a webböngészővel lépjen erre az URL-címre. Ekkor megjelenik egy válaszüzenet, amely az alábbi példához hasonlít:
{ "name": "OrchFunction", "instanceId": "f0e1d2c3b4a5968778695a4b3c2d1e0f", "runtimeStatus": "Completed", "input": null, "customStatus": null, "output": [ "Your project design proposal has been - Approved!", "Your project design proposal has been - Rejected!" ], "createdTime": "2019-04-16T15:23:03Z", "lastUpdatedTime": "2019-04-16T15:23:35Z" }
Ne felejtse el, hogy a vezénylési függvény kétszer fogja futtatni a tevékenységfüggvényt. A tevékenységfüggvény első alkalommal azt jelzi, hogy a projektjavaslat elfogadásra kerül. Második alkalommal pedig a javaslat elutasított lesz. A vezénylési függvény egyesíti a két függvényhívás üzeneteit, és visszaadja őket az ügyfélfüggvénynek.