Not
Å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 den här snabbstarten lär du dig att distribuera en containerbaserad Go-webbapp till Azure Container Apps.
Med Azure Container Apps kan du köra programkod som paketeras i en container utan att hantera komplicerad molninfrastruktur eller komplexa containerorkestrerare. Den eliminerar också behovet av att bekymra sig över körningstiden eller programmeringsmodellen. Vanliga användningsområden för Azure Container Apps är: Distribuera API-slutpunkter, vara värd för program för bakgrundsbearbetning, hantera händelsedriven bearbetning och köra mikrotjänster.
Följ den här självstudien om du vill gå igenom hur du skapar en Docker-avbildning, distribuerar avbildningen till Azure Container Registry och distribuerar en Go-webbapp till Azure Container Apps.
Förutsättningar
- Azure-prenumeration: Om du inte har någon Azure-prenumeration kan du skapa ett kostnadsfritt konto innan du börjar.
- Go installerat: Version 1.18 eller senare
- Docker Desktop
Ställ in
Om du vill logga in på Azure från CLI kör du kommandot az login och följer anvisningarna för att slutföra autentiseringsprocessen.
az login
Kör kommandot az upgrade för att säkerställa att du kör den senaste versionen av CLI.
az upgrade
Installera eller uppdatera sedan Azure Container Apps-tillägget för CLI.
Om du får fel om saknade parametrar när du kör az containerapp kommandon i Azure CLI kontrollerar du att den senaste versionen av Azure Container Apps-tillägget är installerad.
az extension add --name containerapp --upgrade
Kommentar
Från och med maj 2024 aktiverar Azure CLI-tillägg inte längre förhandsversionsfunktioner som standard. Om du vill komma åt förhandsversionsfunktioner för Container Apps installerar du containerapptillägget med --allow-preview true.
az extension add --name containerapp --upgrade --allow-preview true
Nu när det aktuella tillägget eller modulen har installerats registrerar du Microsoft.Appnamnrymderna , Microsoft.ContainerRegistryoch Microsoft.OperationalInsights .
az provider register --namespace Microsoft.App
az provider register --namespace Microsoft.ContainerRegistry
az provider register --namespace Microsoft.OperationalInsights
Kommentar
Azure Container Apps-resurser har migrerats från Microsoft.Web-namnområdet till Microsoft.App namnrymd. Mer information finns i Namnområdesmigrering från Microsoft.Web till Microsoft.App i mars 2022.
Ladda ned exempelprogrammet
Om du vill följa den här självstudien behöver du ett exempelprogram för att containerisera. GitHub-lagringsplatsen msdocs-go-webapp-quickstart innehåller en Go-exempelwebbapp. Ladda ned eller klona exempelprogrammet till din lokala arbetsstation.
git clone https://github.com/Azure-Samples/msdocs-go-webapp-quickstart.git
cd msdocs-go-webapp-quickstart
Skapa ett Azure Container Registry
Med Azure Container Registry kan du skapa, lagra och hantera containeravbildningar. Använd det för att lagra Docker-bilden som innehåller Go-webbappen från exempelförrådet som nämndes tidigare.
Kör följande kommandon för att skapa ett Azure Container Registry:
Ange miljövariabler för de resurser som du skapar. Ersätt platshållartexten inom hakparenteser med lämpliga värden. Ditt Azure Container Registry-namn måste vara globalt unikt.
RESOURCE_GROUP_NAME="<resourceGroupName>" # Name of the Azure resource group to create LOCATION="<location>" # Azure region (For example, "eastus", "westus2") ACR_NAME="<azureContainerRegistryName>" # Globally unique name for Azure Container RegistryExempelkommandona för att ange miljövariablerna är för Bash-gränssnittet. Om du använder ett annat gränssnitt justerar du kommandona därefter.
Skapa en Azure-resursgrupp med kommandot az group create.
az group create \ --name $RESOURCE_GROUP_NAME \ --location $LOCATIONSkapa ett Azure Container Registry med kommandot az acr create .
az acr create \ --resource-group $RESOURCE_GROUP_NAME \ --name $ACR_NAME \ --sku basicLogga in på Azure-containerinstansen med kommandot az acr login .
az acr login --name $ACR_NAMEKommentar
Om du får ett fel som liknar följande fel när du kör
az acr loginkommandot kontrollerar du att Docker-daemonen körs i systemet:You may want to use 'az acr login -n $ACR_NAME --expose-token' to get an access token, which doesn't require Docker to be installed. An error occurred: DOCKER_COMMAND_ERROR
Skapa och push-överföra Docker-avbildningen
När du har skapat ett Azure Container Registry skapar och push-överför du Docker-avbildningen av Go-exempelwebbappen.
Kör följande kommandon för att bygga och pusha imagen till registret.
Ange miljövariabeln för den Docker-avbildning som du skapar. Ersätt platshållartexten inom hakparenteser med lämpliga värden.
IMAGE_NAME="go-webapp" # Name for the Docker imageExempelkommandona för att ange miljövariablerna är för Bash-gränssnittet. Om du använder ett annat gränssnitt justerar du kommandona därefter.
Hämta inloggningsserverinformationen med kommandot az acr show och lagra den i en miljövariabel.
LOGIN_SERVER=$(az acr show \ --name $ACR_NAME \ --resource-group $RESOURCE_GROUP_NAME \ --query loginServer \ --output tsv) echo "Login server: $LOGIN_SERVER"Skapa Docker-avbildningen lokalt.
docker build -t $LOGIN_SERVER/$IMAGE_NAME:latest .Skicka Docker-avbildningen till Azure Container Registry.
docker push $LOGIN_SERVER/$IMAGE_NAME:latestKontrollera att avbildningen har överförts till Azure Container Registry med kommandot az acr repository list .
az acr repository list \ --name $ACR_NAME \ --output table
Nu när du har en avbildning tillgänglig i Azure Container Registry är du redo att distribuera Azure Container App och dess miljö.
Skapa en Azure Container Apps-miljö
Azure Container Apps har inte komplexiteten hos en containerorkestrerare, men den behöver fortfarande ett sätt att upprätta säkra gränser. Azure Container Apps-miljöer tillhandahåller den här funktionen. Container Apps som distribueras i samma miljö delar samma virtuella nätverk och skriver loggar till samma Log Analytics-arbetsyta. Innan du kan distribuera en Azure Container App behöver du en miljö att distribuera till.
Ange miljövariabler för de resurser som du skapar. Ersätt platshållartexten inom hakparenteser med lämpliga värden.
CONTAINER_APP_ENV="mygoappenv" # Name for the Container Apps environment CONTAINER_APP_NAME="mygoapp" # Name for your container appExempelkommandona för att ange miljövariablerna är för Bash-gränssnittet. Om du använder ett annat skal ska du justera kommandona därefter.
Kör kommandot az containerapp env create för att skapa en Azure Container Apps-miljö.
az containerapp env create \ --name $CONTAINER_APP_ENV \ --resource-group $RESOURCE_GROUP_NAME \ --location $LOCATION
Distribuera till Azure Container Apps
Nu har du slutfört följande steg:
- Skapade ett Azure Container Registry.
- Skapade och överförde en Docker-avbildning till registret.
- Konfigurera en Azure Container Apps-miljö.
Det sista steget är att distribuera programmet.
Kör kommandot az containerapp create för att distribuera Go-webbappen till Azure Container Apps.
az containerapp create \
--name $CONTAINER_APP_NAME \
--resource-group $RESOURCE_GROUP_NAME \
--environment $CONTAINER_APP_ENV \
--image "$LOGIN_SERVER/$IMAGE_NAME:latest" \
--registry-server "$LOGIN_SERVER" \
--registry-identity system \
--target-port 8080 \
--ingress external
Parametern --registry-identity system konfigurerar den systemtilldelade hanterade identiteten i containerappen. Containerappen använder den här identiteten i stället för användarnamn och lösenord, vilket är mindre säkert, för att autentisera med containerregistret. Kommandot skapar också automatiskt en AcrPull roll tilldelning för identiteten, vilket ger den tillstånd att dra bilder från registret. Om du vill använda hanterade identiteter för autentisering och auktorisering måste registret vara ett Azure Container Registry.
Verifiera webbappens URL
Kör kommandot az containerapp show för att hämta FQDN (fullständigt domännamn) för webbprogrammets ingress.
APP_FQDN=$(az containerapp show \ --name $CONTAINER_APP_NAME \ --resource-group $RESOURCE_GROUP_NAME \ --query properties.configuration.ingress.fqdn \ --output tsv) echo "App URL: https://$APP_FQDN"Kör curl-kommandot mot FQDN och bekräfta att utdata återspeglar HTML-koden för webbplatsen. Du kan också öppna URL:en i en webbläsare för att interagera med webbappen.
curl "https://$APP_FQDN"Kommandot returnerar HTML för webbappens startsida som liknar följande:
<!DOCTYPE html> <html> <head> <title>Hello Azure - Go Quickstart</title> <link rel="stylesheet" href="/assets/main.css"> <link rel="icon" type="image/x-icon" href="/assets/favicon.ico"> </head> <header> <h1>Welcome to Azure</h1> </header> <section> <img src="/assets/images/azure-icon.svg"> <form method="post"> <label for="form-label">Could you please tell me your name?</label><br> <input type="text" id="name" name="name" style="max-width: 256px;"><br> <button type="submit">Say Hello</button> </form> </section> </html>
Rensa resurser
När du är klar med exempelappen kan du ta bort alla resurser för appen från Azure. På så sätt undviker du löpande avgifter och håller din Azure-prenumeration ostädad. Om du tar bort resursgruppen tas även alla resurser i resursgruppen bort och är det snabbaste sättet att ta bort alla Azure-resurser för din app.
Kör kommandot az group delete för att ta bort resursgruppen och dess resurser.
az group delete \
--name $RESOURCE_GROUP_NAME \
--no-wait