Share via


Zelfstudie: Microservicescommunicatie met dapr-service-aanroep

In deze zelfstudie maakt en voert u twee microservices uit die veilig communiceren met behulp van auto-mTLS en betrouwbaar met behulp van ingebouwde nieuwe pogingen via de Dapr Service-aanroep-API. U doet het volgende:

  • De toepassing lokaal uitvoeren.
  • Implementeer de toepassing in Azure Container Apps via de Azure Developer CLI met de meegeleverde Bicep.

Het voorbeeldproject voor het aanroepen van de service omvat:

  1. Een checkout service die HTTP-proxy in een lus gebruikt om een aanvraag voor de order-processor service aan te roepen.
  2. Een order-processor service die de aanvraag van de checkout service ontvangt.

Diagram van de service-aanroepservices.

Vereisten

De Node.js-toepassingen lokaal uitvoeren

Voordat u de toepassing implementeert in Azure Container Apps, begint u met het lokaal uitvoeren van de order-processor en checkout services met Dapr.

Het project voorbereiden

  1. Kloon de voorbeeldtoepassingen naar uw lokale computer.

    git clone https://github.com/Azure-Samples/svc-invoke-dapr-nodejs.git
    
  2. Navigeer naar de hoofdmap van het voorbeeld.

    cd svc-invoke-dapr-nodejs
    

De toepassingen uitvoeren met behulp van de Dapr CLI

Begin met het uitvoeren van de order-processor service.

  1. Wijzig mappen in de hoofdmap van het voorbeeld in order-processor.

    cd order-processor
    
  2. Installeer de afhankelijkheden.

    npm install
    
  3. Voer de order-processor service uit.

    dapr run --app-port 5001 --app-id order-processor --app-protocol http --dapr-http-port 3501 -- npm start
    
  4. Navigeer in een nieuw terminalvenster vanuit de hoofdmap van het voorbeeld naar de checkout aanroepservice.

    cd checkout
    
  5. Installeer de afhankelijkheden.

    npm install
    
  6. Voer de checkout service uit.

    dapr run  --app-id checkout --app-protocol http --dapr-http-port 3500 -- npm start
    

    Verwachte uitvoer

    In beide terminals roept de checkout service orders aan voor de order-processor service in een lus.

    checkout uitvoer:

    == APP == Order passed: {"orderId":1}
    == APP == Order passed: {"orderId":2}
    == APP == Order passed: {"orderId":3}
    == APP == Order passed: {"orderId":4}
    == APP == Order passed: {"orderId":5}
    == APP == Order passed: {"orderId":6}
    == APP == Order passed: {"orderId":7}
    == APP == Order passed: {"orderId":8}
    == APP == Order passed: {"orderId":9}
    == APP == Order passed: {"orderId":10}
    == APP == Order passed: {"orderId":11}
    == APP == Order passed: {"orderId":12}
    == APP == Order passed: {"orderId":13}
    == APP == Order passed: {"orderId":14}
    == APP == Order passed: {"orderId":15}
    == APP == Order passed: {"orderId":16}
    == APP == Order passed: {"orderId":17}
    == APP == Order passed: {"orderId":18}
    == APP == Order passed: {"orderId":19}
    == APP == Order passed: {"orderId":20}
    

    order-processor uitvoer:

    == APP == Order received: { orderId: 1 }
    == APP == Order received: { orderId: 2 }
    == APP == Order received: { orderId: 3 }
    == APP == Order received: { orderId: 4 }
    == APP == Order received: { orderId: 5 }
    == APP == Order received: { orderId: 6 }
    == APP == Order received: { orderId: 7 }
    == APP == Order received: { orderId: 8 }
    == APP == Order received: { orderId: 9 }
    == APP == Order received: { orderId: 10 }
    == APP == Order received: { orderId: 11 }
    == APP == Order received: { orderId: 12 }
    == APP == Order received: { orderId: 13 }
    == APP == Order received: { orderId: 14 }
    == APP == Order received: { orderId: 15 }
    == APP == Order received: { orderId: 16 }
    == APP == Order received: { orderId: 17 }
    == APP == Order received: { orderId: 18 }
    == APP == Order received: { orderId: 19 }
    == APP == Order received: { orderId: 20 }
    
  7. Druk op Cmd/Ctrl + C in beide terminals om het aanroepen van de service-naar-service te verlaten.

De toepassingssjabloon implementeren met behulp van Azure Developer CLI

Implementeer de toepassing in Azure Container Apps met behulp van azd.

Het project voorbereiden

Navigeer in een nieuw terminalvenster naar de hoofdmap van het voorbeeld.

