Sdílet prostřednictvím


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:

  1. Služba generátoru checkout zpráv (vydavatel), která generuje zprávy konkrétního tématu.
  2. order-processor Služba (odběratel), která naslouchá zprávám ze checkout služby konkrétního tématu.

Diagram ukázky pub/sub

Požadavky

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

  1. Naklonujte ukázkovou aplikaci do místního počítače.

    git clone https://github.com/Azure-Samples/pubsub-dapr-nodejs-servicebus.git
    
  2. 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.

  1. V kořenovém adresáři ukázky změňte adresáře na order-processor.

    cd order-processor
    
  2. Nainstalujte závislosti.

    npm install
    
  3. 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
    
  4. V novém okně terminálu přejděte z kořenového adresáře ukázky do služby vydavatele checkout .

    cd checkout
    
  5. Nainstalujte závislosti.

    npm install
    
  6. 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ž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}
    
  7. 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

  1. Spuštěním azd init inicializujete projekt.

    azd init
    
  2. 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.
  3. 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, jak azd 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é šablonou azd
    • 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
    

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.

  1. Zkopírujte název aplikace kontejneru checkout z výstupu terminálu.

  2. Přihlaste se k webu Azure Portal a vyhledejte prostředek aplikace kontejneru podle názvu.

  3. Na řídicím panelu Container Apps vyberte stream protokolu monitorování>.

    Snímek obrazovky s přechodem na stránku Stream protokolu na webu Azure Portal

  4. Ověřte, checkout že kontejner protokoluje stejný výstup jako v předchozím terminálu.

    Snímek obrazovky streamu protokolu kontejneru služby pokladny na webu Azure Portal

  5. Totéž udělejte pro order-processor službu.

    Snímek obrazovky streamu protokolu kontejneru služby procesoru objednávek na webu Azure Portal

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

  1. Naklonujte ukázkovou aplikaci do místního počítače.

    git clone https://github.com/Azure-Samples/pubsub-dapr-python-servicebus.git
    
  2. 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.

  1. V kořenovém adresáři ukázky změňte adresáře na order-processor.

    cd order-processor
    
  2. Nainstalujte závislosti.

    pip3 install -r requirements.txt
    
  3. order-processor Spusťte službu.

    dapr run --app-id order-processor --resources-path ../components/ --app-port 5001 -- python app.py
    

  1. V novém okně terminálu přejděte z kořenového adresáře ukázky do služby vydavatele checkout .

    cd checkout
    
  2. Nainstalujte závislosti.

    pip3 install -r requirements.txt
    
  3. checkout Spusťte službu.

    dapr run --app-id checkout --resources-path ../components/ -- python app.py
    

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}
  1. 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

  1. Spuštěním azd init inicializujete projekt.

    azd init
    
  2. 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.
  3. 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, jak azd 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é šablonou azd
    • 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
    

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.

  1. Zkopírujte název aplikace kontejneru checkout z výstupu terminálu.

  2. Přihlaste se k webu Azure Portal a vyhledejte prostředek aplikace kontejneru podle názvu.

  3. Na řídicím panelu Container Apps vyberte stream protokolu monitorování>.

    Snímek obrazovky s přechodem na stránku Stream protokolu na webu Azure Portal

  4. Ověřte, checkout že kontejner protokoluje stejný výstup jako v předchozím terminálu.

    Snímek obrazovky streamu protokolu kontejneru služby pokladny na webu Azure Portal

  5. Totéž udělejte pro order-processor službu.

    Snímek obrazovky streamu protokolu kontejneru služby procesoru objednávek na webu Azure Portal

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

  1. Naklonujte ukázkovou aplikaci do místního počítače.

    git clone https://github.com/Azure-Samples/pubsub-dapr-csharp-servicebus.git
    
  2. 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 .

  1. V kořenovém adresáři ukázky změňte adresáře na order-processor.

    cd order-processor
    
  2. Nainstalujte závislosti.

    dotnet build
    
  3. order-processor Spusťte službu.

    dapr run --app-id order-processor --resources-path ../components/ --app-port 7001 -- dotnet run --project .
    
  4. V novém okně terminálu přejděte z kořenového adresáře ukázky do služby vydavatele checkout .

    cd checkout
    
  5. Nainstalujte závislosti.

    dotnet build
    
  6. 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ž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}
    
  7. 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

  1. Spuštěním azd init inicializujete projekt.

    azd init
    
  2. 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.
  3. 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, jak azd 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é šablonou azd
    • 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
    

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.

  1. Zkopírujte název aplikace kontejneru checkout z výstupu terminálu.

  2. Přihlaste se k webu Azure Portal a vyhledejte prostředek aplikace kontejneru podle názvu.

  3. Na řídicím panelu Container Apps vyberte stream protokolu monitorování>.

    Snímek obrazovky s přechodem na stránku Stream protokolu na webu Azure Portal

  4. Ověřte, checkout že kontejner protokoluje stejný výstup jako v předchozím terminálu.

    Snímek obrazovky streamu protokolu kontejneru služby pokladny na webu Azure Portal

  5. Totéž udělejte pro order-processor službu.

    Snímek obrazovky streamu protokolu kontejneru služby procesoru objednávek na webu Azure Portal

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