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:
- Een
checkout
service die HTTP-proxy in een lus gebruikt om een aanvraag voor deorder-processor
service aan te roepen. - Een
order-processor
service die de aanvraag van decheckout
service ontvangt.
Vereisten
- Azure Developer CLI installeren
- Installeren en init Dapr
- Docker Desktop
- Installeer Git
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
Kloon de voorbeeldtoepassingen naar uw lokale computer.
git clone https://github.com/Azure-Samples/svc-invoke-dapr-nodejs.git
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.
Wijzig mappen in de hoofdmap van het voorbeeld in
order-processor
.cd order-processor
Installeer de afhankelijkheden.
npm install
Voer de
order-processor
service uit.dapr run --app-port 5001 --app-id order-processor --app-protocol http --dapr-http-port 3501 -- npm start
Navigeer in een nieuw terminalvenster vanuit de hoofdmap van het voorbeeld naar de
checkout
aanroepservice.cd checkout
Installeer de afhankelijkheden.
npm install
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 deorder-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 }
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
Voer
azd init
uit om het project te initialiseren.azd init
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. 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 hoeazd up
:- Hiermee maakt en configureert u alle benodigde Azure-resources via de opgegeven Bicep-bestanden in de
./infra
map met behulp vanazd 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 deazd
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
- Hiermee maakt en configureert u alle benodigde Azure-resources via de opgegeven Bicep-bestanden in de
Geslaagde implementatie bevestigen
Controleer in Azure Portal of de checkout
service orders doorgeeft aan de order-processor
service.
Kopieer de naam van de
checkout
container-app uit de terminaluitvoer.Meld u aan bij Azure Portal en zoek op naam naar de container-app-resource.
Selecteer bewakingslogboekstream> in het Container Apps-dashboard.
Controleer of de
checkout
container dezelfde uitvoer aanmeldt als in de terminal eerder.Doe hetzelfde voor de
order-processor
service.
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
Kloon de voorbeeldtoepassingen naar uw lokale computer.
git clone https://github.com/Azure-Samples/svc-invoke-dapr-python.git
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.
Wijzig mappen in de hoofdmap van het voorbeeld in
order-processor
.cd order-processor
Installeer de afhankelijkheden.
pip3 install -r requirements.txt
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
Navigeer in een nieuw terminalvenster vanuit de hoofdmap van het voorbeeld naar de
checkout
aanroepservice.cd checkout
Installeer de afhankelijkheden.
pip3 install -r requirements.txt
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 deorder-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 }
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-python
Inrichten en implementeren met behulp van Azure Developer CLI
Voer
azd init
uit om het project te initialiseren.azd init
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. 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 hoeazd up
:- Hiermee maakt en configureert u alle benodigde Azure-resources via de opgegeven Bicep-bestanden in de
./infra
map met behulp vanazd 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 deazd
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
- Hiermee maakt en configureert u alle benodigde Azure-resources via de opgegeven Bicep-bestanden in de
Geslaagde implementatie bevestigen
Controleer in Azure Portal of de checkout
service orders doorgeeft aan de order-processor
service.
Kopieer de naam van de
checkout
container-app uit de terminaluitvoer.Meld u aan bij Azure Portal en zoek op naam naar de container-app-resource.
Selecteer bewakingslogboekstream> in het Container Apps-dashboard.
Controleer of de
checkout
container dezelfde uitvoer aanmeldt als in de terminal eerder.Doe hetzelfde voor de
order-processor
service.
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
Kloon de voorbeeldtoepassingen naar uw lokale computer.
git clone https://github.com/Azure-Samples/svc-invoke-dapr-csharp.git
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.
Wijzig mappen in de hoofdmap van het voorbeeld in
order-processor
.cd order-processor
Installeer de afhankelijkheden.
dotnet build
Voer de
order-processor
service uit.dapr run --app-port 7001 --app-id order-processor --app-protocol http --dapr-http-port 3501 -- dotnet run
Navigeer in een nieuw terminalvenster vanuit de hoofdmap van het voorbeeld naar de
checkout
aanroepservice.cd checkout
Installeer de afhankelijkheden.
dotnet build
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 deorder-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 }
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
Voer
azd init
uit om het project te initialiseren.azd init
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. 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 hoeazd up
:- Hiermee maakt en configureert u alle benodigde Azure-resources via de opgegeven Bicep-bestanden in de
./infra
map met behulp vanazd 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 deazd
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
- Hiermee maakt en configureert u alle benodigde Azure-resources via de opgegeven Bicep-bestanden in de
Geslaagde implementatie bevestigen
Controleer in Azure Portal of de checkout
service orders doorgeeft aan de order-processor
service.
Kopieer de naam van de
checkout
container-app uit de terminaluitvoer.Meld u aan bij Azure Portal en zoek op naam naar de container-app-resource.
Selecteer bewakingslogboekstream> in het Container Apps-dashboard.
Controleer of de
checkout
container dezelfde uitvoer aanmeldt als in de terminal eerder.Doe hetzelfde voor de
order-processor
service.
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
- Meer informatie over het implementeren van Dapr-toepassingen in Azure Container Apps.
- Schakel tokenverificatie in voor Dapr-aanvragen.
- Meer informatie over Azure Developer CLI en het maken van uw toepassingen die compatibel zijn met
azd
.