cd svc-invoke-dapr-nodejs

Inrichten en implementeren met behulp van Azure Developer CLI

  1. Voer azd init uit om het project te initialiseren.

    azd init
    
  2. Geef de volgende parameters op wanneer u hierom wordt gevraagd in de terminal.

    Parameter Description
    Omgevingsnaam Voorvoegsel voor de resourcegroep die is gemaakt voor het opslaan van alle Azure-resources.
    Azure-locatie De Azure-locatie voor uw resources.
    Azure-abonnement Het Azure-abonnement voor uw resources.
  3. Voer azd up deze opdracht uit om de infrastructuur in te richten en de toepassing in Azure Container Apps te implementeren in één opdracht.

    azd up
    

    Dit proces kan enige tijd in beslag nemen. Wanneer de azd up opdracht is voltooid, worden in de CLI-uitvoer twee Koppelingen van Azure Portal weergegeven om de voortgang van de implementatie te controleren. De uitvoer laat ook zien hoe azd up:

    • Hiermee maakt en configureert u alle benodigde Azure-resources via de opgegeven Bicep-bestanden in de ./infra map met behulp van azd provision. Zodra de Azure Developer CLI is ingericht, hebt u toegang tot deze resources via Azure Portal. De bestanden die de Azure-resources inrichten, zijn onder andere:
      • main.parameters.json
      • main.bicep
      • Een app resourcesmap georganiseerd op functionaliteit
      • Een core referentiebibliotheek met de Bicep-modules die door de azd sjabloon worden gebruikt
    • Hiermee wordt de code geïmplementeerd met behulp van azd deploy

    Verwachte uitvoer

    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: Log Analytics workspace: log-analytics-name
      (✓) Done: Application Insights: app-insights-name
      (✓) Done: Portal dashboard: dashboard-name
      (✓) Done: Container Apps Environment: container-apps-env-name
      (✓) Done: Container App: ca-checkout-name
      (✓) Done: Container App: ca-order-processor-name
    
    
    Deploying services (azd deploy)
    
      (✓) Done: Deploying service api
      - Endpoint: https://ca-order-processor-name.eastus.azurecontainerapps.io/
      (✓) Done: Deploying service worker
    
    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/<your-azure-subscription>/resourceGroups/resource-group-name/overview
    

Geslaagde implementatie bevestigen

Controleer in Azure Portal of de checkout service orders doorgeeft aan de order-processor service.

  1. Kopieer de naam van de checkout container-app uit de terminaluitvoer.

  2. Meld u aan bij Azure Portal en zoek op naam naar de container-app-resource.

  3. Selecteer bewakingslogboekstream> in het Container Apps-dashboard.

    Schermopname van het navigeren naar de pagina Logboekstream in Azure Portal.

  4. Controleer of de checkout container dezelfde uitvoer aanmeldt als in de terminal eerder.

    Schermopname van de logboekstream van de kassaservicecontainer in Azure Portal.

  5. Doe hetzelfde voor de order-processor service.

    Schermopname van de logboekstream van de orderprocessorservicecontainer in Azure Portal.

Wat is er gebeurd?

Na een geslaagde voltooiing van de azd up opdracht:

  • Azure Developer CLI heeft de Azure-resources ingericht waarnaar wordt verwezen in de map van ./infra het voorbeeldproject naar het Azure-abonnement dat u hebt opgegeven. U kunt deze Azure-resources nu bekijken via Azure Portal.
  • De app die is geïmplementeerd in Azure Container Apps. Vanuit de portal kunt u door de volledig functionele app bladeren.

De Python-toepassingen lokaal uitvoeren

Voordat u de toepassing implementeert in Azure Container Apps, begint u met het lokaal uitvoeren van de order-processor en checkout services met Dapr.

Het project voorbereiden

  1. Kloon de voorbeeldtoepassingen naar uw lokale computer.

    git clone https://github.com/Azure-Samples/svc-invoke-dapr-python.git
    
  2. Navigeer naar de hoofdmap van het voorbeeld.

    cd svc-invoke-dapr-python
    

De toepassingen uitvoeren met behulp van de Dapr CLI

