Rychlý start: Nasazení aplikace Dapr do Azure Container Apps pomocí šablony Azure Resource Manageru nebo Bicep
Dapr (Distributed Application Runtime) pomáhá vývojářům vytvářet odolné a spolehlivé mikroslužby. V tomto rychlém startu povolíte, aby se sidecary Dapr spouštěly společně se dvěma aplikacemi kontejnerů, které vytvářejí a spotřebovávají zprávy uložené v úložišti stavů služby Azure Blob Storage. Pomocí šablon Azure Resource Manageru nebo Bicep provedete tyto akce:
- Předáním příkazů Azure CLI nasaďte šablonu , která spustí vše, co potřebujete ke spuštění mikroslužeb.
- Ověřte interakci mezi dvěma mikroslužbami na webu Azure Portal.
Tento rychlý start zrcadlí aplikace, které nasadíte v opensourcovém rychlém startu Dapr Hello World .
Požadavky
- Vyžaduje se účet Azure s aktivním předplatným. Pokud ho ještě nemáte, můžete si zdarma vytvořit účet.
- Účet GitHubu. Pokud ho ještě nemáte, zaregistrujte se zdarma.
Nastavení
Pokud se chcete přihlásit k Azure z rozhraní příkazového řádku, spusťte následující příkaz a podle pokynů dokončete proces ověřování.
az login
Pokud chcete zajistit, že používáte nejnovější verzi rozhraní příkazového řádku, spusťte příkaz upgrade.
az upgrade
Dále nainstalujte nebo aktualizujte rozšíření Azure Container Apps pro rozhraní příkazového řádku.
Pokud se při spouštění az containerapp
příkazů v Azure CLI nebo rutinách Az.App
z modulu v Azure PowerShellu zobrazí chyby týkající se chybějících parametrů, ujistěte se, že máte nainstalovanou nejnovější verzi rozšíření Azure Container Apps.
az extension add --name containerapp --upgrade
Poznámka:
Od května 2024 už rozšíření Azure CLI ve výchozím nastavení nepovolují funkce ve verzi Preview. Pokud chcete získat přístup k funkcím Container Apps ve verzi Preview, nainstalujte rozšíření Container Apps pomocí --allow-preview true
nástroje .
az extension add --name containerapp --upgrade --allow-preview true
Teď, když je nainstalované aktuální rozšíření nebo modul, zaregistrujte obory Microsoft.App
názvů a Microsoft.OperationalInsights
obory názvů.
az provider register --namespace Microsoft.App
az provider register --namespace Microsoft.OperationalInsights
Nastavení proměnných prostředí
Nastavte následující proměnné prostředí. <PLACEHOLDERS>
Nahraďte hodnotami:
RESOURCE_GROUP="<RESOURCE_GROUP>"
LOCATION="<LOCATION>"
CONTAINERAPPS_ENVIRONMENT="<CONTAINERAPPS_ENVIRONMENT>"
Vytvoření skupiny prostředků Azure
Vytvořte skupinu prostředků pro uspořádání služeb souvisejících s nasazením aplikace kontejneru.
az group create \
--name $RESOURCE_GROUP \
--location "$LOCATION"
Příprava úložiště GitHub
Přejděte do úložiště obsahujícího šablony ARM a Bicep, které se používají k nasazení řešení.
Výběrem tlačítka Fork v horní části úložiště rozvětvte úložiště do svého účtu.
Teď můžete fork naklonovat a pracovat s ním místně.
Pomocí následujícího příkazu Git naklonujte forkované úložiště do adresáře acadapr-templates .
git clone https://github.com/$GITHUB_USERNAME/Tutorial-Deploy-Dapr-Microservices-ACA.git acadapr-templates
Nasadit
Přejděte do adresáře acadapr-templates a spusťte následující příkaz:
az deployment group create \
--resource-group "$RESOURCE_GROUP" \
--template-file ./azuredeploy.json \
--parameters environment_name="$CONTAINERAPPS_ENVIRONMENT"
Může se zobrazit upozornění (BCP081). Toto upozornění nemá žádný vliv na úspěšné nasazení aplikace.
az deployment group create \
--resource-group "$RESOURCE_GROUP" \
--template-file ./azuredeploy.bicep \
--parameters environment_name="$CONTAINERAPPS_ENVIRONMENT"
Tento příkaz nasadí:
- Prostředí Container Apps a přidružený pracovní prostor Služby Log Analytics pro hostování řešení Hello world Dapr
- Instance Application Insights pro distribuované trasování Dapr
- Aplikační
nodeapp
server spuštěnýtargetPort: 3000
s povoleným Dapr a nakonfigurovaným pomocí:"appId": "nodeapp"
"appPort": 3000
- Identita přiřazená uživatelem s přístupem k úložišti objektů blob v Azure prostřednictvím přiřazení role Přispěvatel dat úložiště
- Komponenta
"type": "state.azure.blobstorage"
Dapr vymezená pro použití pronodeapp
ukládání stavu. - Bezobslužná
pythonapp
funkce Dapr, která vyvolánodeapp
službu pomocí volání služby Dapr. - Přiřazení role ID Microsoft Entra pro aplikaci Node.js používanou komponentou Dapr k navázání připojení k úložišti objektů blob.
Ověření výsledku
Potvrzení úspěšné trvalosti stavu
Zobrazením dat v účtu Azure Storage můžete ověřit, že služby fungují správně.
Otevřete v prohlížeči portál Azure Portal.
Přejděte do nově vytvořeného účtu úložiště ve vaší skupině prostředků.
V nabídce na levé straně vyberte Kontejnery úložiště>dat.
Vyberte vytvořený kontejner.
Ověřte, že se zobrazí soubor s názvem
order
v kontejneru.Vyberte soubor.
Vyberte kartu Upravit.
Pokud chcete sledovat aktualizace, vyberte tlačítko Aktualizovat.
Zobrazit protokoly
Protokoly z aplikací kontejnerů se ukládají do ContainerAppConsoleLogs_CL
vlastní tabulky v pracovním prostoru služby Log Analytics. Protokoly můžete zobrazit prostřednictvím webu Azure Portal nebo prostřednictvím rozhraní příkazového řádku. Zpočátku může dojít k malému zpoždění, než se tabulka zobrazí v pracovním prostoru.
K zobrazení protokolů v Bash nebo PowerShellu použijte následující příkaz.
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
Následující výstup ukazuje typ odpovědi, kterou má příkaz očekávat.
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
Vyčištění prostředků
Vzhledem k tomu pythonapp
, že nepřetržitě provádí volání nodeapp
se zprávami, které se zachovají do nakonfigurovaného úložiště stavu, je důležité tyto kroky čištění dokončit, aby se zabránilo průběžným fakturovatelným operacím.
Pokud chcete odstranit prostředky vytvořené v rámci tohoto názorného postupu, spusťte následující příkaz.
az group delete \
--resource-group $RESOURCE_GROUP