Szybki start: wdrażanie aplikacji dapr w usłudze Azure Container Apps przy użyciu szablonu usługi Azure Resource Manager lub Bicep
Dapr (rozproszone środowisko uruchomieniowe aplikacji) ułatwia deweloperom tworzenie odpornych, niezawodnych mikrousług. W tym przewodniku Szybki start włączysz obsługę przyczepek języka Dapr wraz z dwoma aplikacjami kontenerów, które generują i zużywają komunikaty przechowywane w magazynie stanów usługi Azure Blob Storage. Korzystając z szablonów usługi Azure Resource Manager lub Bicep, wykonasz następujące czynności:
- Przekaż polecenia interfejsu wiersza polecenia platformy Azure, aby wdrożyć szablon , który uruchamia wszystko, czego potrzebujesz do uruchamiania mikrousług.
- Sprawdź interakcję między dwiema mikrousługami w witrynie Azure Portal.
Ten przewodnik Szybki start odzwierciedla aplikacje wdrażane w przewodniku Szybki start języka Dapr Hello World typu open source.
Wymagania wstępne
- Instalowanie interfejsu wiersza polecenia platformy Azure
- Instalacja programu Git
- Wymagane jest konto platformy Azure z aktywną subskrypcją. Jeśli jeszcze go nie masz, możesz bezpłatnie utworzyć konto.
- Konto usługi GitHub. Jeśli jeszcze go nie masz, zarejestruj się bezpłatnie.
Ustawienia
Aby zalogować się do platformy Azure z poziomu interfejsu wiersza polecenia, uruchom następujące polecenie i postępuj zgodnie z monitami, aby ukończyć proces uwierzytelniania.
az login
Aby upewnić się, że używasz najnowszej wersji interfejsu wiersza polecenia, uruchom polecenie uaktualniania.
az upgrade
Następnie zainstaluj lub zaktualizuj rozszerzenie usługi Azure Container Apps dla interfejsu wiersza polecenia.
Jeśli podczas uruchamiania az containerapp
poleceń w interfejsie wiersza polecenia platformy Azure lub poleceniach cmdlet z modułu Az.App
w programie Azure PowerShell wystąpią błędy dotyczące brakujących parametrów, upewnij się, że masz zainstalowaną najnowszą wersję rozszerzenia Azure Container Apps.
az extension add --name containerapp --upgrade
Uwaga
Począwszy od maja 2024 r., rozszerzenia interfejsu wiersza polecenia platformy Azure domyślnie nie włączają funkcji w wersji zapoznawczej. Aby uzyskać dostęp do funkcji usługi Container Apps w wersji zapoznawczej, zainstaluj rozszerzenie Container Apps za pomocą polecenia --allow-preview true
.
az extension add --name containerapp --upgrade --allow-preview true
Teraz, po zainstalowaniu bieżącego rozszerzenia lub modułu Microsoft.App
, zarejestruj przestrzenie nazw i Microsoft.OperationalInsights
.
az provider register --namespace Microsoft.App
az provider register --namespace Microsoft.OperationalInsights
Ustawianie zmiennych środowiskowych
Ustaw następujące zmienne środowiskowe. Zastąp element swoimi <PLACEHOLDERS>
wartościami:
RESOURCE_GROUP="<RESOURCE_GROUP>"
LOCATION="<LOCATION>"
CONTAINERAPPS_ENVIRONMENT="<CONTAINERAPPS_ENVIRONMENT>"
Tworzenie grupy zasobów platformy Azure
Utwórz grupę zasobów, aby zorganizować usługi związane z wdrożeniem aplikacji kontenera.
az group create \
--name $RESOURCE_GROUP \
--location "$LOCATION"
Przygotowywanie repozytorium GitHub
Przejdź do repozytorium zawierającego szablony arm i Bicep używane do wdrażania rozwiązania.
Wybierz przycisk Rozwidlenie w górnej części repozytorium, aby rozwidlić repozytorium na koncie.
Teraz możesz sklonować rozwidlenie, aby pracować z nim lokalnie.
Użyj następującego polecenia git, aby sklonować rozwidlenie repozytorium do katalogu acadapr-templates .
git clone https://github.com/$GITHUB_USERNAME/Tutorial-Deploy-Dapr-Microservices-ACA.git acadapr-templates
Wdróż
Przejdź do katalogu acadapr-templates i uruchom następujące polecenie:
az deployment group create \
--resource-group "$RESOURCE_GROUP" \
--template-file ./azuredeploy.json \
--parameters environment_name="$CONTAINERAPPS_ENVIRONMENT"
Może zostać wyświetlone ostrzeżenie (BCP081). To ostrzeżenie nie ma wpływu na pomyślne wdrożenie aplikacji.
az deployment group create \
--resource-group "$RESOURCE_GROUP" \
--template-file ./azuredeploy.bicep \
--parameters environment_name="$CONTAINERAPPS_ENVIRONMENT"
To polecenie wdraża:
- Środowisko usługi Container Apps i skojarzony obszar roboczy usługi Log Analytics do hostowania rozwiązania Dapr hello world.
- Wystąpienie usługi Application Insights dla rozproszonego śledzenia języka Dapr.
- Serwer
nodeapp
aplikacji uruchomiony w systemietargetPort: 3000
z włączoną obsługą języka Dapr i skonfigurowany przy użyciu:"appId": "nodeapp"
"appPort": 3000
- Tożsamość przypisana przez użytkownika z dostępem do usługi Azure Blob Storage za pośrednictwem przypisania roli Współautor danych usługi Storage
- Składnik języka Dapr o
"type": "state.azure.blobstorage"
określonym zakresie do użycia przeznodeapp
element do przechowywania stanu. - Bez użycia języka Dapr,
pythonapp
który wywołuje usługęnodeapp
przy użyciu wywołania usługi Dapr. - Przypisanie roli Identyfikator entra firmy Microsoft dla aplikacji Node.js używanej przez składnik Dapr w celu nawiązania połączenia z usługą Blob Storage.
Weryfikowanie wyniku
Potwierdzanie trwałości stanu pomyślnego
Możesz potwierdzić, że usługi działają prawidłowo, wyświetlając dane na koncie usługi Azure Storage.
W przeglądarce otwórz witrynę Azure Portal.
Przejdź do nowo utworzonego konta magazynu w grupie zasobów.
Wybierz pozycję Kontenery magazynu>danych z menu po lewej stronie.
Wybierz utworzony kontener.
Sprawdź, czy w kontenerze jest widoczny plik o nazwie
order
.Wybierz plik.
Wybierz kartę Edytuj .
Wybierz przycisk Odśwież, aby obserwować aktualizacje.
Wyświetl dzienniki
Dzienniki z aplikacji kontenera są przechowywane w tabeli niestandardowej ContainerAppConsoleLogs_CL
w obszarze roboczym usługi Log Analytics. Dzienniki można wyświetlać za pośrednictwem witryny Azure Portal lub interfejsu wiersza polecenia. Początkowo w obszarze roboczym może występować niewielkie opóźnienie.
Użyj następującego polecenia, aby wyświetlić dzienniki w powłoce bash lub programie PowerShell.
LOG_ANALYTICS_WORKSPACE_CLIENT_ID=`az containerapp env show --name $CONTAINERAPPS_ENVIRONMENT --resource-group $RESOURCE_GROUP --query properties.appLogsConfiguration.logAnalyticsConfiguration.customerId --out tsv`
az monitor log-analytics query \
--workspace "$LOG_ANALYTICS_WORKSPACE_CLIENT_ID" \
--analytics-query "ContainerAppConsoleLogs_CL | where ContainerAppName_s == 'nodeapp' and (Log_s contains 'persisted' or Log_s contains 'order') | project ContainerAppName_s, Log_s, TimeGenerated | take 5" \
--out table
Poniższe dane wyjściowe przedstawiają typ odpowiedzi oczekiwanej z polecenia .
ContainerAppName_s Log_s TableName TimeGenerated
-------------------- ------------------------------- ------------- ------------------------
nodeapp Got a new order! Order ID: 61 PrimaryResult 2021-10-22T21:31:46.184Z
nodeapp Successfully persisted state. PrimaryResult 2021-10-22T21:31:46.184Z
nodeapp Got a new order! Order ID: 62 PrimaryResult 2021-10-22T22:01:57.174Z
nodeapp Successfully persisted state. PrimaryResult 2021-10-22T22:01:57.174Z
nodeapp Got a new order! Order ID: 63 PrimaryResult 2021-10-22T22:45:44.618Z
Czyszczenie zasobów
Ponieważ pythonapp
ciągłe nawiązywanie połączeń nodeapp
z komunikatami utrwalone w skonfigurowanym magazynie stanów jest ważne, aby wykonać te kroki oczyszczania, aby uniknąć bieżących operacji rozliczanych.
Jeśli chcesz usunąć zasoby utworzone w ramach tego przewodnika, uruchom następujące polecenie.
az group delete \
--resource-group $RESOURCE_GROUP
Napiwek
Masz problemy? Poinformuj nas o usłudze GitHub, otwierając problem w repozytorium usługi Azure Container Apps.