Oktatóanyag: Mikroszolgáltatás-kommunikáció a Dapr Publish and Subscribe használatával
Ebben az oktatóanyagban közzétevői és előfizetői mikroszolgáltatásokat hoz létre, amelyek a Dapr Pub/sub API használatával kommunikálnak az eseményvezérelt architektúrák üzenetei használatával. A következőt fogja:
- Hozzon létre egy közzétevői mikroszolgáltatást és egy előfizetői mikroszolgáltatást, amely a Dapr pub/sub API használatával kommunikál az eseményvezérelt architektúrák üzeneteinek használatával.
- Helyezze üzembe az alkalmazást az Azure Container Appsben az Azure Developer CLI-vel, a megadott Bicepszel.
A minta pub/alprojekt a következőket tartalmazza:
- Egy üzenetgeneráló
checkout
szolgáltatás (közzétevő), amely egy adott témakör üzeneteit hozza létre. - Egy
order-processor
szolgáltatás (előfizető), amely egy adott témakör szolgáltatásából érkezőcheckout
üzeneteket figyel.
Előfeltételek
- Az Azure Developer CLI telepítése
- A Dapr telepítése és inicializálása
- Docker Desktop
- A Git telepítése
A Node.js-alkalmazások helyi futtatása
Mielőtt üzembe helyezené az alkalmazást az Azure Container Appsben, futtassa a szolgáltatásokat helyben checkout
a Dapr és az order-processor
Azure Service Bus használatával.
A projekt előkészítése
Klónozza a mintaalkalmazást a helyi gépre.
git clone https://github.com/Azure-Samples/pubsub-dapr-nodejs-servicebus.git
Lépjen a minta gyökérkönyvtárába.
cd pubsub-dapr-nodejs-servicebus
Az alkalmazások futtatása a Dapr parancssori felületével
Először futtassa az előfizetői order-processor
szolgáltatást.
A minta gyökérkönyvtárából módosítsa a könyvtárakat a következőre
order-processor
: .cd order-processor
Telepítse a függőségeket.
npm install
Futtassa a
order-processor
szolgáltatást.dapr run --app-port 5001 --app-id order-processing --app-protocol http --dapr-http-port 3501 --resources-path ../components -- npm run start
Egy új terminálablakban, a minta gyökérkönyvtárából lépjen a
checkout
közzétevő szolgáltatáshoz.cd checkout
Telepítse a függőségeket.
npm install
Futtassa a
checkout
szolgáltatást.dapr run --app-id checkout --app-protocol http --resources-path ../components -- npm run start
Várt kimenet
Mindkét terminálon a
checkout
szolgáltatás a kilépés előtt 10 üzenetet tesz közzé, amelyeket aorder-processor
szolgáltatás fogadott.checkout
hozam:== APP == Published data: {"orderId":1} == APP == Published data: {"orderId":2} == APP == Published data: {"orderId":3} == APP == Published data: {"orderId":4} == APP == Published data: {"orderId":5} == APP == Published data: {"orderId":6} == APP == Published data: {"orderId":7} == APP == Published data: {"orderId":8} == APP == Published data: {"orderId":9} == APP == Published data: {"orderId":10}
order-processor
hozam:== APP == Subscriber received: {"orderId":1} == APP == Subscriber received: {"orderId":2} == APP == Subscriber received: {"orderId":3} == APP == Subscriber received: {"orderId":4} == APP == Subscriber received: {"orderId":5} == APP == Subscriber received: {"orderId":6} == APP == Subscriber received: {"orderId":7} == APP == Subscriber received: {"orderId":8} == APP == Subscriber received: {"orderId":9} == APP == Subscriber received: {"orderId":10}
Győződjön meg arról, hogy mindkét alkalmazás leállt az alábbi parancsok futtatásával. A pénztár terminálban:
dapr stop --app-id checkout
A rendelésfeldolgozó terminálban:
dapr stop --app-id order-processor
Az alkalmazássablon üzembe helyezése az Azure Developer CLI használatával
Az alkalmazás üzembe helyezése az Azure Container Appsben a következő használatával azd
: .
A projekt előkészítése
Egy új terminálablakban lépjen a minta gyökérkönyvtárába .
cd pubsub-dapr-nodejs-servicebus
Üzembe helyezés és üzembe helyezés az Azure Developer CLI használatával
Futtassa
azd init
a projekt inicializálásához.azd init
Amikor a rendszer kéri a terminálban, adja meg a következő paramétereket.
Paraméter Leírás Környezet neve Az összes Azure-erőforrás tárolására létrehozott erőforráscsoport előtagja. Azure-hely Az erőforrások Azure-beli helye. Azure-előfizetés Az erőforrásokHoz tartozó Azure-előfizetés. Futtassa
azd up
az infrastruktúra kiépítését és az alkalmazás üzembe helyezését az Azure Container Appsben egyetlen paranccsal.azd up
Ez a folyamat eltarthat egy ideig.
azd up
A parancs befejeződése után a parancssori felület kimenete két Azure Portal-hivatkozást jelenít meg az üzembehelyezési folyamat figyeléséhez. A kimenet azt is bemutatja, hogyanazd up
:- Létrehozza és konfigurálja az összes szükséges Azure-erőforrást a címtárban található megadott Bicep-fájlokon
azd provision
keresztül../infra
Az Azure Developer CLI üzembe helyezése után ezeket az erőforrásokat az Azure Portalon érheti el. Az Azure-erőforrásokat kiosztó fájlok a következők:main.parameters.json
main.bicep
- Erőforrások
app
könyvtára funkciók szerint rendszerezve - A
core
sablon általazd
használt Bicep-modulokat tartalmazó referenciatár
- A kód üzembe helyezése a következő használatával:
azd deploy
Várt kimenet
Initializing a new project (azd init) Provisioning Azure resources (azd provision) Provisioning Azure resources can take some time You can view detailed progress in the Azure Portal: https://portal.azure.com (✓) Done: Resource group: resource-group-name (✓) Done: Application Insights: app-insights-name (✓) Done: Portal dashboard: portal-dashboard-name (✓) Done: Log Analytics workspace: log-analytics-name (✓) Done: Key vault: key-vault-name (✓) Done: Container Apps Environment: ca-env-name (✓) Done: Container App: ca-checkout-name (✓) Done: Container App: ca-orders-name Deploying services (azd deploy) (✓) Done: Deploying service checkout (✓) Done: Deploying service orders - Endpoint: https://ca-orders-name.endpoint.region.azurecontainerapps.io/ SUCCESS: Your Azure app has been deployed! You can view the resources created under the resource group resource-group-name in Azure Portal: https://portal.azure.com/#@/resource/subscriptions/subscription-id/resourceGroups/resource-group-name/overview
- Létrehozza és konfigurálja az összes szükséges Azure-erőforrást a címtárban található megadott Bicep-fájlokon
Sikeres üzembe helyezés megerősítése
Az Azure Portalon ellenőrizze, hogy a checkout
szolgáltatás üzeneteket tesz-e közzé az Azure Service Bus-témakörben.
Másolja ki a
checkout
tárolóalkalmazás nevét a terminál kimenetéből.Jelentkezzen be az Azure Portalra , és név szerint keresse meg a tárolóalkalmazás-erőforrást.
A Container Apps irányítópultján válassza a Figyelési>naplóstream lehetőséget.
Ellenőrizze, hogy a
checkout
tároló ugyanazt a kimenetet naplóozza-e, mint a terminálban korábban.Tegye ugyanezt a
order-processor
szolgáltatás esetében is.
Mi történt?
A parancs sikeres végrehajtása azd up
után:
- Az Azure Developer CLI kiépítette a mintaprojekt
./infra
címtárában hivatkozott Azure-erőforrásokat a megadott Azure-előfizetéshez. Ezeket az Azure-erőforrásokat az Azure Portalon tekintheti meg. - Az Azure Container Appsben üzembe helyezett alkalmazás. A portálon tallózhat a teljesen működőképes alkalmazáshoz.
A Python-alkalmazások helyi futtatása
Mielőtt üzembe helyezené az alkalmazást az Azure Container Appsben, futtassa a szolgáltatásokat helyben checkout
a Dapr és az order-processor
Azure Service Bus használatával.
A projekt előkészítése
Klónozza a mintaalkalmazást a helyi gépre.
git clone https://github.com/Azure-Samples/pubsub-dapr-python-servicebus.git
Lépjen a minta gyökérkönyvtárába.
cd pubsub-dapr-python-servicebus
Az alkalmazások futtatása a Dapr parancssori felületével
Először futtassa az előfizetői order-processor
szolgáltatást.
A minta gyökérkönyvtárából módosítsa a könyvtárakat a következőre
order-processor
: .cd order-processor
Telepítse a függőségeket.
pip3 install -r requirements.txt
Futtassa a
order-processor
szolgáltatást.
Egy új terminálablakban, a minta gyökérkönyvtárából lépjen a
checkout
közzétevő szolgáltatáshoz.cd checkout
Telepítse a függőségeket.
pip3 install -r requirements.txt
Futtassa a
checkout
szolgáltatást.
Várt kimenet
Mindkét terminálon a checkout
szolgáltatás a kilépés előtt 10 üzenetet tesz közzé, amelyeket a order-processor
szolgáltatás fogadott.
checkout
hozam:
== APP == Published data: {"orderId":1}
== APP == Published data: {"orderId":2}
== APP == Published data: {"orderId":3}
== APP == Published data: {"orderId":4}
== APP == Published data: {"orderId":5}
== APP == Published data: {"orderId":6}
== APP == Published data: {"orderId":7}
== APP == Published data: {"orderId":8}
== APP == Published data: {"orderId":9}
== APP == Published data: {"orderId":10}
order-processor
hozam:
== APP == Subscriber received: {"orderId":1}
== APP == Subscriber received: {"orderId":2}
== APP == Subscriber received: {"orderId":3}
== APP == Subscriber received: {"orderId":4}
== APP == Subscriber received: {"orderId":5}
== APP == Subscriber received: {"orderId":6}
== APP == Subscriber received: {"orderId":7}
== APP == Subscriber received: {"orderId":8}
== APP == Subscriber received: {"orderId":9}
== APP == Subscriber received: {"orderId":10}
Győződjön meg arról, hogy mindkét alkalmazás leállt az alábbi parancsok futtatásával. A pénztár terminálban:
dapr stop --app-id checkout
A rendelésfeldolgozó terminálban:
dapr stop --app-id order-processor
Az alkalmazássablon üzembe helyezése az Azure Developer CLI használatával
Az alkalmazás üzembe helyezése az Azure Container Appsben a következő használatával azd
: .
A projekt előkészítése
Egy új terminálablakban lépjen a minta gyökérkönyvtárába .
cd pubsub-dapr-python-servicebus
Üzembe helyezés és üzembe helyezés az Azure Developer CLI használatával
Futtassa
azd init
a projekt inicializálásához.azd init
Amikor a rendszer kéri a terminálban, adja meg a következő paramétereket.
Paraméter Leírás Környezet neve Az összes Azure-erőforrás tárolására létrehozott erőforráscsoport előtagja. Azure-hely Az erőforrások Azure-beli helye. Azure-előfizetés Az erőforrásokHoz tartozó Azure-előfizetés. Futtassa
azd up
az infrastruktúra kiépítését és az alkalmazás üzembe helyezését az Azure Container Appsben egyetlen paranccsal.azd up
Ez a folyamat eltarthat egy ideig.
azd up
A parancs befejeződése után a parancssori felület kimenete két Azure Portal-hivatkozást jelenít meg az üzembehelyezési folyamat figyeléséhez. A kimenet azt is bemutatja, hogyanazd up
:- Létrehozza és konfigurálja az összes szükséges Azure-erőforrást a címtárban található megadott Bicep-fájlokon
azd provision
keresztül../infra
Az Azure Developer CLI üzembe helyezése után ezeket az erőforrásokat az Azure Portalon érheti el. Az Azure-erőforrásokat kiosztó fájlok a következők:main.parameters.json
main.bicep
- Erőforrások
app
könyvtára funkciók szerint rendszerezve - A
core
sablon általazd
használt Bicep-modulokat tartalmazó referenciatár
- A kód üzembe helyezése a következő használatával:
azd deploy
Várt kimenet
Initializing a new project (azd init) Provisioning Azure resources (azd provision) Provisioning Azure resources can take some time You can view detailed progress in the Azure Portal: https://portal.azure.com (✓) Done: Resource group: resource-group-name (✓) Done: Application Insights: app-insights-name (✓) Done: Portal dashboard: portal-dashboard-name (✓) Done: Log Analytics workspace: log-analytics-name (✓) Done: Key vault: key-vault-name (✓) Done: Container Apps Environment: ca-env-name (✓) Done: Container App: ca-checkout-name (✓) Done: Container App: ca-orders-name Deploying services (azd deploy) (✓) Done: Deploying service checkout (✓) Done: Deploying service orders - Endpoint: https://ca-orders-name.endpoint.region.azurecontainerapps.io/ SUCCESS: Your Azure app has been deployed! You can view the resources created under the resource group resource-group-name in Azure Portal: https://portal.azure.com/#@/resource/subscriptions/subscription-id/resourceGroups/resource-group-name/overview
- Létrehozza és konfigurálja az összes szükséges Azure-erőforrást a címtárban található megadott Bicep-fájlokon
Sikeres üzembe helyezés megerősítése
Az Azure Portalon ellenőrizze, hogy a checkout
szolgáltatás üzeneteket tesz-e közzé az Azure Service Bus-témakörben.
Másolja ki a
checkout
tárolóalkalmazás nevét a terminál kimenetéből.Jelentkezzen be az Azure Portalra , és név szerint keresse meg a tárolóalkalmazás-erőforrást.
A Container Apps irányítópultján válassza a Figyelési>naplóstream lehetőséget.
Ellenőrizze, hogy a
checkout
tároló ugyanazt a kimenetet naplóozza-e, mint a terminálban korábban.Tegye ugyanezt a
order-processor
szolgáltatás esetében is.
Mi történt?
A parancs sikeres végrehajtása azd up
után:
- Az Azure Developer CLI kiépítette a mintaprojekt
./infra
címtárában hivatkozott Azure-erőforrásokat a megadott Azure-előfizetéshez. Ezeket az Azure-erőforrásokat az Azure Portalon tekintheti meg. - Az Azure Container Appsben üzembe helyezett alkalmazás. A portálon tallózhat a teljesen működőképes alkalmazáshoz.
A .NET-alkalmazások helyi futtatása
Mielőtt üzembe helyezené az alkalmazást az Azure Container Appsben, futtassa a szolgáltatásokat helyben checkout
a Dapr és az order-processor
Azure Service Bus használatával.
A projekt előkészítése
Klónozza a mintaalkalmazást a helyi gépre.
git clone https://github.com/Azure-Samples/pubsub-dapr-csharp-servicebus.git
Lépjen a minta gyökérkönyvtárába.
cd pubsub-dapr-csharp-servicebus
Az alkalmazások futtatása a Dapr parancssori felületével
Első lépésként futtassa az előfizetői order-processor
szolgáltatást
A minta gyökérkönyvtárából módosítsa a könyvtárakat a következőre
order-processor
: .cd order-processor
Telepítse a függőségeket.
dotnet build
Futtassa a
order-processor
szolgáltatást.dapr run --app-id order-processor --resources-path ../components/ --app-port 7001 -- dotnet run --project .
Egy új terminálablakban, a minta gyökérkönyvtárából lépjen a
checkout
közzétevő szolgáltatáshoz.cd checkout
Telepítse a függőségeket.
dotnet build
Futtassa a
checkout
szolgáltatást.dapr run --app-id checkout --resources-path ../components/ -- dotnet run --project .
Várt kimenet
Mindkét terminálon a
checkout
szolgáltatás a kilépés előtt 10 üzenetet tesz közzé, amelyeket aorder-processor
szolgáltatás fogadott.checkout
hozam:== APP == Published data: {"orderId":1} == APP == Published data: {"orderId":2} == APP == Published data: {"orderId":3} == APP == Published data: {"orderId":4} == APP == Published data: {"orderId":5} == APP == Published data: {"orderId":6} == APP == Published data: {"orderId":7} == APP == Published data: {"orderId":8} == APP == Published data: {"orderId":9} == APP == Published data: {"orderId":10}
order-processor
hozam:== APP == Subscriber received: {"orderId":1} == APP == Subscriber received: {"orderId":2} == APP == Subscriber received: {"orderId":3} == APP == Subscriber received: {"orderId":4} == APP == Subscriber received: {"orderId":5} == APP == Subscriber received: {"orderId":6} == APP == Subscriber received: {"orderId":7} == APP == Subscriber received: {"orderId":8} == APP == Subscriber received: {"orderId":9} == APP == Subscriber received: {"orderId":10}
Győződjön meg arról, hogy mindkét alkalmazás leállt az alábbi parancsok futtatásával. A pénztár terminálban.
dapr stop --app-id checkout
A rendelésfeldolgozó terminálban:
dapr stop --app-id order-processor
Az alkalmazássablon üzembe helyezése az Azure Developer CLI használatával
Az alkalmazás üzembe helyezése az Azure Container Appsben a következő használatával azd
: .
A projekt előkészítése
Egy új terminálablakban lépjen a minta gyökérkönyvtárába .
cd pubsub-dapr-csharp-servicebus
Üzembe helyezés és üzembe helyezés az Azure Developer CLI használatával
Futtassa
azd init
a projekt inicializálásához.azd init
Amikor a rendszer kéri a terminálban, adja meg a következő paramétereket.
Paraméter Leírás Környezet neve Az összes Azure-erőforrás tárolására létrehozott erőforráscsoport előtagja. Azure-hely Az erőforrások Azure-beli helye. Azure-előfizetés Az erőforrásokHoz tartozó Azure-előfizetés. Futtassa
azd up
az infrastruktúra kiépítését és az alkalmazás üzembe helyezését az Azure Container Appsben egyetlen paranccsal.azd up
Ez a folyamat eltarthat egy ideig.
azd up
A parancs befejeződése után a parancssori felület kimenete két Azure Portal-hivatkozást jelenít meg az üzembehelyezési folyamat figyeléséhez. A kimenet azt is bemutatja, hogyanazd up
:- Létrehozza és konfigurálja az összes szükséges Azure-erőforrást a címtárban található megadott Bicep-fájlokon
azd provision
keresztül../infra
Az Azure Developer CLI üzembe helyezése után ezeket az erőforrásokat az Azure Portalon érheti el. Az Azure-erőforrásokat kiosztó fájlok a következők:main.parameters.json
main.bicep
- Erőforrások
app
könyvtára funkciók szerint rendszerezve - A
core
sablon általazd
használt Bicep-modulokat tartalmazó referenciatár
- A kód üzembe helyezése a következő használatával:
azd deploy
Várt kimenet
Initializing a new project (azd init) Provisioning Azure resources (azd provision) Provisioning Azure resources can take some time You can view detailed progress in the Azure Portal: https://portal.azure.com (✓) Done: Resource group: resource-group-name (✓) Done: Application Insights: app-insights-name (✓) Done: Portal dashboard: portal-dashboard-name (✓) Done: Log Analytics workspace: log-analytics-name (✓) Done: Key vault: key-vault-name (✓) Done: Container Apps Environment: ca-env-name (✓) Done: Container App: ca-checkout-name (✓) Done: Container App: ca-orders-name Deploying services (azd deploy) (✓) Done: Deploying service checkout (✓) Done: Deploying service orders - Endpoint: https://ca-orders-name.endpoint.region.azurecontainerapps.io/ SUCCESS: Your Azure app has been deployed! You can view the resources created under the resource group resource-group-name in Azure Portal: https://portal.azure.com/#@/resource/subscriptions/subscription-id/resourceGroups/resource-group-name/overview
- Létrehozza és konfigurálja az összes szükséges Azure-erőforrást a címtárban található megadott Bicep-fájlokon
Sikeres üzembe helyezés megerősítése
Az Azure Portalon ellenőrizze, hogy a checkout
szolgáltatás üzeneteket tesz-e közzé az Azure Service Bus-témakörben.
Másolja ki a
checkout
tárolóalkalmazás nevét a terminál kimenetéből.Jelentkezzen be az Azure Portalra , és név szerint keresse meg a tárolóalkalmazás-erőforrást.
A Container Apps irányítópultján válassza a Figyelési>naplóstream lehetőséget.
Ellenőrizze, hogy a
checkout
tároló ugyanazt a kimenetet naplóozza-e, mint a terminálban korábban.Tegye ugyanezt a
order-processor
szolgáltatás esetében is.
Mi történt?
A parancs sikeres végrehajtása azd up
után:
- Az Azure Developer CLI kiépítette a mintaprojekt
./infra
címtárában hivatkozott Azure-erőforrásokat a megadott Azure-előfizetéshez. Ezeket az Azure-erőforrásokat az Azure Portalon tekintheti meg. - Az Azure Container Appsben üzembe helyezett alkalmazás. A portálon tallózhat a teljesen működőképes alkalmazáshoz.
Az erőforrások eltávolítása
Ha nem folytatja az alkalmazás használatát, törölje a következő paranccsal kiépített Azure-erőforrásokat:
azd down
Következő lépések
- További információ az alkalmazások Azure Container Appsben való üzembe helyezéséről.
- Jogkivonat-hitelesítés engedélyezése Dapr-kérésekhez.
- További információ az Azure Developer CLI-ről és az alkalmazások kompatibilissé tételéről
azd
. - Alkalmazások skálázása KEDA-skálázókkal