Kurz: Komunikace mikroslužeb pomocí publikování a přihlášení k odběru dapr
V tomto kurzu vytvoříte mikroslužby vydavatele a předplatitele, které využívají rozhraní DAPR Pub/sub API ke komunikaci pomocí zpráv pro architektury řízené událostmi. Budete:
- Vytvořte mikroslužbu vydavatele a mikroslužbu odběratele, která využívá pub/sub API Dapr ke komunikaci pomocí zpráv pro architektury řízené událostmi.
- Nasaďte aplikaci do Azure Container Apps prostřednictvím Rozhraní příkazového řádku Azure Developer CLI s poskytnutým bicepem.
Ukázkový projekt pub/sub zahrnuje:
- Služba generátoru
checkout
zpráv (vydavatel), která generuje zprávy konkrétního tématu. order-processor
Služba (odběratel), která naslouchá zprávám zecheckout
služby konkrétního tématu.
Požadavky
- Instalace Azure Developer CLI
- Instalace a init dapr
- Docker Desktop
- Instalace Gitu
Místní spuštění aplikací Node.js
Před nasazením aplikace do Azure Container Apps spusťte order-processor
služby a checkout
služby místně pomocí Dapr a Azure Service Bus.
Příprava projektu
Naklonujte ukázkovou aplikaci do místního počítače.
git clone https://github.com/Azure-Samples/pubsub-dapr-nodejs-servicebus.git
Přejděte do kořenového adresáře ukázky.
cd pubsub-dapr-nodejs-servicebus
Spuštění aplikací pomocí rozhraní příkazového řádku Dapr
Začněte spuštěním order-processor
služby odběratele.
V kořenovém adresáři ukázky změňte adresáře na
order-processor
.cd order-processor
Nainstalujte závislosti.
npm install
order-processor
Spusťte službu.dapr run --app-port 5001 --app-id order-processing --app-protocol http --dapr-http-port 3501 --resources-path ../components -- npm run start
V novém okně terminálu přejděte z kořenového adresáře ukázky do služby vydavatele
checkout
.cd checkout
Nainstalujte závislosti.
npm install
checkout
Spusťte službu.dapr run --app-id checkout --app-protocol http --resources-path ../components -- npm run start
Očekávaný výstup
V obou terminálech
checkout
služba před ukončením publikuje 10 zpráv přijatých službouorder-processor
.checkout
výstup:== 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
výstup:== 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}
Spuštěním následujících příkazů se ujistěte, že se obě aplikace zastavily. V terminálu pokladny:
dapr stop --app-id checkout
V terminálu procesoru objednávky:
dapr stop --app-id order-processor
Nasazení šablony aplikace pomocí Azure Developer CLI
Nasaďte aplikaci do Azure Container Apps pomocí azd
.
Příprava projektu
V novém okně terminálu přejděte do kořenového adresáře ukázky .
cd pubsub-dapr-nodejs-servicebus
Zřízení a nasazení pomocí Azure Developer CLI
Spuštěním
azd init
inicializujete projekt.azd init
Po zobrazení výzvy v terminálu zadejte následující parametry.
Parametr Popis Název prostředí Předpona pro skupinu prostředků vytvořenou pro uložení všech prostředků Azure. Umístění Azure Umístění Azure pro vaše prostředky. Předplatné Azure Předplatné Azure pro vaše prostředky. Spuštěním příkazu zřídíte
azd up
infrastrukturu a nasadíte aplikaci do Azure Container Apps.azd up
Dokončení tohoto procesu může nějakou dobu trvat.
azd up
Po dokončení příkazu se ve výstupu rozhraní příkazového řádku zobrazí dva odkazy webu Azure Portal pro monitorování průběhu nasazení. Výstup také ukazuje, jakazd up
:- Vytvoří a nakonfiguruje všechny potřebné prostředky Azure prostřednictvím zadaných souborů Bicep v
./infra
adresáři pomocíazd provision
. Jakmile azure Developer CLI zřídíte, můžete k těmto prostředkům přistupovat přes Azure Portal. Mezi soubory, které zřizují prostředky Azure, patří:main.parameters.json
main.bicep
app
Adresář prostředků uspořádaný podle funkcícore
Referenční knihovna, která obsahuje moduly Bicep používané šablonouazd
- Nasadí kód pomocí
azd deploy
Očekávaný výstup
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
- Vytvoří a nakonfiguruje všechny potřebné prostředky Azure prostřednictvím zadaných souborů Bicep v
Potvrzení úspěšného nasazení
Na webu Azure Portal ověřte, že checkout
služba publikuje zprávy do tématu služby Azure Service Bus.
Zkopírujte název aplikace kontejneru
checkout
z výstupu terminálu.Přihlaste se k webu Azure Portal a vyhledejte prostředek aplikace kontejneru podle názvu.
Na řídicím panelu Container Apps vyberte stream protokolu monitorování>.
Ověřte,
checkout
že kontejner protokoluje stejný výstup jako v předchozím terminálu.Totéž udělejte pro
order-processor
službu.
Co se stalo?
Po úspěšném dokončení azd up
příkazu:
- Azure Developer CLI zřídila prostředky Azure odkazované v adresáři ukázkového projektu
./infra
na zadané předplatné Azure. Tyto prostředky Azure teď můžete zobrazit prostřednictvím webu Azure Portal. - Aplikace nasazená do Azure Container Apps. Na portálu můžete přejít do plně funkční aplikace.
Místní spouštění aplikací v Pythonu
Před nasazením aplikace do Azure Container Apps spusťte order-processor
služby a checkout
služby místně pomocí Dapr a Azure Service Bus.
Příprava projektu
Naklonujte ukázkovou aplikaci do místního počítače.
git clone https://github.com/Azure-Samples/pubsub-dapr-python-servicebus.git
Přejděte do kořenového adresáře ukázky.
cd pubsub-dapr-python-servicebus
Spuštění aplikací pomocí rozhraní příkazového řádku Dapr
Začněte spuštěním order-processor
služby odběratele.
V kořenovém adresáři ukázky změňte adresáře na
order-processor
.cd order-processor
Nainstalujte závislosti.
pip3 install -r requirements.txt
order-processor
Spusťte službu.
V novém okně terminálu přejděte z kořenového adresáře ukázky do služby vydavatele
checkout
.cd checkout
Nainstalujte závislosti.
pip3 install -r requirements.txt
checkout
Spusťte službu.
Očekávaný výstup
V obou terminálech checkout
služba před ukončením publikuje 10 zpráv přijatých službou order-processor
.
checkout
výstup:
== 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
výstup:
== 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}
Spuštěním následujících příkazů se ujistěte, že se obě aplikace zastavily. V terminálu pokladny:
dapr stop --app-id checkout
V terminálu procesoru objednávky:
dapr stop --app-id order-processor
Nasazení šablony aplikace pomocí Azure Developer CLI
Nasaďte aplikaci do Azure Container Apps pomocí azd
.
Příprava projektu
V novém okně terminálu přejděte do kořenového adresáře ukázky .
cd pubsub-dapr-python-servicebus
Zřízení a nasazení pomocí Azure Developer CLI
Spuštěním
azd init
inicializujete projekt.azd init
Po zobrazení výzvy v terminálu zadejte následující parametry.
Parametr Popis Název prostředí Předpona pro skupinu prostředků vytvořenou pro uložení všech prostředků Azure. Umístění Azure Umístění Azure pro vaše prostředky. Předplatné Azure Předplatné Azure pro vaše prostředky. Spuštěním příkazu zřídíte
azd up
infrastrukturu a nasadíte aplikaci do Azure Container Apps.azd up
Dokončení tohoto procesu může nějakou dobu trvat.
azd up
Po dokončení příkazu se ve výstupu rozhraní příkazového řádku zobrazí dva odkazy webu Azure Portal pro monitorování průběhu nasazení. Výstup také ukazuje, jakazd up
:- Vytvoří a nakonfiguruje všechny potřebné prostředky Azure prostřednictvím zadaných souborů Bicep v
./infra
adresáři pomocíazd provision
. Jakmile azure Developer CLI zřídíte, můžete k těmto prostředkům přistupovat přes Azure Portal. Mezi soubory, které zřizují prostředky Azure, patří:main.parameters.json
main.bicep
app
Adresář prostředků uspořádaný podle funkcícore
Referenční knihovna, která obsahuje moduly Bicep používané šablonouazd
- Nasadí kód pomocí
azd deploy
Očekávaný výstup
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
- Vytvoří a nakonfiguruje všechny potřebné prostředky Azure prostřednictvím zadaných souborů Bicep v
Potvrzení úspěšného nasazení
Na webu Azure Portal ověřte, že checkout
služba publikuje zprávy do tématu služby Azure Service Bus.
Zkopírujte název aplikace kontejneru
checkout
z výstupu terminálu.Přihlaste se k webu Azure Portal a vyhledejte prostředek aplikace kontejneru podle názvu.
Na řídicím panelu Container Apps vyberte stream protokolu monitorování>.
Ověřte,
checkout
že kontejner protokoluje stejný výstup jako v předchozím terminálu.Totéž udělejte pro
order-processor
službu.
Co se stalo?
Po úspěšném dokončení azd up
příkazu:
- Azure Developer CLI zřídila prostředky Azure odkazované v adresáři ukázkového projektu
./infra
na zadané předplatné Azure. Tyto prostředky Azure teď můžete zobrazit prostřednictvím webu Azure Portal. - Aplikace nasazená do Azure Container Apps. Na portálu můžete přejít do plně funkční aplikace.
Místní spuštění aplikací .NET
Před nasazením aplikace do Azure Container Apps spusťte order-processor
služby a checkout
služby místně pomocí Dapr a Azure Service Bus.
Příprava projektu
Naklonujte ukázkovou aplikaci do místního počítače.
git clone https://github.com/Azure-Samples/pubsub-dapr-csharp-servicebus.git
Přejděte do kořenového adresáře ukázky.
cd pubsub-dapr-csharp-servicebus
Spuštění aplikací pomocí rozhraní příkazového řádku Dapr
Začněte spuštěním služby odběratele order-processor
.
V kořenovém adresáři ukázky změňte adresáře na
order-processor
.cd order-processor
Nainstalujte závislosti.
dotnet build
order-processor
Spusťte službu.dapr run --app-id order-processor --resources-path ../components/ --app-port 7001 -- dotnet run --project .
V novém okně terminálu přejděte z kořenového adresáře ukázky do služby vydavatele
checkout
.cd checkout
Nainstalujte závislosti.
dotnet build
checkout
Spusťte službu.dapr run --app-id checkout --resources-path ../components/ -- dotnet run --project .
Očekávaný výstup
V obou terminálech
checkout
služba před ukončením publikuje 10 zpráv přijatých službouorder-processor
.checkout
výstup:== 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
výstup:== 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}
Spuštěním následujících příkazů se ujistěte, že se obě aplikace zastavily. V terminálu pokladny.
dapr stop --app-id checkout
V terminálu procesoru objednávky:
dapr stop --app-id order-processor
Nasazení šablony aplikace pomocí Azure Developer CLI
Nasaďte aplikaci do Azure Container Apps pomocí azd
.
Příprava projektu
V novém okně terminálu přejděte do kořenového adresáře ukázky .
cd pubsub-dapr-csharp-servicebus
Zřízení a nasazení pomocí Azure Developer CLI
Spuštěním
azd init
inicializujete projekt.azd init
Po zobrazení výzvy v terminálu zadejte následující parametry.
Parametr Popis Název prostředí Předpona pro skupinu prostředků vytvořenou pro uložení všech prostředků Azure. Umístění Azure Umístění Azure pro vaše prostředky. Předplatné Azure Předplatné Azure pro vaše prostředky. Spuštěním příkazu zřídíte
azd up
infrastrukturu a nasadíte aplikaci do Azure Container Apps.azd up
Dokončení tohoto procesu může nějakou dobu trvat.
azd up
Po dokončení příkazu se ve výstupu rozhraní příkazového řádku zobrazí dva odkazy webu Azure Portal pro monitorování průběhu nasazení. Výstup také ukazuje, jakazd up
:- Vytvoří a nakonfiguruje všechny potřebné prostředky Azure prostřednictvím zadaných souborů Bicep v
./infra
adresáři pomocíazd provision
. Jakmile azure Developer CLI zřídíte, můžete k těmto prostředkům přistupovat přes Azure Portal. Mezi soubory, které zřizují prostředky Azure, patří:main.parameters.json
main.bicep
app
Adresář prostředků uspořádaný podle funkcícore
Referenční knihovna, která obsahuje moduly Bicep používané šablonouazd
- Nasadí kód pomocí
azd deploy
Očekávaný výstup
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
- Vytvoří a nakonfiguruje všechny potřebné prostředky Azure prostřednictvím zadaných souborů Bicep v
Potvrzení úspěšného nasazení
Na webu Azure Portal ověřte, že checkout
služba publikuje zprávy do tématu služby Azure Service Bus.
Zkopírujte název aplikace kontejneru
checkout
z výstupu terminálu.Přihlaste se k webu Azure Portal a vyhledejte prostředek aplikace kontejneru podle názvu.
Na řídicím panelu Container Apps vyberte stream protokolu monitorování>.
Ověřte,
checkout
že kontejner protokoluje stejný výstup jako v předchozím terminálu.Totéž udělejte pro
order-processor
službu.
Co se stalo?
Po úspěšném dokončení azd up
příkazu:
- Azure Developer CLI zřídila prostředky Azure odkazované v adresáři ukázkového projektu
./infra
na zadané předplatné Azure. Tyto prostředky Azure teď můžete zobrazit prostřednictvím webu Azure Portal. - Aplikace nasazená do Azure Container Apps. Na portálu můžete přejít do plně funkční aplikace.
Vyčištění prostředků
Pokud nebudete tuto aplikaci dál používat, odstraňte prostředky Azure, které jste zřídili pomocí následujícího příkazu:
azd down
Další kroky
- Přečtěte si další informace o nasazování aplikací do Azure Container Apps.
- Povolte ověřování tokenů pro žádosti Dapr.
- Přečtěte si další informace o Azure Developer CLI a zajištění kompatibility aplikací s
azd
. - Škálováníaplikacích