Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
Az Azure Functions egyik funkciója, a Durable Functions használatával állapotalapú kiszolgáló nélküli függvényeket hozhat létre a Pythonban. A Durable Functions automatikusan kezeli az állapotmegőrzést, az ellenőrzőpontokat és az újraindításokat, így a vezénylési logikára összpontosíthat.
Ebben a rövid útmutatóban helyileg hozhat létre és tesztelhet egy Python Durable Functions-alkalmazást a Visual Studio Code-ban, majd üzembe helyezheti az Azure-ban. Egy "hello world" orchestrationt hozhat létre vezénylő, tevékenységi és ügyfélfunkciókkal, amelyek összefűzik a hívásokat és visszaadják az összesített eredményt. A használt eszközök a Visual Studio Code Azure Functions bővítményen keresztül érhetők el.
Note
Ez a rövid útmutató a Python dekorátoralapú v2 programozási modelljét használja. Ez a modell egyszerűbb fájlstruktúrát biztosít, és kódközpontúbb, mint az 1.
Prerequisites
A gyors kezdéshez ezekre lesz szüksége:
Visual Studio Code telepítve.
A Visual Studio Code bővítmény Azure Functions telepítve van.
A Azure Functions Core Tools legújabb verziója telepítve.
EGY HTTP-teszteszköz , amely biztonságossá teszi az adatokat. További információ: HTTP-teszteszközök.
Azure-előfizetés az alkalmazás Azure-ban való üzembe helyezéséhez.
Python 3.7-es, 3.8-os, 3.9-es vagy 3.10-es verzió van telepítve.
Ha nem rendelkezik Azure-fiókkal, a kezdés előtt hozzon létre egy ingyenes fiókot .
Helyi projekt létrehozása
Ebben a szakaszban a Visual Studio Code használatával hozhat létre helyi Azure Functions projektet.
A Visual Studio Code válassza az F1 (vagy a Ctrl/Cmd+Shift+P) billentyűkombinációt a parancskatalógus megnyitásához. A promptnál (
>) írja be, majd válassza a Azure Functions: Új projekt létrehozása lehetőséget.
Válassza a Tallózás lehetőséget. A Mappa kiválasztása párbeszédpanelen lépjen a projekthez használni kívánt mappára, majd válassza a Kiválasztás lehetőséget.
A parancssorban adja meg a következő információkat:
Haladéktalan Action Description Nyelv kiválasztása a függvényalkalmazás-projekthez Válassza a Python lehetőséget. Létrehoz egy helyi Python Functions-projektet. Verzió kiválasztása Válassza a Azure Functions v4 lehetőséget. Ez a lehetőség csak akkor jelenik meg, ha a Core Tools még nincs telepítve. Ebben az esetben a Core Tools az alkalmazás első futtatásakor lesz telepítve. Python verzió Válassza a Python 3.7, Python 3.8, Python 3.9 vagy Python 3.10 lehetőséget. Visual Studio Code létrehoz egy virtuális környezetet a kiválasztott verzióval. Sablon kiválasztása a projekt első függvényéhez Válassza Kihagyás egyelőrelehetőséget. Válassza ki, hogyan szeretné megnyitni a projektet Válassza a Megnyitás az aktuális ablakban lehetőséget. Megnyitja Visual Studio Code a kijelölt mappában.
Visual Studio Code telepíti Azure Functions Core Toolst, ha projekt létrehozásához szükséges. Emellett létrehoz egy függvényalkalmazás-projektet egy mappában. Ez a projekt tartalmazza a host.json és local.settings.json konfigurációs fájlokat.
A gyökérmappában is létrejön egy requirements.txt fájl. Meghatározza a függvényalkalmazás futtatásához szükséges Python csomagokat.
Az azure-functions-durable telepítése a PyPI-ból
A projekt létrehozásakor a Azure Functions Visual Studio Code bővítmény automatikusan létrehoz egy virtuális környezetet a kiválasztott Python verzióval. Ezután aktiválnia kell a virtuális környezetet egy terminálon, és telepítenie kell a Azure Functions és Durable Functions által igényelt függőségeket.
Nyissa meg a requirements.txt a szerkesztőben, és módosítsa annak tartalmát a következő kódra:
azure-functions azure-functions-durableAz aktuális mappában nyissa meg a szerkesztő integrált terminálját (Ctrl+Shift+').
Az integrált terminálon az operációs rendszertől függően aktiválja az aktuális mappában lévő virtuális környezetet.
Ezután a virtuális környezetet aktiváló integrált terminálban a pip használatával telepítse a megadott csomagokat.
python -m pip install -r requirements.txt
Note
Telepítenie kell az Azure-Functions-Durable 1.2.4-s vagy újabb verzióját.
Hozd létre a függvényeidet
A legalapvetőbb Durable Functions alkalmazás három funkcióval rendelkezik:
- Vezénylő függvény: Más függvényeket vezénylő munkafolyamat.
- Tevékenységfüggvény: A vezénylő függvény által hívott függvény, amely elvégzi a munkát, és opcionálisan egy értéket ad vissza.
- Client függvény: Az Azure egy reguláris függvénye, amely elindít egy vezénylőfüggvényt. Ez a példa EGY HTTP-aktivált függvényt használ.
Mintakód egy Python Durable Functions-alkalmazáshoz
Ha alapszintű Durable Functions-alkalmazást szeretne létrehozni e három függvénytípus használatával, cserélje le a function_app.py tartalmát a következő Python kódra:
import azure.functions as func
import azure.durable_functions as df
myApp = df.DFApp(http_auth_level=func.AuthLevel.ANONYMOUS)
# An HTTP-triggered function with a Durable Functions client binding
@myApp.route(route="orchestrators/{functionName}")
@myApp.durable_client_input(client_name="client")
async def http_start(req: func.HttpRequest, client):
function_name = req.route_params.get('functionName')
instance_id = await client.start_new(function_name)
response = client.create_check_status_response(req, instance_id)
return response
# Orchestrator
@myApp.orchestration_trigger(context_name="context")
def hello_orchestrator(context):
result1 = yield context.call_activity("hello", "Seattle")
result2 = yield context.call_activity("hello", "Tokyo")
result3 = yield context.call_activity("hello", "London")
return [result1, result2, result3]
# Activity
@myApp.activity_trigger(input_name="city")
def hello(city: str):
return f"Hello {city}"
Tekintse át az alábbi táblázatot az egyes függvények magyarázatához és céljához a mintában:
| Módszer | Description |
|---|---|
hello_orchestrator |
A munkafolyamatot leíró vezérlő függvény. Ebben az esetben a vezénylés elindul, sorozatban három függvényt hív meg, majd visszaadja a lista mindhárom függvényének rendezett eredményeit. |
hello |
A tevékenységfüggvény, amely a vezényelt munkát hajtja végre. A függvény egy egyszerű üdvözlést ad vissza az argumentumként átadott városnak. |
http_start |
Egy HTTP-aktivált függvény, amely elindítja a vezénylés egy példányát, és választ küld vissza. |
Note
A Durable Functions a Python v2 programozási modell tervrajzait is támogatja. Tervfüggvények használatához regisztrálja a függvényeket az azure-functions-durableBlueprintclass segítségével. Az eredményként kapott terveket a szokásos módon regisztrálhatja. Példaként használhatja a sample.
Az Azurite Storage Emulator konfigurálása
A Azurite Azure Storage emulátorával helyileg tesztelheti a függvényt. A local.settings.json fájlban állítsa be a AzureWebJobsStorage értékét UseDevelopmentStorage=true-re, ahogy ebben a példában is:
{
"IsEncrypted": false,
"Values": {
"AzureWebJobsStorage": "UseDevelopmentStorage=true",
"FUNCTIONS_WORKER_RUNTIME": "python"
}
}
Az Azurite-bővítmény Visual Studio Code való telepítéséhez és futtatásához írja be a parancskatalógusba a Azurite: Start és válassza az Enter lehetőséget.
Más tárolási lehetőségeket is használhat a Durable Functions alkalmazáshoz. További információ a tárolási lehetőségekről és előnyökről: Durable Functions társzolgáltatók.
A függvény helyi tesztelése
Azure Functions Core Tools lehetővé teszi egy Azure Functions projekt futtatását a helyi fejlesztési számítógépen. Ha nincs telepítve, a rendszer arra kéri, hogy telepítse ezeket az eszközöket, amikor először indít el függvényt Visual Studio Code.
A függvény teszteléséhez állítson be egy töréspontot a
hellotevékenységfüggvény kódjában. Nyomja meg az F5-öt, vagy válassza a Hibakeresés indítása opciót a parancspalettában a függvényalkalmazás-projekt elindításához. A Core Tools kimenete megjelenik a terminálpanelen.Note
További információ a hibakeresésről: Durable Functions diagnosztika.
A terminálpanelen másolja ki a HTTP-aktivált függvény URL-végpontját.
A böngésző vagy a HTTP-teszteszköz használatával HTTP POST-kérést küldhet az URL-végpontnak.
Cserélje le az utolsó szegmenst a vezénylő függvény (
hello_orchestrator) nevére. Az URL-címnek hasonlónak kell lennie a következőhözhttp://localhost:7071/api/orchestrators/hello_orchestrator: .A válasz a HTTP-függvény kezdeti eredménye. Értesíti Önt, hogy a tartós folyamatvezérlés sikeresen elindult. Még nem jeleníti meg a vezénylés végeredményét. A válasz tartalmaz néhány hasznos URL-címet. Egyelőre kérdezze le a vezénylés állapotát.
Másolja ki a cél URL-címét
statusQueryGetUri, illessze be a böngésző címsorában, és hajtsa végre a kérést. A GET kérés kiadásához továbbra is használhatja a HTTP-teszteszközt.A kérés lekérdezi az orkesztációs példányt az állapotáról. Látnia kell, hogy a példány befejeződött, és tartalmazza a tartós függvény kimeneteit vagy eredményeit. A következő példához hasonlóan néz ki:
{ "name": "hello_orchestrator", "instanceId": "9a528a9e926f4b46b7d3deaa134b7e8a", "runtimeStatus": "Completed", "input": null, "customStatus": null, "output": [ "Hello Tokyo!", "Hello Seattle!", "Hello London!" ], "createdTime": "2020-03-18T21:54:49Z", "lastUpdatedTime": "2020-03-18T21:54:54Z" }A hibakeresés leállításához a Visual Studio Code válassza a Shift+F5 billentyűkombinációt.
Miután ellenőrizte, hogy a függvény megfelelően fut-e a helyi számítógépen, ideje közzétenni a projektet Azure.
Bejelentkezés az Azure-ba
Az Azure-erőforrások létrehozása vagy az alkalmazás közzététele előtt be kell jelentkeznie az Azure-ba.
Ha még nem jelentkezett be, a Tevékenységsávon válassza az Azure ikont. Ezután a Resources területen válassza Sign in to Azure.
Ha már bejelentkezett, és láthatja a meglévő előfizetéseit, lépjen a következő szakaszra. Ha még nem rendelkezik Azure-fiókkal, válassza az Azure-fiók létrehozása lehetőséget. A diákok kiválaszthatják az Azure Diákfiók létrehozása lehetőséget.
Amikor a rendszer kéri a böngészőben, válassza ki Azure fiókját, és jelentkezzen be a Azure-fiók hitelesítő adataival. Ha új fiókot hoz létre, a fiók létrehozása után bejelentkezhet.
Miután sikeresen bejelentkezett, bezárhatja az új böngészőablakot. Az Azure-fiókhoz tartozó előfizetések az oldalsávon jelennek meg.
A függvényalkalmazás létrehozása a Azure
Ebben a szakaszban egy függvényalkalmazást hoz létre a Flex Consumption csomagban az Azure-előfizetés kapcsolódó erőforrásaival együtt. Számos erőforrás-létrehozási döntés az alapértelmezett viselkedés alapján történik. A létrehozott erőforrások további szabályozásához ehelyett speciális beállításokkal kell létrehoznia a függvényalkalmazást.
A Visual Studio Code-ban nyomja meg az F1-et a parancspaletta megnyitásához. A parancssorban (
>) írja be, majd válassza az Azure Functions: Függvényalkalmazás létrehozása az Azure-ben lehetőséget.A parancssorban adja meg a következő információkat:
Haladéktalan Action Előfizetés kiválasztása Válassza ki a használni kívánt Azure előfizetést. A parancssor nem jelenik meg, ha csak egy előfizetés látható az Erőforrások területen. Adjon meg egy új függvényalkalmazásnevet Adjon meg egy url-útvonalon érvényes, globálisan egyedi nevet. A megadott nevet érvényesítjük, hogy biztosan egyedi legyen az Azure Functions-ben. Új erőforrások helyének kiválasztása Válasszon ki egy Azure régiót. A jobb teljesítmény érdekében válasszon ki egy Önhöz közeli régiót. Csak a Flex Consumption-csomagok által támogatott régiók jelennek meg. Futtatókörnyezeti verem kiválasztása Válassza ki a helyileg futtatott nyelvi verziót. Erőforrás-hitelesítés típusának kiválasztása Válassza ki a felügyelt identitást, amely a legbiztonságosabb lehetőség az alapértelmezett gazdagép tárfiókhoz való csatlakozáshoz. Az Azure: Tevékenységnapló panelen az Azure-bővítmény megjeleníti az egyes erőforrások állapotát az Azure-ban való létrehozásuk során.
A függvényalkalmazás létrehozásakor a következő kapcsolódó erőforrások jönnek létre az Azure-előfizetésben. Az erőforrások neve a függvényalkalmazáshoz megadott név alapján lesz elnevezve.
- Egy erőforráscsoport, amely a kapcsolódó erőforrások logikai tárolója.
- Egy függvényalkalmazás, amely a függvénykód végrehajtásához biztosítja a környezetet. A függvényalkalmazásokkal logikai egységként csoportosíthatja a függvényeket az erőforrások egyszerűbb kezelése, üzembe helyezése és megosztása érdekében ugyanabban az üzemeltetési csomagban.
- Egy Azure App Service csomag, amely meghatározza a függvényalkalmazás mögöttes gazdagépét.
- Egy standard Azure Storage-fiók, amelyet a Functions-gazdagép használ a függvényalkalmazás állapotának és egyéb információinak karbantartására.
- A függvényalkalmazáshoz csatlakoztatott Application Insights-példány, amely nyomon követi a függvények használatát az alkalmazásban.
- Egy felhasználó által hozzárendelt felügyelt identitás, amely az új alapértelmezett gazdagép tárfiókjában a Storage Blob Data Közreműködői szerepkörhöz lett hozzáadva.
A függvényalkalmazás létrehozása és a telepítőcsomag alkalmazása után megjelenik egy értesítés.
Tip
Alapértelmezés szerint a függvényalkalmazás által igényelt Azure-erőforrások a függvényalkalmazáshoz megadott név alapján jönnek létre. Alapértelmezés szerint az erőforrások ugyanabban az új erőforráscsoportban vannak létrehozva a függvényalkalmazással. Ha testre szeretné szabni a társított erőforrások nevét, vagy újra szeretné használni a meglévő erőforrásokat, tegye közzé a projektet speciális létrehozási lehetőségekkel.
Telepítse a projektet az Azure-ba
Important
Egy meglévő függvényalkalmazás üzembe helyezése az Azure-ban mindig felülírja az alkalmazás tartalmát.
A parancskatalógusban írja be, majd válassza az Azure Functions: Üzembe helyezés függvényalkalmazásba lehetőséget.
Válassza ki az imént létrehozott függvényalkalmazást. Amikor a rendszer kéri a korábbi üzembe helyezések felülírását, válassza a Üzembe helyezés lehetőséget a függvénykód új függvényalkalmazás-erőforrásba való telepítéséhez.
Ha az üzembe helyezés befejeződött, válassza a Megtekintő kimenet lehetőséget a létrehozási és üzembe helyezési eredmények megtekintéséhez, beleértve a létrehozott Azure erőforrásokat is. Ha nem jelenik meg az értesítés, a jobb alsó sarokban lévő harang ikont választva ismét láthatja.
Az Azure-ban egy függvény tesztelése
Másolja ki a HTTP-eseményindító URL-címét a kimeneti panelről. A HTTP-aktivált függvényt meghívó URL-címnek a következő formátumban kell lennie:
https://<functionappname>.azurewebsites.net/api/orchestrators/hello_orchestratorIllessze be a HTTP-kérés új URL-címét a böngésző címsorában. A közzétett alkalmazás használatakor számíthat arra, hogy ugyanazt az állapotválaszt kapja, mint a helyi tesztelés során.
A Visual Studio Code használatával létrehozott és közzétett Python Durable Functions alkalmazás használatra kész.
Erőforrások tisztítása
Ha már nincs szüksége a gyorsútmutató végrehajtásához létrehozott erőforrásokra, az Azure-előfizetéshez kapcsolódó költségek elkerülése érdekében törölje az erőforráscsoportot és az összes kapcsolódó erőforrást.
Kapcsolódó tartalom
- További információ a common Durable Functions alkalmazásmintákról.
- Tudnivalók az egységtesztelésről