Begin met het uitvoeren van de order-processor service.

  1. Wijzig mappen in de hoofdmap van het voorbeeld in order-processor.

    cd order-processor
    
  2. Installeer de afhankelijkheden.

    pip3 install -r requirements.txt
    
  3. Voer de order-processor service uit.

    dapr run --app-port 8001 --app-id order-processor --app-protocol http --dapr-http-port 3501 -- python3 app.py
    
  4. Navigeer in een nieuw terminalvenster vanuit de hoofdmap van het voorbeeld naar de checkout aanroepservice.

    cd checkout
    
  5. Installeer de afhankelijkheden.

    pip3 install -r requirements.txt
    
  6. Voer de checkout service uit.

    dapr run  --app-id checkout --app-protocol http --dapr-http-port 3500 -- python3 app.py
    

    Verwachte uitvoer

    In beide terminals roept de checkout service orders aan voor de order-processor service in een lus.

    checkout uitvoer:

    == APP == Order passed: {"orderId":1}
    == APP == Order passed: {"orderId":2}
    == APP == Order passed: {"orderId":3}
    == APP == Order passed: {"orderId":4}
    == APP == Order passed: {"orderId":5}
    == APP == Order passed: {"orderId":6}
    == APP == Order passed: {"orderId":7}
    == APP == Order passed: {"orderId":8}
    == APP == Order passed: {"orderId":9}
    == APP == Order passed: {"orderId":10}
    == APP == Order passed: {"orderId":11}
    == APP == Order passed: {"orderId":12}
    == APP == Order passed: {"orderId":13}
    == APP == Order passed: {"orderId":14}
    == APP == Order passed: {"orderId":15}
    == APP == Order passed: {"orderId":16}
    == APP == Order passed: {"orderId":17}
    == APP == Order passed: {"orderId":18}
    == APP == Order passed: {"orderId":19}
    == APP == Order passed: {"orderId":20}
    

    order-processor uitvoer:

    == APP == Order received: { orderId: 1 }
    == APP == Order received: { orderId: 2 }
    == APP == Order received: { orderId: 3 }
    == APP == Order received: { orderId: 4 }
    == APP == Order received: { orderId: 5 }
    == APP == Order received: { orderId: 6 }
    == APP == Order received: { orderId: 7 }
    == APP == Order received: { orderId: 8 }
    == APP == Order received: { orderId: 9 }
    == APP == Order received: { orderId: 10 }
    == APP == Order received: { orderId: 11 }
    == APP == Order received: { orderId: 12 }
    == APP == Order received: { orderId: 13 }
    == APP == Order received: { orderId: 14 }
    == APP == Order received: { orderId: 15 }
    == APP == Order received: { orderId: 16 }
    == APP == Order received: { orderId: 17 }
    == APP == Order received: { orderId: 18 }
    == APP == Order received: { orderId: 19 }
    == APP == Order received: { orderId: 20 }
    
  7. Druk op Cmd/Ctrl + C in beide terminals om het aanroepen van de service-naar-service te verlaten

De toepassingssjabloon implementeren met behulp van Azure Developer CLI

Implementeer de toepassing in Azure Container Apps met behulp van azd.

Het project voorbereiden

  1. Navigeer in een nieuw terminalvenster naar de hoofdmap van het voorbeeld.

    cd svc-invoke-dapr-python
    

Inrichten en implementeren met behulp van Azure Developer CLI

  1. Voer azd init uit om het project te initialiseren.

    azd init
    
  2. Geef de volgende parameters op wanneer u hierom wordt gevraagd in de terminal.

    Parameter Description
    Omgevingsnaam Voorvoegsel voor de resourcegroep die is gemaakt voor het opslaan van alle Azure-resources.
    Azure-locatie De Azure-locatie voor uw resources.
    Azure-abonnement Het Azure-abonnement voor uw resources.
  3. Voer azd up deze opdracht uit om de infrastructuur in te richten en de toepassing in Azure Container Apps te implementeren in één opdracht.

    azd up
    

    Dit proces kan enige tijd in beslag nemen. Wanneer de azd up opdracht is voltooid, worden in de CLI-uitvoer twee Koppelingen van Azure Portal weergegeven om de voortgang van de implementatie te controleren. De uitvoer laat ook zien hoe azd up:

    • Hiermee maakt en configureert u alle benodigde Azure-resources via de opgegeven Bicep-bestanden in de ./infra map met behulp van azd provision. Zodra de Azure Developer CLI is ingericht, hebt u toegang tot deze resources via Azure Portal. De bestanden die de Azure-resources inrichten, zijn onder andere:
      • main.parameters.json
      • main.bicep
      • Een app resourcesmap georganiseerd op functionaliteit
      • Een core referentiebibliotheek met de Bicep-modules die door de azd sjabloon worden gebruikt
    • Hiermee wordt de code geïmplementeerd met behulp van azd deploy

    Verwachte uitvoer

    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: Log Analytics workspace: log-analytics-name
      (✓) Done: Application Insights: app-insights-name
      (✓) Done: Portal dashboard: dashboard-name
      (✓) Done: Container Apps Environment: container-apps-env-name
      (✓) Done: Container App: ca-checkout-name
      (✓) Done: Container App: ca-order-processor-name
    
    
    Deploying services (azd deploy)
    
      (✓) Done: Deploying service api
      - Endpoint: https://ca-order-processor-name.eastus.azurecontainerapps.io/
      (✓) Done: Deploying service worker
    
    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/<your-azure-subscription>/resourceGroups/resource-group-name/overview
    

