Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
I denna handledning distribuerar du en containerapp till en befintlig Container Apps-ansluten miljö på ett Kubernetes-kluster med Azure Arc-aktivering. Du verifierar sedan provisionering, DNS, ingang, applikationsrespons och loggar.
- Hämta en specifik ansluten miljö med namn.
- Skapa en containerapp med extern ingång.
- Verifiera applikationsrevisionen och det fullt kvalificerade domännamnet.
- Skicka en förfrågan till applikationen.
- Visa applikationsloggar i Log Analytics, om det är konfigurerat.
- Ta bort tutorial-applikationen.
Förutsättningar
Innan du börjar, kontrollera följande krav:
- En ansluten miljö som skapas genom att slutföra Aktivera Azure Container Apps på Kubernetes med Azure Arc.
- Azure CLI-åtkomst till prenumerationen som innehåller den anslutna miljön.
- Azure-behörighet för att skapa containerappar i målresursgruppen och den anslutna miljön.
- Den anslutna miljöns resursgrupp och namn.
- Nätverks- och DNS-åtkomst från din arbetsstation till den anslutna miljöns ingångsadress.
- Valfri behörighet att köra frågor mot Log Analytics-arbetsytan som konfigurerades under installationen av tillägget.
Innan du distribuerar en produktionsapplikation, granska Azure Container Apps på Azure Arc. Om applikationen inte provisioneras eller blir nåbar, se Troubleshoot Azure Container Apps på Azure Arc-aktiverade Kubernetes.
Lägg till Azure CLI-tillägget
Starta Bash-miljön i Azure Cloud Shell.
Lägg därefter till det Azure CLI-tillägg som krävs.
az extension add --name containerapp --upgrade --yes
Skapa en resursgrupp för applikationen
Containerappen kan använda en annan resursgrupp än den anslutna miljön. Ställ in applikationsresursgruppen och Azure-regionen som används för att lagra dess resursmetadata. Applikationscontainern körs i Kubernetes-klustret som är kopplat till den anslutna miljön.
APP_RESOURCE_GROUP="my-container-apps-resource-group"
AZURE_LOCATION="eastus"
az group create --name $APP_RESOURCE_GROUP --location $AZURE_LOCATION
Skaffa en uppkopplad miljö
Sätt resursgruppen och namnet på den anslutna miljön:
CONNECTED_ENVIRONMENT_RESOURCE_GROUP="<CONNECTED_ENVIRONMENT_RESOURCE_GROUP>"
CONNECTED_ENVIRONMENT_NAME="<CONNECTED_ENVIRONMENT_NAME>"
Hämta den specifika anslutna miljön och verifiera att den är redo:
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
Fortsätt endast när State är Succeeded.
Skapa och verifiera appen
Skapa exempelprogrammet:
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
Vänta på att provisionering ska lyckas:
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)
Fortsätt endast när State är Succeeded, Revision inte är tom, och FQDN innehåller domänen för den sammanhängande miljön. Testa DNS och applikationssvaret från ett nätverk som kan nå den anslutna miljöns ingångsadress:
nslookup $APP_FQDN
curl --fail --show-error "https://$APP_FQDN"
Du kan också öppna applikationen i en webbläsare:
az containerapp browse \
--resource-group $APP_RESOURCE_GROUP \
--name $CONTAINER_APP_NAME
Om DNS inte kan matchas, begäran överskrider tidsgränsen eller svaret inte returneras korrekt, se Applikationsingress kan inte nås.
Hämta diagnostikloggar med Log Analytics
Kommentar
Denna sektion gäller endast när du konfigurerar Log Analytics under installationen av Container Apps-tillägget. Om du inte konfigurerade Log Analytics, hoppa över detta avsnitt.
Öppna arbetsytan Log Analytics som är konfigurerad för Container Apps-tillägget och välj Loggar. Kör följande fråga för att visa loggar från de senaste 72 timmarna. Den första intaget kan ta 10–15 minuter.
let StartTime = ago(72h);
let EndTime = now();
ContainerAppConsoleLogs_CL
| where TimeGenerated between (StartTime .. EndTime)
| where ContainerAppName_s =~ "my-container-app"
Programloggarna för alla appar som finns i kubernetes-klustret loggas till Log Analytics-arbetsytan i den anpassade loggtabellen med namnet ContainerAppConsoleLogs_CL.
-
Log_sinnehåller applikationsloggmeddelanden och containerlivscykelmeddelanden. -
ContainerAppName_sidentifierar containerappen. Detta fält används av föregående fråga.
Du kan lära dig mer om loggfrågor när du kommer igång med Kusto.
Rensa upp handledningsapplikationen
Ta bort exempelcontainerappen:
az containerapp delete \
--resource-group $APP_RESOURCE_GROUP \
--name $CONTAINER_APP_NAME \
--yes
Om du skapade applikationsresursgruppen endast för denna handledning och den inte innehåller några andra resurser, ta bort den.
az group delete --name $APP_RESOURCE_GROUP --yes --no-wait
Ta inte bort den anslutna miljön, den anpassade platsen, tillägget eller det anslutna klustret eftersom andra applikationer kan dela dessa resurser.