Dela via


Snabbstart: Skapa och distribuera från lokal källkod till Azure Container Apps

Den här artikeln visar hur du skapar och distribuerar en mikrotjänst till Azure Container Apps från lokal källkod med det programmeringsspråk du väljer. I den här snabbstarten skapar du en webb-API-tjänst för serverdelen som returnerar en statisk samling musikalbum.

Kommentar

Det här exempelprogrammet är tillgängligt i två versioner. En version där källan innehåller en Dockerfile. Den andra versionen har ingen Dockerfile. Välj den version som bäst återspeglar källkoden. Om du är nybörjare på containrar väljer du alternativet Ingen Dockerfile längst upp.

Följande skärmbild visar utdata från den album-API-tjänst som du distribuerar.

Skärmbild av svar från api-slutpunkten för album.

Förutsättningar

För att slutföra det här projektet behöver du följande:

Krav Instruktioner
Azure-konto Om du inte har något skapar du ett konto kostnadsfritt. Du behöver behörigheten Deltagare eller Ägare för Azure-prenumerationen för att kunna fortsätta.

Mer information finns i Tilldela Azure-roller med hjälp av Azure-portalen.
Azure CLI Installera Azure CLI.

Ställ in

Om du vill logga in på Azure från CLI kör du följande kommando och följer anvisningarna för att slutföra autentiseringsprocessen.

az login

Kör uppgraderingskommandot 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 eller cmdletar från modulen Az.App i Azure PowerShell 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.App namnrymderna och Microsoft.OperationalInsights .

Kommentar

Azure Container Apps-resurser har migrerats från Microsoft.Web namnområdet till Microsoft.App namnområdet. Mer information finns i Namnområdesmigrering från Microsoft.Web till Microsoft.App i mars 2022.

az provider register --namespace Microsoft.App
az provider register --namespace Microsoft.OperationalInsights

Skapa miljövariabler

Nu när azure CLI-installationen är klar kan du definiera de miljövariabler som används i hela den här artikeln.

Definiera följande variabler i bash-gränssnittet.

export RESOURCE_GROUP="album-containerapps"
export LOCATION="canadacentral"
export ENVIRONMENT="env-album-containerapps"
export API_NAME="album-api"

Hämta exempelkoden

Ladda ned och extrahera API-exempelprogrammet på önskat språk.

Ladda ned källkoden till datorn.

Extrahera nedladdningen och ändra till mappen containerapps-albumapi-csharp-main/src .

Ladda ned källkoden till datorn.

Extrahera nedladdningen och ändra till mappen containerapps-albumapi-csharp-buildpack/src .


Skapa och distribuera containerappen

Skapa och distribuera din första containerapp med containerapp up kommandot . Det här kommandot kommer att:

  • Skapa resursgruppen
  • Skapa ett Azure Container Registry
  • Skapa containeravbildningen och skicka den till registret
  • Skapa Container Apps-miljön med en Log Analytics-arbetsyta
  • Skapa och distribuera containerappen med den skapade containeravbildningen
  • Skapa resursgruppen
  • Skapa ett standardregister som en del av din miljö
  • Identifiera språket och körningen av ditt program och skapa avbildningen med hjälp av lämpligt Buildpack
  • Push-överför avbildningen till Standardregistret för Azure Container Apps
  • Skapa Container Apps-miljön med en Log Analytics-arbetsyta
  • Skapa och distribuera containerappen med den skapade containeravbildningen

Kommandot up använder Dockerfile i roten på lagringsplatsen för att skapa containeravbildningen. Instruktionen EXPOSE i Dockerfile definierade målporten, som är den port som används för att skicka inkommande trafik till containern.

up Om kommandot inte hittar någon Dockerfile använder det automatiskt Buildpacks för att göra programkällan till en runnbar container. Eftersom Buildpack försöker köra bygget åt dig måste du tala om up för kommandot vilken port som inkommande trafik ska skickas till.

I följande kodexempel . anger containerapp up (punkt) att den src ska köras i katalogen för det extraherade API-exempelprogrammet.

az containerapp up \
  --name $API_NAME \
  --location $LOCATION \
  --environment $ENVIRONMENT \
  --source .
az containerapp up \
  --name $API_NAME \
  --location $LOCATION \
  --environment $ENVIRONMENT \
  --ingress external \
  --target-port 8080 \
  --source .

Viktigt!

Ta med --resource-group yourResourceGroup i kommandot för att distribuera containerappen containerapp up till en befintlig resursgrupp.

Verifiera distributionen

Kopiera FQDN till en webbläsare. Från webbläsaren går du till /albums slutpunkten för det fullständiga domännamnet.

Skärmbild av svar från api-slutpunkten för album.

Gränser

Den maximala storleken för uppladdning av källkod är 200 MB. Om uppladdningen överskrider gränsen returneras fel 413.

Rensa resurser

Om du inte ska fortsätta med självstudien Distribuera en klientdel kan du ta bort de Azure-resurser som skapades under den här snabbstarten med följande kommando.

Varning

Följande kommando tar bort den angivna resursgruppen och alla resurser som ingår i den. Om gruppen innehåller resurser utanför omfånget för den här snabbstarten tas de också bort.

az group delete --name $RESOURCE_GROUP

Dricks

Har du problem? Meddela oss på GitHub genom att öppna ett problem i Azure Container Apps-lagringsplatsen.

Nästa steg

När du har slutfört den här snabbstarten kan du fortsätta till Självstudie: Kommunikation mellan mikrotjänster i Azure Container Apps för att lära dig hur du distribuerar ett klientdelsprogram som anropar API:et.