Geslaagde implementatie bevestigen

Controleer in Azure Portal of de checkout service orders doorgeeft aan de order-processor service.

  1. Kopieer de naam van de checkout container-app uit de terminaluitvoer.

  2. Meld u aan bij Azure Portal en zoek op naam naar de container-app-resource.

  3. Selecteer bewakingslogboekstream> in het Container Apps-dashboard.

    Schermopname van het navigeren naar de pagina Logboekstream in Azure Portal.

  4. Controleer of de checkout container dezelfde uitvoer aanmeldt als in de terminal eerder.

    Schermopname van de logboekstream van de kassaservicecontainer in Azure Portal.

  5. Doe hetzelfde voor de order-processor service.

    Schermopname van de logboekstream van de orderprocessorservicecontainer in Azure Portal.

Wat is er gebeurd?

Na een geslaagde voltooiing van de azd up opdracht:

  • Azure Developer CLI heeft de Azure-resources ingericht waarnaar wordt verwezen in de map van ./infra het voorbeeldproject naar het Azure-abonnement dat u hebt opgegeven. U kunt deze Azure-resources nu bekijken via Azure Portal.
  • De app die is geïmplementeerd in Azure Container Apps. Vanuit de portal kunt u door de volledig functionele app bladeren.

De .NET-toepassingen lokaal uitvoeren

Voordat u de toepassing implementeert in Azure Container Apps, begint u met het lokaal uitvoeren van de order-processor en checkout services met Dapr.

Het project voorbereiden

  1. Kloon de voorbeeldtoepassingen naar uw lokale computer.

    git clone https://github.com/Azure-Samples/svc-invoke-dapr-csharp.git
    
  2. Navigeer naar de hoofdmap van het voorbeeld.

    cd svc-invoke-dapr-csharp
    

De toepassingen uitvoeren met behulp van de Dapr CLI

Begin met het uitvoeren van de order-processor callee-service.

  1. Wijzig mappen in de hoofdmap van het voorbeeld in order-processor.

    cd order-processor
    
  2. Installeer de afhankelijkheden.

    dotnet build
    
  3. Voer de order-processor service uit.

    dapr run --app-port 7001 --app-id order-processor --app-protocol http --dapr-http-port 3501 -- dotnet run
    
  4. Navigeer in een nieuw terminalvenster vanuit de hoofdmap van het voorbeeld naar de checkout aanroepservice.

    cd checkout
    
  5. Installeer de afhankelijkheden.

    dotnet build
    
  6. Voer de checkout service uit.

    dapr run  --app-id checkout --app-protocol http --dapr-http-port 3500 -- dotnet run
    

    Verwachte uitvoer

    In beide terminals roept de checkout service orders aan voor de order-processor service in een lus.

    checkout uitvoer:

    == APP == Order passed: {"orderId":1}
    == APP == Order passed: {"orderId":2}
    == APP == Order passed: {"orderId":3}
    == APP == Order passed: {"orderId":4}
    == APP == Order passed: {"orderId":5}
    == APP == Order passed: {"orderId":6}
    == APP == Order passed: {"orderId":7}
    == APP == Order passed: {"orderId":8}
    == APP == Order passed: {"orderId":9}
    == APP == Order passed: {"orderId":10}
    == APP == Order passed: {"orderId":11}
    == APP == Order passed: {"orderId":12}
    == APP == Order passed: {"orderId":13}
    == APP == Order passed: {"orderId":14}
    == APP == Order passed: {"orderId":15}
    == APP == Order passed: {"orderId":16}
    == APP == Order passed: {"orderId":17}
    == APP == Order passed: {"orderId":18}
    == APP == Order passed: {"orderId":19}
    == APP == Order passed: {"orderId":20}
    

    order-processor uitvoer:

    == APP == Order received: { orderId: 1 }
    == APP == Order received: { orderId: 2 }
    == APP == Order received: { orderId: 3 }
    == APP == Order received: { orderId: 4 }
    == APP == Order received: { orderId: 5 }
    == APP == Order received: { orderId: 6 }
    == APP == Order received: { orderId: 7 }
    == APP == Order received: { orderId: 8 }
    == APP == Order received: { orderId: 9 }
    == APP == Order received: { orderId: 10 }
    == APP == Order received: { orderId: 11 }
    == APP == Order received: { orderId: 12 }
    == APP == Order received: { orderId: 13 }
    == APP == Order received: { orderId: 14 }
    == APP == Order received: { orderId: 15 }
    == APP == Order received: { orderId: 16 }
    == APP == Order received: { orderId: 17 }
    == APP == Order received: { orderId: 18 }
    == APP == Order received: { orderId: 19 }
    == APP == Order received: { orderId: 20 }
    
  7. Druk op Cmd/Ctrl + C in beide terminals om het aanroepen van de service-naar-service te verlaten.

