Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
I den här självstudien skapar du mikrotjänster för utgivare och prenumeranter som använder Dapr Pub/sub-API :et för att kommunicera med meddelanden för händelsedrivna arkitekturer. Du kommer att:
- Skapa en utgivarmikrotjänst och en prenumerantmikrotjänst som använder Dapr pub/sub-API:et för att kommunicera med hjälp av meddelanden för händelsedrivna arkitekturer.
- Distribuera programmet till Azure Container Apps via Azure Developer CLI med tillhandahållen Bicep.
Exempelprojektet pub/sub innehåller:
- En meddelandegeneratortjänst
checkout(utgivare) som genererar meddelanden i ett visst ämne. - En
order-processortjänst (prenumerant) som lyssnar efter meddelanden från tjänsten förcheckoutett visst ämne.
Förutsättningar
- Installera Azure Developer CLI
- Installera och init Dapr
- Docker Desktop
- Installera Git
Kör Node.js program lokalt
Innan du distribuerar programmet till Azure Container Apps kör order-processor du tjänsterna och checkout lokalt med Dapr och Azure Service Bus.
Förbereda projektet
Klona exempelprogrammet till den lokala datorn.
git clone https://github.com/Azure-Samples/pubsub-dapr-nodejs-servicebus.gitNavigera till exemplets rotkatalog.
cd pubsub-dapr-nodejs-servicebus
Kör programmen med Dapr CLI
Börja med att order-processor köra prenumeranttjänsten.
Från exemplets rotkatalog ändrar du kataloger till
order-processor.cd order-processorInstallera beroenden.
npm installorder-processorKör tjänsten.dapr run --app-port 5001 --app-id order-processing --app-protocol http --dapr-http-port 3501 --resources-path ../components -- npm run startI ett nytt terminalfönster går du till
checkoututgivartjänsten från exemplets rotkatalog.cd checkoutInstallera beroenden.
npm installcheckoutKör tjänsten.dapr run --app-id checkout --app-protocol http --resources-path ../components -- npm run startFörväntad utdata
I båda terminalerna
checkoutpublicerar tjänsten 10 meddelanden som tas emot av tjänsten innan denorder-processoravslutas.checkoututdata:== 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-processorutdata:== 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}Kontrollera att båda programmen har stoppats genom att köra följande kommandon. I utcheckningsterminalen:
dapr stop --app-id checkoutI orderprocessorterminalen:
dapr stop --app-id order-processor
Distribuera programmallen med Hjälp av Azure Developer CLI
Distribuera programmet till Azure Container Apps med .azd
Förbereda projektet
I ett nytt terminalfönster navigerar du till exemplets rotkatalog.
cd pubsub-dapr-nodejs-servicebus
Etablera och distribuera med Hjälp av Azure Developer CLI
Kör
azd initför att initiera projektet.azd initAnge följande parametrar när du uppmanas till det i terminalen.
Parameter Description Miljönamn Prefix för resursgruppen som skapats för att lagra alla Azure-resurser. Azure-plats Azure-platsen för dina resurser. Azure-prenumeration Azure-prenumerationen för dina resurser. Kör
azd upför att etablera infrastrukturen och distribuera programmet till Azure Container Apps i ett enda kommando.azd upDen här processen kan ta lite tid att slutföra.
azd upNär kommandot har slutförts visar CLI-utdata två Azure Portal länkar för att övervaka distributionens förlopp. Utdata visar också hurazd up:- Skapar och konfigurerar alla nödvändiga Azure-resurser via de angivna Bicep-filerna i
./infrakatalogen med .azd provisionNär du har etablerats av Azure Developer CLI kan du komma åt dessa resurser via Azure Portal. De filer som etablerar Azure-resurserna är:main.parameters.jsonmain.bicep- En
appresurskatalog ordnad efter funktion - Ett
corereferensbibliotek som innehåller de Bicep-moduler som används av mallenazd
- Distribuerar koden med hjälp av
azd deploy
Förväntad utdata
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- Skapar och konfigurerar alla nödvändiga Azure-resurser via de angivna Bicep-filerna i
Bekräfta lyckad distribution
I Azure Portal kontrollerar du att checkout tjänsten publicerar meddelanden till Azure Service Bus-ämnet.
Kopiera containerappens
checkoutnamn från terminalutdata.Logga in på Azure Portal och sök efter containerappresursen efter namn.
På instrumentpanelen Container Apps väljer du Övervakningsloggström>.
Bekräfta att containern
checkoutloggar samma utdata som i terminalen tidigare.
Gör samma sak för tjänsten
order-processor.
Vad hände?
När kommandot har slutförts azd up :
- Azure Developer CLI etablerade De Azure-resurser som refereras i exempelprojektets
./infrakatalog till den Azure-prenumeration som du angav. Nu kan du visa dessa Azure-resurser via Azure Portal. - Appen som distribueras till Azure Container Apps. Från portalen kan du bläddra till den fullt fungerande appen.
Köra Python-programmen lokalt
Innan du distribuerar programmet till Azure Container Apps kör order-processor du tjänsterna och checkout lokalt med Dapr och Azure Service Bus.
Förbereda projektet
Klona exempelprogrammet till den lokala datorn.
git clone https://github.com/Azure-Samples/pubsub-dapr-python-servicebus.gitNavigera till exemplets rotkatalog.
cd pubsub-dapr-python-servicebus
Kör programmen med Dapr CLI
Börja med att order-processor köra prenumeranttjänsten.
Från exemplets rotkatalog ändrar du kataloger till
order-processor.cd order-processorInstallera beroenden.
pip3 install -r requirements.txtorder-processorKör tjänsten.
I ett nytt terminalfönster går du till
checkoututgivartjänsten från exemplets rotkatalog.cd checkoutInstallera beroenden.
pip3 install -r requirements.txtcheckoutKör tjänsten.
Förväntad utdata
I båda terminalerna checkout publicerar tjänsten 10 meddelanden som tas emot av tjänsten innan den order-processor avslutas.
checkout utdata:
== 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 utdata:
== 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}
Kontrollera att båda programmen har stoppats genom att köra följande kommandon. I utcheckningsterminalen:
dapr stop --app-id checkoutI orderprocessorterminalen:
dapr stop --app-id order-processor
Distribuera programmallen med Hjälp av Azure Developer CLI
Distribuera programmet till Azure Container Apps med .azd
Förbereda projektet
I ett nytt terminalfönster navigerar du till exemplets rotkatalog.
cd pubsub-dapr-python-servicebus
Etablera och distribuera med Hjälp av Azure Developer CLI
Kör
azd initför att initiera projektet.azd initAnge följande parametrar när du uppmanas till det i terminalen.
Parameter Description Miljönamn Prefix för resursgruppen som skapats för att lagra alla Azure-resurser. Azure-plats Azure-platsen för dina resurser. Azure-prenumeration Azure-prenumerationen för dina resurser. Kör
azd upför att etablera infrastrukturen och distribuera programmet till Azure Container Apps i ett enda kommando.azd upDen här processen kan ta lite tid att slutföra.
azd upNär kommandot har slutförts visar CLI-utdata två Azure Portal länkar för att övervaka distributionens förlopp. Utdata visar också hurazd up:- Skapar och konfigurerar alla nödvändiga Azure-resurser via de angivna Bicep-filerna i
./infrakatalogen med .azd provisionNär du har etablerats av Azure Developer CLI kan du komma åt dessa resurser via Azure Portal. De filer som etablerar Azure-resurserna är:main.parameters.jsonmain.bicep- En
appresurskatalog ordnad efter funktion - Ett
corereferensbibliotek som innehåller de Bicep-moduler som används av mallenazd
- Distribuerar koden med hjälp av
azd deploy
Förväntad utdata
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- Skapar och konfigurerar alla nödvändiga Azure-resurser via de angivna Bicep-filerna i
Bekräfta lyckad distribution
I Azure Portal kontrollerar du att checkout tjänsten publicerar meddelanden till Azure Service Bus-ämnet.
Kopiera containerappens
checkoutnamn från terminalutdata.Logga in på Azure Portal och sök efter containerappresursen efter namn.
På instrumentpanelen Container Apps väljer du Övervakningsloggström>.
Bekräfta att containern
checkoutloggar samma utdata som i terminalen tidigare.
Gör samma sak för tjänsten
order-processor.
Vad hände?
När kommandot har slutförts azd up :
- Azure Developer CLI etablerade De Azure-resurser som refereras i exempelprojektets
./infrakatalog till den Azure-prenumeration som du angav. Nu kan du visa dessa Azure-resurser via Azure Portal. - Appen som distribueras till Azure Container Apps. Från portalen kan du bläddra till den fullt fungerande appen.
Kör .NET-programmen lokalt
Innan du distribuerar programmet till Azure Container Apps kör order-processor du tjänsterna och checkout lokalt med Dapr och Azure Service Bus.
Förbereda projektet
Klona exempelprogrammet till den lokala datorn.
git clone https://github.com/Azure-Samples/pubsub-dapr-csharp-servicebus.gitNavigera till exemplets rotkatalog.
cd pubsub-dapr-csharp-servicebus
Kör programmen med Dapr CLI
Börja med att order-processor köra prenumeranttjänsten
Från exemplets rotkatalog ändrar du kataloger till
order-processor.cd order-processorInstallera beroenden.
dotnet buildorder-processorKör tjänsten.dapr run --app-id order-processor --resources-path ../components/ --app-port 7001 -- dotnet run --project .I ett nytt terminalfönster går du till
checkoututgivartjänsten från exemplets rotkatalog.cd checkoutInstallera beroenden.
dotnet buildcheckoutKör tjänsten.dapr run --app-id checkout --resources-path ../components/ -- dotnet run --project .Förväntad utdata
I båda terminalerna
checkoutpublicerar tjänsten 10 meddelanden som tas emot av tjänsten innan denorder-processoravslutas.checkoututdata:== 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-processorutdata:== 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}Kontrollera att båda programmen har stoppats genom att köra följande kommandon. I utcheckningsterminalen.
dapr stop --app-id checkoutI orderprocessorterminalen:
dapr stop --app-id order-processor
Distribuera programmallen med Hjälp av Azure Developer CLI
Distribuera programmet till Azure Container Apps med .azd
Förbereda projektet
I ett nytt terminalfönster navigerar du till exemplets rotkatalog.
cd pubsub-dapr-csharp-servicebus
Etablera och distribuera med Hjälp av Azure Developer CLI
Kör
azd initför att initiera projektet.azd initAnge följande parametrar när du uppmanas till det i terminalen.
Parameter Description Miljönamn Prefix för resursgruppen som skapats för att lagra alla Azure-resurser. Azure-plats Azure-platsen för dina resurser. Azure-prenumeration Azure-prenumerationen för dina resurser. Kör
azd upför att etablera infrastrukturen och distribuera programmet till Azure Container Apps i ett enda kommando.azd upDen här processen kan ta lite tid att slutföra.
azd upNär kommandot har slutförts visar CLI-utdata två Azure Portal länkar för att övervaka distributionens förlopp. Utdata visar också hurazd up:- Skapar och konfigurerar alla nödvändiga Azure-resurser via de angivna Bicep-filerna i
./infrakatalogen med .azd provisionNär du har etablerats av Azure Developer CLI kan du komma åt dessa resurser via Azure Portal. De filer som etablerar Azure-resurserna är:main.parameters.jsonmain.bicep- En
appresurskatalog ordnad efter funktion - Ett
corereferensbibliotek som innehåller de Bicep-moduler som används av mallenazd
- Distribuerar koden med hjälp av
azd deploy
Förväntad utdata
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- Skapar och konfigurerar alla nödvändiga Azure-resurser via de angivna Bicep-filerna i
Bekräfta lyckad distribution
I Azure Portal kontrollerar du att checkout tjänsten publicerar meddelanden till Azure Service Bus-ämnet.
Kopiera containerappens
checkoutnamn från terminalutdata.Logga in på Azure Portal och sök efter containerappresursen efter namn.
På instrumentpanelen Container Apps väljer du Övervakningsloggström>.
Bekräfta att containern
checkoutloggar samma utdata som i terminalen tidigare.
Gör samma sak för tjänsten
order-processor.
Vad hände?
När kommandot har slutförts azd up :
- Azure Developer CLI etablerade De Azure-resurser som refereras i exempelprojektets
./infrakatalog till den Azure-prenumeration som du angav. Nu kan du visa dessa Azure-resurser via Azure Portal. - Appen som distribueras till Azure Container Apps. Från portalen kan du bläddra till den fullt fungerande appen.
Rensa resurser
Om du inte kommer att fortsätta att använda det här programmet tar du bort de Azure-resurser som du har etablerat med följande kommando:
azd down