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.
In questo tutorial, distribuisci un'app container su un ambiente connesso a Container Apps esistente su un cluster Kubernetes abilitato ad Azure Arc. Poi verifichi il provisioning, il DNS, l'ingress, la risposta dell'applicazione e i log.
- Recupera un ambiente connesso specifico per nome.
- Crea un'applicazione contenitore con ingresso esterno.
- Verifica la revisione dell'applicazione e il nome di dominio completamente qualificato.
- Invia una richiesta all'applicazione.
- Visualizza i log delle applicazioni in Log Analytics, se configurato.
- Elimina l'applicazione del tutorial.
Prerequisiti
Prima di iniziare, verifica i seguenti requisiti:
- Un ambiente connesso creato completando Abilitare App contenitore di Azure in Kubernetes abilitato per Azure Arc.
- Accesso tramite l'interfaccia della riga di comando di Azure all'abbonamento che contiene l'ambiente connesso.
- Autorizzazione di Azure per creare app contenitore nel gruppo di risorse di destinazione e nell'ambiente connesso.
- Il gruppo di risorse e il nome dell'ambiente connesso.
- Accesso di rete e DNS dalla tua workstation all'indirizzo di ingresso dell'ambiente connesso.
- Permesso opzionale per consultare lo spazio di lavoro Log Analytics configurato durante l'installazione dell'estensione.
Prima di distribuire un'applicazione di produzione, consulta App contenitore di Azure su Azure Arc. Se l'applicazione non viene fornita o non diventa raggiungibile, consulta Troubleshoot App contenitore di Azure on Azure Arc-enabled Kubernetes.
Aggiungi l'estensione interfaccia della riga di comando di Azure
Avviare l'ambiente Bash in Azure Cloud Shell.
Successivamente, aggiungi l'estensione interfaccia della riga di comando di Azure richiesta.
az extension add --name containerapp --upgrade --yes
Crea un gruppo di risorse per l'applicazione
L'app container può utilizzare un gruppo di risorse diverso dall'ambiente connesso. Imposta il gruppo di risorse applicative e la regione Azure utilizzata per memorizzare i metadati delle risorse. Il container applicativo funziona nel cluster Kubernetes associato all'ambiente connesso.
APP_RESOURCE_GROUP="my-container-apps-resource-group"
AZURE_LOCATION="eastus"
az group create --name $APP_RESOURCE_GROUP --location $AZURE_LOCATION
Scopri l'ecosistema connesso
Imposta il gruppo di risorse e il nome dell'ambiente connesso:
CONNECTED_ENVIRONMENT_RESOURCE_GROUP="<CONNECTED_ENVIRONMENT_RESOURCE_GROUP>"
CONNECTED_ENVIRONMENT_NAME="<CONNECTED_ENVIRONMENT_NAME>"
Recupera quell'ambiente connesso specifico e verifica che sia pronto:
CONNECTED_ENVIRONMENT_ID=$(az containerapp connected-env show \
--resource-group $CONNECTED_ENVIRONMENT_RESOURCE_GROUP \
--name $CONNECTED_ENVIRONMENT_NAME \
--query id \
--output tsv)
az containerapp connected-env show \
--resource-group $CONNECTED_ENVIRONMENT_RESOURCE_GROUP \
--name $CONNECTED_ENVIRONMENT_NAME \
--query "{Id:id,State:properties.provisioningState,Domain:properties.defaultDomain}" \
--output yaml
Continua solo quando State è Succeeded.
Crea e verifica l'app
Creare l'applicazione di esempio:
CONTAINER_APP_NAME="my-container-app"
az containerapp create \
--resource-group $APP_RESOURCE_GROUP \
--name $CONTAINER_APP_NAME \
--environment $CONNECTED_ENVIRONMENT_ID \
--environment-type connected \
--image mcr.microsoft.com/k8se/quickstart:latest \
--target-port 80 \
--ingress external
Aspetta che il provisioning abbia successo:
CONTAINER_APP_ID=$(az containerapp show \
--resource-group $APP_RESOURCE_GROUP \
--name $CONTAINER_APP_NAME \
--query id \
--output tsv)
az resource wait --ids $CONTAINER_APP_ID --created --timeout 600
az containerapp show \
--resource-group $APP_RESOURCE_GROUP \
--name $CONTAINER_APP_NAME \
--query "{State:properties.provisioningState,Revision:properties.latestReadyRevisionName,FQDN:properties.configuration.ingress.fqdn}" \
--output yaml
APP_FQDN=$(az containerapp show \
--resource-group $APP_RESOURCE_GROUP \
--name $CONTAINER_APP_NAME \
--query properties.configuration.ingress.fqdn \
--output tsv)
Continuare solo quando State è Succeeded, Revision non è vuoto e FQDN contiene il dominio dell'ambiente connesso. Test DNS e risposta dell'applicazione da una rete che può raggiungere l'indirizzo di ingresso dell'ambiente connesso:
nslookup $APP_FQDN
curl --fail --show-error "https://$APP_FQDN"
Puoi anche aprire l'applicazione in un browser:
az containerapp browse \
--resource-group $APP_RESOURCE_GROUP \
--name $CONTAINER_APP_NAME
Se il DNS non si risolve, la richiesta scade o la risposta non ha successo, vedi L'ingresso dell'applicazione non è raggiungibile.
Ottenere i log di diagnostica con Log Analytics
Nota
Questa sezione si applica solo quando si configura Log Analytics durante l'installazione dell'estensione Container Apps. Se non hai configurato Log Analytics, salta questa sezione.
Apri l'area di lavoro Log Analytics configurata per l'estensione Container Apps e seleziona Logs. Esegui la seguente query per mostrare i registri delle ultime 72 ore. La prima assunzione può durare 10–15 minuti.
let StartTime = ago(72h);
let EndTime = now();
ContainerAppConsoleLogs_CL
| where TimeGenerated between (StartTime .. EndTime)
| where ContainerAppName_s =~ "my-container-app"
I log dell'applicazione per tutte le app ospitate nel cluster Kubernetes vengono registrati nell'area di lavoro Log Analytics nella tabella log personalizzata denominata ContainerAppConsoleLogs_CL.
-
Log_scontiene messaggi di log dell'applicazione e messaggi sul ciclo di vita del container. -
ContainerAppName_sidentifica l'app container. Questo campo è usato dalla query precedente.
Per altre informazioni sulle query di log, vedere Introduzione a Kusto.
Pulisci l'applicazione tutorial
Elimina l'app contenitore di esempio:
az containerapp delete \
--resource-group $APP_RESOURCE_GROUP \
--name $CONTAINER_APP_NAME \
--yes
Se hai creato il gruppo di risorse applicativi solo per questo tutorial e non contiene altre risorse, eliminalo.
az group delete --name $APP_RESOURCE_GROUP --yes --no-wait
Non eliminare l'ambiente connesso, la posizione personalizzata, l'estensione o il cluster connesso perché altre applicazioni possono condividere queste risorse.