Komunikacja mikrousług przy użyciu wywołania usługi Dapr
W tym samouczku wykonasz następujące elementy:
- Twórz i uruchamiaj lokalnie dwie mikrousługi, które bezpiecznie komunikują się przy użyciu automatycznego mTLS i niezawodnego używania wbudowanych ponownych prób za pośrednictwem interfejsu API wywołania usługi Dapr.
- Wdróż aplikację w usłudze Azure Container Apps za pośrednictwem interfejsu wiersza polecenia dla deweloperów platformy Azure przy użyciu podanego elementu Bicep.
Przykładowy projekt wywołania usługi obejmuje:
checkout
Usługa, która używa funkcji serwera proxy HTTP języka Dapr w pętli w celu wywołania żądania w usłudzeorder-processor
.order-processor
Usługa, która odbiera żądanie zcheckout
usługi.
Wymagania wstępne
- Instalowanie interfejsu wiersza polecenia dla deweloperów platformy Azure
- Instalowanie i inicjowanie języka Dapr
- Docker Desktop
- Instalacja programu Git
Uruchamianie aplikacji Node.js lokalnie
Przed wdrożeniem aplikacji w usłudze Azure Container Apps rozpocznij od lokalnego order-processor
uruchamiania usług i checkout
przy użyciu języka Dapr.
Przygotowywanie projektu
Sklonuj przykładową aplikację Dapr na komputer lokalny.
git clone https://github.com/Azure-Samples/svc-invoke-dapr-nodejs.git
Przejdź do katalogu głównego przykładu.
cd svc-invoke-dapr-nodejs
Uruchamianie aplikacji Dapr przy użyciu interfejsu wiersza polecenia języka Dapr
Rozpocznij od uruchomienia order-processor
usługi.
Z katalogu głównego przykładu zmień katalogi na
order-processor
.cd order-processor
Zainstaluj zależności.
npm install
Uruchom usługę przy użyciu
order-processor
języka Dapr.dapr run --app-port 5001 --app-id order-processor --app-protocol http --dapr-http-port 3501 -- npm start
W nowym oknie terminalu z katalogu głównego przykładu przejdź do usługi wywołującej
checkout
.cd checkout
Zainstaluj zależności.
npm install
Uruchom usługę przy użyciu
checkout
języka Dapr.dapr run --app-id checkout --app-protocol http --dapr-http-port 3500 -- npm start
Oczekiwane dane wyjściowe
W obu terminalach
checkout
usługa wywołuje zamówienia doorder-processor
usługi w pętli.checkout
Wyjście:== 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
Wyjście:== 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 }
Naciśnij klawisze Cmd/Ctrl + C w obu terminalach, aby zamknąć wywołanie service-to-service.
Wdrażanie szablonu aplikacji dapr przy użyciu interfejsu wiersza polecenia dla deweloperów platformy Azure
Wdróż aplikację Dapr w usłudze Azure Container Apps przy użyciu polecenia azd
.
Przygotowywanie projektu
W nowym oknie terminalu przejdź do katalogu głównego przykładu.
cd svc-invoke-dapr-nodejs
Aprowizuj i wdrażaj przy użyciu interfejsu wiersza polecenia dla deweloperów platformy Azure
Uruchom polecenie
azd init
, aby zainicjować projekt.azd init
Po wyświetleniu monitu w terminalu podaj następujące parametry.
Parametr Opis Nazwa środowiska Prefiks grupy zasobów utworzony do przechowywania wszystkich zasobów platformy Azure. Lokalizacja platformy Azure Lokalizacja platformy Azure dla zasobów. Subskrypcja platformy Azure Subskrypcja platformy Azure dla zasobów. Uruchom polecenie
azd up
, aby aprowizować infrastrukturę i wdrożyć aplikację Dapr w usłudze Azure Container Apps w jednym poleceniu.azd up
Ukończenie tego procesu może zająć trochę czasu. Po zakończeniu działania polecenia dane wyjściowe interfejsu
azd up
wiersza polecenia wyświetla dwa linki do witryny Azure Portal, aby monitorować postęp wdrażania. Dane wyjściowe pokazują również, jakazd up
:- Tworzy i konfiguruje wszystkie niezbędne zasoby platformy Azure za pośrednictwem udostępnionych plików Bicep w
./infra
katalogu przy użyciu poleceniaazd provision
. Po aprowizacji za pomocą interfejsu wiersza polecenia dla deweloperów platformy Azure możesz uzyskać dostęp do tych zasobów za pośrednictwem witryny Azure Portal. Pliki aprowizowania zasobów platformy Azure obejmują:main.parameters.json
main.bicep
app
Katalog zasobów uporządkowany według funkcji- Biblioteka referencyjna
core
zawierająca moduły Bicep używane przezazd
szablon
- Wdraża kod przy użyciu polecenia
azd deploy
Oczekiwane dane wyjściowe
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
- Tworzy i konfiguruje wszystkie niezbędne zasoby platformy Azure za pośrednictwem udostępnionych plików Bicep w
Potwierdzanie pomyślnego wdrożenia
W witrynie Azure Portal sprawdź, czy checkout
usługa przekazuje zamówienia do order-processor
usługi.
checkout
Skopiuj nazwę aplikacji kontenera z danych wyjściowych terminalu.Zaloguj się do witryny Azure Portal i wyszukaj zasób aplikacji kontenera według nazwy.
Na pulpicie nawigacyjnym usługi Container Apps wybierz pozycję Monitorowanie>strumienia dziennika.
Upewnij się,
checkout
że kontener rejestruje te same dane wyjściowe co we wcześniejszym terminalu.Zrób to samo dla
order-processor
usługi.
Co się stało?
Po pomyślnym zakończeniu azd up
polecenia:
- Interfejs wiersza polecenia dla deweloperów platformy Azure aprowizował zasoby platformy Azure, do których odwołuje się katalog przykładowego projektu
./infra
do określonej subskrypcji platformy Azure. Teraz możesz wyświetlić te zasoby platformy Azure za pośrednictwem witryny Azure Portal. - Aplikacja wdrożona w usłudze Azure Container Apps. W portalu możesz przeglądać w pełni funkcjonalną aplikację.
Lokalne uruchamianie aplikacji języka Python
Przed wdrożeniem aplikacji w usłudze Azure Container Apps rozpocznij od lokalnego order-processor
uruchamiania usług i checkout
przy użyciu języka Dapr.
Przygotowywanie projektu
Sklonuj przykładową aplikację Dapr na komputer lokalny.
git clone https://github.com/Azure-Samples/svc-invoke-dapr-python.git
Przejdź do katalogu głównego przykładu.
cd svc-invoke-dapr-python
Uruchamianie aplikacji Dapr przy użyciu interfejsu wiersza polecenia języka Dapr
Rozpocznij od uruchomienia order-processor
usługi.
Z katalogu głównego przykładu zmień katalogi na
order-processor
.cd order-processor
Zainstaluj zależności.
pip3 install -r requirements.txt
Uruchom usługę przy użyciu
order-processor
języka Dapr.dapr run --app-port 8001 --app-id order-processor --app-protocol http --dapr-http-port 3501 -- python3 app.py
W nowym oknie terminalu z katalogu głównego przykładu przejdź do usługi wywołującej
checkout
.cd checkout
Zainstaluj zależności.
pip3 install -r requirements.txt
Uruchom usługę przy użyciu
checkout
języka Dapr.dapr run --app-id checkout --app-protocol http --dapr-http-port 3500 -- python3 app.py
Oczekiwane dane wyjściowe
W obu terminalach
checkout
usługa wywołuje zamówienia doorder-processor
usługi w pętli.checkout
Wyjście:== 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
Wyjście:== 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 }
Naciśnij klawisze Cmd/Ctrl + C w obu terminalach, aby zamknąć wywołanie service-to-service
Wdrażanie szablonu aplikacji dapr przy użyciu interfejsu wiersza polecenia dla deweloperów platformy Azure
Wdróż aplikację Dapr w usłudze Azure Container Apps przy użyciu polecenia azd
.
Przygotowywanie projektu
Aprowizuj i wdrażaj przy użyciu interfejsu wiersza polecenia dla deweloperów platformy Azure
Uruchom polecenie
azd init
, aby zainicjować projekt.azd init
Po wyświetleniu monitu w terminalu podaj następujące parametry.
Parametr Opis Nazwa środowiska Prefiks grupy zasobów utworzony do przechowywania wszystkich zasobów platformy Azure. Lokalizacja platformy Azure Lokalizacja platformy Azure dla zasobów. Subskrypcja platformy Azure Subskrypcja platformy Azure dla zasobów. Uruchom polecenie
azd up
, aby aprowizować infrastrukturę i wdrożyć aplikację Dapr w usłudze Azure Container Apps w jednym poleceniu.azd up
Ukończenie tego procesu może zająć trochę czasu. Po zakończeniu działania polecenia dane wyjściowe interfejsu
azd up
wiersza polecenia wyświetla dwa linki do witryny Azure Portal, aby monitorować postęp wdrażania. Dane wyjściowe pokazują również, jakazd up
:- Tworzy i konfiguruje wszystkie niezbędne zasoby platformy Azure za pośrednictwem udostępnionych plików Bicep w
./infra
katalogu przy użyciu poleceniaazd provision
. Po aprowizacji za pomocą interfejsu wiersza polecenia dla deweloperów platformy Azure możesz uzyskać dostęp do tych zasobów za pośrednictwem witryny Azure Portal. Pliki aprowizowania zasobów platformy Azure obejmują:main.parameters.json
main.bicep
app
Katalog zasobów uporządkowany według funkcji- Biblioteka referencyjna
core
zawierająca moduły Bicep używane przezazd
szablon
- Wdraża kod przy użyciu polecenia
azd deploy
Oczekiwane dane wyjściowe
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
- Tworzy i konfiguruje wszystkie niezbędne zasoby platformy Azure za pośrednictwem udostępnionych plików Bicep w
Potwierdzanie pomyślnego wdrożenia
W witrynie Azure Portal sprawdź, czy checkout
usługa przekazuje zamówienia do order-processor
usługi.
checkout
Skopiuj nazwę aplikacji kontenera z danych wyjściowych terminalu.Zaloguj się do witryny Azure Portal i wyszukaj zasób aplikacji kontenera według nazwy.
Na pulpicie nawigacyjnym usługi Container Apps wybierz pozycję Monitorowanie>strumienia dziennika.
Upewnij się,
checkout
że kontener rejestruje te same dane wyjściowe co we wcześniejszym terminalu.Zrób to samo dla
order-processor
usługi.
Co się stało?
Po pomyślnym zakończeniu azd up
polecenia:
- Interfejs wiersza polecenia dla deweloperów platformy Azure aprowizował zasoby platformy Azure, do których odwołuje się katalog przykładowego projektu
./infra
do określonej subskrypcji platformy Azure. Teraz możesz wyświetlić te zasoby platformy Azure za pośrednictwem witryny Azure Portal. - Aplikacja wdrożona w usłudze Azure Container Apps. W portalu możesz przeglądać w pełni funkcjonalną aplikację.
Uruchamianie aplikacji platformy .NET lokalnie
Przed wdrożeniem aplikacji w usłudze Azure Container Apps rozpocznij od lokalnego order-processor
uruchamiania usług i checkout
przy użyciu języka Dapr.
Przygotowywanie projektu
Sklonuj przykładową aplikację Dapr na komputer lokalny.
git clone https://github.com/Azure-Samples/svc-invoke-dapr-csharp.git
Przejdź do katalogu głównego przykładu.
cd svc-invoke-dapr-csharp
Uruchamianie aplikacji Dapr przy użyciu interfejsu wiersza polecenia języka Dapr
Rozpocznij od uruchomienia usługi wywoływanej przy order-processor
użyciu języka Dapr.
Z katalogu głównego przykładu zmień katalogi na
order-processor
.cd order-processor
Zainstaluj zależności.
dotnet build
Uruchom usługę przy użyciu
order-processor
języka Dapr.dapr run --app-port 7001 --app-id order-processor --app-protocol http --dapr-http-port 3501 -- dotnet run
W nowym oknie terminalu z katalogu głównego przykładu przejdź do usługi wywołującej
checkout
.cd checkout
Zainstaluj zależności.
dotnet build
Uruchom usługę przy użyciu
checkout
języka Dapr.dapr run --app-id checkout --app-protocol http --dapr-http-port 3500 -- dotnet run
Oczekiwane dane wyjściowe
W obu terminalach
checkout
usługa wywołuje zamówienia doorder-processor
usługi w pętli.checkout
Wyjście:== 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
Wyjście:== 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 }
Naciśnij klawisze Cmd/Ctrl + C w obu terminalach, aby zamknąć wywołanie service-to-service.
Wdrażanie szablonu aplikacji dapr przy użyciu interfejsu wiersza polecenia dla deweloperów platformy Azure
Wdróż aplikację Dapr w usłudze Azure Container Apps przy użyciu polecenia azd
.
Przygotowywanie projektu
W nowym oknie terminalu przejdź do katalogu głównego przykładu.
cd svc-invoke-dapr-csharp
Aprowizuj i wdrażaj przy użyciu interfejsu wiersza polecenia dla deweloperów platformy Azure
Uruchom polecenie
azd init
, aby zainicjować projekt.azd init
Po wyświetleniu monitu w terminalu podaj następujące parametry.
Parametr Opis Nazwa środowiska Prefiks grupy zasobów utworzony do przechowywania wszystkich zasobów platformy Azure. Lokalizacja platformy Azure Lokalizacja platformy Azure dla zasobów. Subskrypcja platformy Azure Subskrypcja platformy Azure dla zasobów. Uruchom polecenie
azd up
, aby aprowizować infrastrukturę i wdrożyć aplikację Dapr w usłudze Azure Container Apps w jednym poleceniu.azd up
Ukończenie tego procesu może zająć trochę czasu. Po zakończeniu działania polecenia dane wyjściowe interfejsu
azd up
wiersza polecenia wyświetla dwa linki do witryny Azure Portal, aby monitorować postęp wdrażania. Dane wyjściowe pokazują również, jakazd up
:- Tworzy i konfiguruje wszystkie niezbędne zasoby platformy Azure za pośrednictwem udostępnionych plików Bicep w
./infra
katalogu przy użyciu poleceniaazd provision
. Po aprowizacji za pomocą interfejsu wiersza polecenia dla deweloperów platformy Azure możesz uzyskać dostęp do tych zasobów za pośrednictwem witryny Azure Portal. Pliki aprowizowania zasobów platformy Azure obejmują:main.parameters.json
main.bicep
app
Katalog zasobów uporządkowany według funkcji- Biblioteka referencyjna
core
zawierająca moduły Bicep używane przezazd
szablon
- Wdraża kod przy użyciu polecenia
azd deploy
Oczekiwane dane wyjściowe
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
- Tworzy i konfiguruje wszystkie niezbędne zasoby platformy Azure za pośrednictwem udostępnionych plików Bicep w
Potwierdzanie pomyślnego wdrożenia
W witrynie Azure Portal sprawdź, czy checkout
usługa przekazuje zamówienia do order-processor
usługi.
checkout
Skopiuj nazwę aplikacji kontenera z danych wyjściowych terminalu.Zaloguj się do witryny Azure Portal i wyszukaj zasób aplikacji kontenera według nazwy.
Na pulpicie nawigacyjnym usługi Container Apps wybierz pozycję Monitorowanie>strumienia dziennika.
Upewnij się,
checkout
że kontener rejestruje te same dane wyjściowe co we wcześniejszym terminalu.Zrób to samo dla
order-processor
usługi.
Co się stało?
Po pomyślnym zakończeniu azd up
polecenia:
- Interfejs wiersza polecenia dla deweloperów platformy Azure aprowizował zasoby platformy Azure, do których odwołuje się katalog przykładowego projektu
./infra
do określonej subskrypcji platformy Azure. Teraz możesz wyświetlić te zasoby platformy Azure za pośrednictwem witryny Azure Portal. - Aplikacja wdrożona w usłudze Azure Container Apps. W portalu możesz przeglądać w pełni funkcjonalną aplikację.
Czyszczenie zasobów
Jeśli nie zamierzasz nadal korzystać z tej aplikacji, usuń zasoby platformy Azure aprowizowane za pomocą następującego polecenia:
azd down
Następne kroki
- Dowiedz się więcej o wdrażaniu aplikacji dapr w usłudze Azure Container Apps.
- Włącz uwierzytelnianie tokenu dla żądań języka Dapr.
- Dowiedz się więcej o interfejsie wiersza polecenia dla deweloperów platformy Azure i udostępnianiu aplikacji zgodnych z
azd
programem .