De toepassingssjabloon implementeren met behulp van Azure Developer CLI

Implementeer de toepassing in Azure Container Apps met behulp van azd.

Het project voorbereiden

Navigeer in een nieuw terminalvenster naar de hoofdmap van het voorbeeld.

cd svc-invoke-dapr-csharp

Inrichten en implementeren met behulp van Azure Developer CLI

  1. Voer azd init uit om het project te initialiseren.

    azd init
    
  2. Geef de volgende parameters op wanneer u hierom wordt gevraagd in de terminal.

    Parameter Description
    Omgevingsnaam Voorvoegsel voor de resourcegroep die is gemaakt voor het opslaan van alle Azure-resources.
    Azure-locatie De Azure-locatie voor uw resources.
    Azure-abonnement Het Azure-abonnement voor uw resources.
  3. Voer azd up deze opdracht uit om de infrastructuur in te richten en de toepassing in Azure Container Apps te implementeren in één opdracht.

    azd up
    

    Dit proces kan enige tijd in beslag nemen. Wanneer de azd up opdracht is voltooid, worden in de CLI-uitvoer twee Koppelingen van Azure Portal weergegeven om de voortgang van de implementatie te controleren. De uitvoer laat ook zien hoe azd up:

    • Hiermee maakt en configureert u alle benodigde Azure-resources via de opgegeven Bicep-bestanden in de ./infra map met behulp van azd provision. Zodra de Azure Developer CLI is ingericht, hebt u toegang tot deze resources via Azure Portal. De bestanden die de Azure-resources inrichten, zijn onder andere:
      • main.parameters.json
      • main.bicep
      • Een app resourcesmap georganiseerd op functionaliteit
      • Een core referentiebibliotheek met de Bicep-modules die door de azd sjabloon worden gebruikt
    • Hiermee wordt de code geïmplementeerd met behulp van azd deploy

    Verwachte uitvoer

    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: Log Analytics workspace: log-analytics-name
      (✓) Done: Application Insights: app-insights-name
      (✓) Done: Portal dashboard: dashboard-name
      (✓) Done: Container Apps Environment: container-apps-env-name
      (✓) Done: Container App: ca-checkout-name
      (✓) Done: Container App: ca-order-processor-name
    
    
    Deploying services (azd deploy)
    
      (✓) Done: Deploying service api
      - Endpoint: https://ca-order-processor-name.eastus.azurecontainerapps.io/
      (✓) Done: Deploying service worker
    
    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/<your-azure-subscription>/resourceGroups/resource-group-name/overview
    

Geslaagde implementatie bevestigen

Controleer in Azure Portal of de checkout service orders doorgeeft aan de order-processor service.

  1. Kopieer de naam van de checkout container-app uit de terminaluitvoer.

  2. Meld u aan bij Azure Portal en zoek op naam naar de container-app-resource.

  3. Selecteer bewakingslogboekstream> in het Container Apps-dashboard.

    Schermopname van het navigeren naar de pagina Logboekstream in Azure Portal.

  4. Controleer of de checkout container dezelfde uitvoer aanmeldt als in de terminal eerder.

    Schermopname van de logboekstream van de kassaservicecontainer in Azure Portal.

  5. Doe hetzelfde voor de order-processor service.

    Schermopname van de logboekstream van de orderprocessorservicecontainer in Azure Portal.

Wat is er gebeurd?

Na een geslaagde voltooiing van de azd up opdracht:

  • Azure Developer CLI heeft de Azure-resources ingericht waarnaar wordt verwezen in de map van ./infra het voorbeeldproject naar het Azure-abonnement dat u hebt opgegeven. U kunt deze Azure-resources nu bekijken via Azure Portal.
  • De app die is geïmplementeerd in Azure Container Apps. Vanuit de portal kunt u door de volledig functionele app bladeren.

Resources opschonen

Als u deze toepassing niet wilt blijven gebruiken, verwijdert u de Azure-resources die u hebt ingericht met de volgende opdracht:

azd down

Volgende stappen