Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Dapr (Distributed Application Runtime) consente agli sviluppatori di creare microservizi resilienti e affidabili. In questo avvio rapido si abilitano i sidecar Dapr per l'esecuzione insieme a due app contenitore che producono e usano messaggi archiviati in un archivio stati di Archiviazione BLOB di Azure. Usando Azure Resource Manager o i file Bicep, è possibile:
- Passare i comandi dell'interfaccia della riga di comando di Azure per distribuire un modello che avvia tutto ciò che è necessario eseguire i microservizi.
- Verificare l'interazione tra i due microservizi nel portale di Azure.
Questo avvio rapido rispecchia le applicazioni distribuite nell'avvio rapido Hello World Dapr open source.
Prerequisiti
- Un account Azure con una sottoscrizione attiva. Chi non ha ancora un account può crearlo gratuitamente.
- Un account GitHub. Se non ne hai già uno, iscriviti gratuitamente.
- Installare l'interfaccia della riga di comando di Azure.
- Installare Git.
- Installare gli strumenti Bicep.
Configurazione
Per accedere ad Azure dall'interfaccia della riga di comando, eseguire il comando seguente e seguire le istruzioni per completare il processo di autenticazione.
az login
Assicurarsi di eseguire l'ultima versione dell'interfaccia della riga di comando eseguire il comando di aggiornamento.
az upgrade
Installare o aggiornare quindi l'estensione App contenitore di Azure per l'interfaccia della riga di comando.
Se si ricevono errori relativi ai parametri mancanti quando si eseguono i comandi az containerapp nell'interfaccia della riga di comando di Azure o nei cmdlet dal modulo Az.App in PowerShell, assicurarsi di avere installato la versione più recente dell'estensione App contenitore di Azure.
az extension add --name containerapp --upgrade
Note
A partire da maggio 2024, le estensioni dell'interfaccia della riga di comando di Azure non abilitano più le funzionalità di anteprima per impostazione predefinita. Per accedere alle funzionalità di anteprima di App contenitore, installare l'estensione App contenitore con --allow-preview true.
az extension add --name containerapp --upgrade --allow-preview true
Ora che l'estensione o il modulo corrente è installato, registrare gli spazi dei nomi Microsoft.App e Microsoft.OperationalInsights.
az provider register --namespace Microsoft.App
az provider register --namespace Microsoft.OperationalInsights
Impostare le variabili di ambiente
Impostare le variabili di ambiente seguenti. Sostituire <placeholders> con i valori personali.
RESOURCE_GROUP="<new-resource-group>"
LOCATION="<location>"
CONTAINERAPPS_ENVIRONMENT="<containerapps-environment>"
Creare un gruppo di risorse di Azure
Creare un gruppo di risorse per organizzare i servizi correlati alla distribuzione dell'app contenitore.
az group create \
--name $RESOURCE_GROUP \
--location $LOCATION
Preparare il repository GitHub
Passare al repository contenente i file ARM e Bicep usati per distribuire la soluzione.
Selezionare il pulsante Fork nella parte superiore del repository per creare una copia tramite fork del repository nell'account.
È ora possibile clonare il fork per usarlo in locale. Usare il comando git seguente per clonare il repository con fork nella directory acadapr-templates.
git clone https://github.com/<your-github-username>/Tutorial-Deploy-Dapr-Microservices-ACA.git acadapr-templates
Distribuire
Passare alla directory acadapr-templates ed eseguire il comando seguente:
az deployment group create \
--resource-group $RESOURCE_GROUP \
--template-file ./azuredeploy.json \
--parameters environment_name=$CONTAINERAPPS_ENVIRONMENT
az deployment group create \
--resource-group $RESOURCE_GROUP \
--template-file ./azuredeploy.bicep \
--parameters environment_name=$CONTAINERAPPS_ENVIRONMENT
Questo comando distribuisce:
- L'ambiente App contenitore e l'area di lavoro Log Analytics associata per l'hosting della soluzione Dapr Hello World.
- Istanza di Application Insights per la traccia distribuita Dapr.
- Il server app
nodeappin esecuzione sutargetPort: 3000con Dapr abilitato e configurato usando:"appId": "nodeapp""appPort": 3000- Un'identità assegnata dall'utente con accesso all'archiviazione BLOB di Azure tramite un'assegnazione di ruolo Collaboratore dati di archiviazione
- Un componente Dapr con ambito
"type": "state.azure.blobstorage"utilizzato danodeappper l'archiviazione dello stato. - Dapr-enabled,
pythonappheadless abilitato per Dapr che richiama il servizionodeappusando la chiamata di servizio Dapr. - Un assegnazione di ruolo Microsoft Entra ID per l'app Node.js usata dal componente Dapr per stabilire una connessione all'archiviazione BLOB.
Verificare il risultato
Confermare il salvataggio permanente dello stato riuscito
È possibile verificare che i servizi funzionino correttamente visualizzando i dati nell'account di Archiviazione di Azure.
Aprire il portale di Azure nel browser.
Passare all'account di archiviazione appena creato nel gruppo di risorse.
SelezionareContenitori> dal menu della barra laterale.
Selezionare il contenitore creato.
Verificare che sia possibile visualizzare il file denominato order nel contenitore.
Selezionare il file.
Selezionare la scheda Modifica.
Selezionare il pulsante Aggiorna per osservare gli aggiornamenti.
Visualizza i log
I log delle app contenitore vengono archiviati nella tabella personalizzata ContainerAppConsoleLogs_CL nell'area di lavoro Log Analytics. È possibile visualizzare i log tramite il portale di Azure o tramite l'interfaccia della riga di comando. Potrebbe verificarsi un piccolo ritardo inizialmente per la visualizzazione della tabella nell'area di lavoro.
Usare il comando seguente per visualizzare i log in Bash o 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
L'output seguente illustra il tipo di risposta previsto dal comando.
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
Pulire le risorse
Poiché pythonapp effettua continuamente chiamate a nodeapp con messaggi che vengono salvati in modo permanente nell'archivio stati configurato, è importante completare questi passaggi di pulizia per evitare operazioni fatturabili continue.
Per eliminare le risorse create come parte di questa procedura dettagliata, eseguire il comando seguente.
az group delete \
--resource-group $RESOURCE_GROUP
Suggerimento
Problemi? Segnalare i problemi su GitHub aprendo un ticket nel repository App contenitore di Azure.