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 Dapr-bővítménye olyan eszközök és szolgáltatások készlete, amelyek lehetővé teszik a fejlesztők számára, hogy könnyen integrálják az Azure Functionst az Elosztott alkalmazás futtatókörnyezeti (Dapr) platformmal.
Az Azure Functions egy eseményvezérelt számítási szolgáltatás, amely triggerek és kötések készletét biztosítja a többi Azure-szolgáltatáshoz való egyszerű kapcsolódáshoz. A Dapr számos építőelemet és ajánlott eljárást kínál az elosztott alkalmazások létrehozásához, beleértve a mikroszolgáltatásokat, az állapotkezelést, a pub/alüzenet-kezelést stb.
A Dapr és a Functions integrációjával olyan függvényeket hozhat létre, amelyek a Dapr vagy külső rendszerek eseményeire reagálnak.
| Tevékenység | Irány | Típus |
|---|---|---|
| Eseményindító dapr bemeneti kötésen | N/A | daprBindingTrigger |
| Eseményindító egy Dapr-szolgáltatáshíváson | N/A | daprServiceInvocationTrigger |
| Eseményindító Dapr-témakör-előfizetésen | N/A | daprTopicTrigger |
| Lekérés Dapr állapotban végrehajtáshoz | In | daprState |
| Dapr-titkos kulcsok lekérése végrehajtáshoz | In | daprSecret |
| Érték mentése Dapr-állapotba | Out | daprState |
| Másik Dapr-alkalmazás meghívása | Out | daprInvoke |
| Üzenet közzététele Dapr-témakörben | Out | daprPublish |
| Érték küldése Dapr kimeneti kötésre | Out | daprBinding |
Bővítmény telepítése
A telepített NuGet-csomag a C# módtól függ a függvényalkalmazásban használt C#-módtól vagy izolált feldolgozói folyamattól :
Ez a bővítmény az 1.0.0-s verziójú NuGet-csomag telepítésével érhető el.
A .NET parancssori felületének használata:
dotnet add package Microsoft.Azure.WebJobs.Extensions.Dapr
Csomag telepítése
Ha használni szeretné ezt a kötéskiterjesztést az alkalmazásban, győződjön meg arról, hogy a projekt gyökerében található host.json fájl tartalmazza a extensionBundle következő hivatkozást:
{
"version": "2.0",
"extensionBundle": {
"id": "Microsoft.Azure.Functions.ExtensionBundle",
"version": "[4.0.0, 5.0.0)"
}
}
Ebben a példában az version érték [4.0.0, 5.0.0) arra utasítja a Functions-gazdagépet, hogy 4.0.0 legalább, de annál kisebb 5.0.0csomagverziót használjon, amely tartalmazza a 4.x összes lehetséges verzióját. Ez a jelölés hatékonyan fenntartja az alkalmazást a v4.x bővítménycsomag legújabb elérhető alverzióján.
Ha lehetséges, a legújabb bővítménycsomag főverziót kell használnia, és engedélyeznie kell, hogy a futtatókörnyezet automatikusan fenntartsa a legújabb alverziót. A legújabb csomag tartalmát a bővítménykötegek kiadási oldalán tekintheti meg. További információ: Azure Functions-bővítménykötegek.
Dapr-engedélyezés
A Dapr konfigurálható különböző [argumentumok és széljegyzetek][dapr-args] használatával a futtatókörnyezet alapján. Az Azure Functionshez készült Dapr két csatornán konfigurálható:
- Infrastruktúra kódsablonokként (IaC) a Bicep- vagy az Azure Resource Manager-sablonokhoz hasonlóan
- Az Azure portál
IaC-sablon használatakor adja meg a következő argumentumokat a properties tárolóalkalmazás erőforrásdefiníciójának szakaszában.
DaprConfig: {
enabled: true
appId: '${envResourceNamePrefix}-funcapp'
appPort: 3001
httpReadBufferSize: ''
httpMaxRequestSize: ''
logLevel: ''
enableApiLogging: true
}
A fenti Dapr-konfigurációs értékek alkalmazáshatókör-módosításoknak minősülnek. Ha több változatú módban futtat egy tárolóalkalmazást, a beállítások módosítása nem hoz létre új változatot. Ehelyett minden meglévő változat újraindul, hogy a legtöbb up-todátumértékkel legyen konfigurálva.
Ha a Daprt az Azure Portallal konfigurálja, keresse meg a függvényalkalmazást, és válassza a Dapr elemet a bal oldali menüből:
Dapr-portok és -figyelők
Amikor egy függvényt aktivál a Dapr-ból, a bővítmény automatikusan elérhetővé teszi a portot 3001 , hogy a Dapr oldalkocsiból érkező bejövő kéréseket figyelje.
Fontos
A port 3001 csak akkor lesz közzétéve és figyelve, ha egy Dapr-eseményindító van definiálva a függvényalkalmazásban. A Dapr használatakor az oldalkocsi megvárja, hogy választ kapjon a megadott portról a példányosítás befejezése előtt.
Ne definiálja a dapr.io/port széljegyzetet, vagy --app-port ha nincs eseményindítója. Ezzel zárolhatja az alkalmazást a Dapr oldalkocsiról.
Ha csak bemeneti és kimeneti kötéseket használ, a portot 3001 nem kell felfedni vagy definiálni.
Alapértelmezés szerint, amikor az Azure Functions megpróbál kommunikálni a Daprvel, meghívja a Daprt a környezeti változóból DAPR_HTTP_PORTfeloldott porton keresztül. Ha ez a változó null értékű, akkor alapértelmezés szerint a port 3500lesz.
A bemeneti és kimeneti kötések által használt Dapr-címet felülbírálhatja a DaprAddress kötés (vagy az attribútum) tulajdonságának function.json beállításával. Alapértelmezés szerint a következőt használja http://localhost:{DAPR_HTTP_PORT}: .
A függvényalkalmazás továbbra is egy másik portot és végpontot tesz elérhetővé a HTTP-eseményindítókhoz hasonlóan, amelyek helyileg alapértelmezés szerint 7071a tárolóban alapértelmezettek 80.
Kötéstípusok
A .NET-hez támogatott kötéstípusok a bővítményverziótól és a C# végrehajtási módtól is függenek, ami az alábbiak egyike lehet:
A folyamatközi osztálykódtár egy lefordított C# függvény, amely ugyanabban a folyamatban fut, mint a Functions-futtatókörnyezet.
A Dapr-bővítmény az alábbi táblázatnak megfelelően támogatja a paramétertípusokat.
| Binding | Paramétertípusok |
|---|---|
| Dapr-eseményindító |
daprBindingTrigger daprServiceInvocationTrigger daprTopicTrigger |
| Dapr-bemenet |
daprState daprSecret |
| Dapr-kimenet |
daprState daprInvoke daprPublish daprBinding |
Az ilyen típusokat használó példákért tekintse meg a bővítmény GitHub-adattárát.
Az Azure Functions Dapr-bővítményének kipróbálása
Megtudhatja, hogyan használhatja az Azure Functions Dapr-bővítményét a megadott mintákon keresztül.
| Samples | Description |
|---|---|
| Rövid útmutató | Ismerkedés a Dapr Pub/alkötés és HttpTriggera . |
| Dapr Kafka | Megtudhatja, hogyan használhatja az Azure Functions Dapr bővítményt a Kafka bindings Dapr összetevővel. |
| .NET Folyamatban | Megtudhatja, hogyan integrálható az Azure Functions folyamatalapú modellje több Dapr-összetevővel a .NET-ben, például a Szolgáltatáshívás, a Pub/sub, a Kötések és az Állapotkezelés. |
| .NET izolált | Integrálható Dapr-összetevőkkel a .NET-ben az Azure Functions out-of-proc (OOP) végrehajtási modelljével. |
Az Azure Functions Dapr-bővítményének kipróbálása
Megtudhatja, hogyan használhatja az Azure Functions Dapr-bővítményét a megadott mintákon keresztül.
| Samples | Description |
|---|---|
| Java-függvények | Megtudhatja, hogyan használhatja az Azure Functions Dapr bővítményt a Java használatával. |
Az Azure Functions Dapr-bővítményének kipróbálása
Megtudhatja, hogyan használhatja az Azure Functions Dapr-bővítményét a megadott mintákon keresztül.
| Samples | Description |
|---|---|
| Rövid útmutató | Ismerkedés a Dapr Pub/alkötés és HttpTriggera . |
| Dapr Kafka | Megtudhatja, hogyan használhatja az Azure Functions Dapr bővítményt a Kafka bindings Dapr összetevővel. |
| JavaScript | Futtasson egy JavaScript Dapr-függvényalkalmazást, és integrálható a Dapr Service Invocation, Pub/sub, Bindings és State Management használatával az Azure Functions használatával. |
Az Azure Functions Dapr-bővítményének kipróbálása
Megtudhatja, hogyan használhatja az Azure Functions Dapr-bővítményét a megadott mintákon keresztül.
| Samples | Description |
|---|---|
| PowerShell-függvények | Megtudhatja, hogyan használhatja az Azure Functions Dapr bővítményt a PowerShell-lel. |
Az Azure Functions Dapr-bővítményének kipróbálása
Megtudhatja, hogyan használhatja az Azure Functions Dapr-bővítményét a megadott mintákon keresztül.
| Samples | Description |
|---|---|
| Dapr Kafka | Megtudhatja, hogyan használhatja az Azure Functions Dapr bővítményt a Kafka bindings Dapr összetevővel. |
| Python v1 | Futtasson egy Dapr-alapú Python-alkalmazást, és az Azure Functions Python v1 programozási modell használatával integrálható a Dapr-összetevőkkel. |
| Python v2 | Egy Dapr-alkalmazás indítása az Azure Functions Python v2 programozási modellel a Dapr-összetevőkkel való integrációhoz. |
Hibaelhárítás
Ez a szakasz azt ismerteti, hogyan háríthatja el az Azure Functions Dapr-bővítményének használatakor felmerülő problémákat.
Győződjön meg arról, hogy a Dapr engedélyezve van a környezetben
Ha Dapr-kötéseket és -triggereket használ az Azure Functionsben, és a Dapr nincs engedélyezve a környezetben, a következő hibaüzenet jelenhet meg: Dapr sidecar isn't present. Please see (https://aka.ms/azure-functions-dapr-sidecar-missing) for more information. A Dapr engedélyezése a környezetben:
Ha az Azure-függvény az Azure Container Appsben van üzembe helyezve, tekintse meg az Azure Functions Dapr-bővítményének Dapr-engedélyezési utasításait.
Ha az Azure-függvény telepítve van a Kubernetesben, ellenőrizze, hogy az üzembe helyezés YAML-konfigurációja a következő megjegyzésekkel rendelkezik-e:
annotations: ... dapr.io/enabled: "true" dapr.io/app-id: "functionapp" # You should only set app-port if you are using a Dapr trigger in your code. dapr.io/app-port: "<DAPR_APP_PORT>" ...Ha helyileg futtatja az Azure-függvényt, futtassa a következő parancsot annak ellenőrzéséhez, hogy a függvényalkalmazást a Daprrel futtatja-e:
dapr run --app-id functionapp --app-port <DAPR_APP_PORT> --components-path <COMPONENTS_PATH> -- func host start
Alkalmazásport értékének ellenőrzése a Dapr-konfigurációban
Az Azure Functions Dapr-bővítménye alapértelmezés szerint elindít egy HTTP-kiszolgálót a porton 3001 . Ezt a portot a DAPR_APP_PORT környezeti változóval konfigurálhatja.
Ha helytelen alkalmazásportértéket ad meg egy Azure Functions-alkalmazás futtatásakor, a következő hibaüzenet jelenhet meg: The Dapr sidecar is configured to listen on port {portInt}, but the app server is running on port {appPort}. This may cause unexpected behavior. For more information, visit [this link](https://aka.ms/azfunc-dapr-app-config-error). A hibaüzenet megoldása:
A tárolóalkalmazás Dapr-beállításaiban:
Ha Dapr-eseményindítót használ a kódban, ellenőrizze, hogy az alkalmazásport a környezeti változó értékére vagy értékére
3001van-e állítvaDAPR_APP_PORT.Ha nem használ Dapr-eseményindítót a kódban, ellenőrizze, hogy nincs-e beállítva az alkalmazásport. Üresnek kell lennie.
Ellenőrizze, hogy a Dapr-konfigurációban a megfelelő alkalmazásport-értéket adja-e meg.
Az Azure Container Apps használata esetén adja meg az alkalmazásportot a Bicepben:
DaprConfig: { ... appPort: <DAPR_APP_PORT> ... }Ha Kubernetes-környezetet használ, állítsa be a
dapr.io/app-portmegjegyzést:annotations: ... dapr.io/app-port: "<DAPR_APP_PORT>" ...Ha helyi fejlesztést végzett, ellenőrizze, hogy a függvényalkalmazás Dapr-beli futtatásakor be van-e állítva
--app-port:dapr run --app-id functionapp --app-port <DAPR_APP_PORT> --components-path <COMPONENTS_PATH> -- func host start