Självstudie: Skapa och distribuera din app till Azure Container Apps
Den här artikeln visar hur du skapar och distribuerar en mikrotjänst till Azure Container Apps från en källlagringsplats med det programmeringsspråk du föredrar.
Det här är den första självstudien i serien med artiklar som beskriver hur du använder kärnfunktioner i Azure Container Apps. Det första steget är att skapa en webb-API-tjänst för serverdelen som returnerar en statisk samling musikalbum.
Kommentar
Du kan också skapa och distribuera den här appen med hjälp av az containerapp up genom att följa anvisningarna i artikeln Snabbstart: Skapa och distribuera en app till Azure Container Apps från en lagringsplats . Kommandot az containerapp up
är ett snabbt och bekvämt sätt att skapa och distribuera din app till Azure Container Apps med ett enda kommando. Den tillhandahåller dock inte samma anpassningsnivå för din containerapp.
Nästa självstudie i serien kommer att skapa och distribuera klientdelswebbappen till Azure Container Apps.
Följande skärmbild visar utdata från album-API:et som distribueras i den här självstudien.
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 Administratör för användaråtkomst eller Ägare för Azure-prenumerationen för att kunna fortsätta. Se till att använda den mest restriktiva rollen för din kontext. Mer information finns i Tilldela Azure-roller med hjälp av rollerna Azure Portal och Azure, Microsoft Entra-roller och klassiska prenumerationsadministratörer. |
GitHub-konto | Registrera dig kostnadsfritt. |
git | Installera git |
Azure CLI | Installera Azure CLI. |
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 Portal. |
GitHub-konto | Registrera dig kostnadsfritt. |
git | Installera git |
Azure CLI | Installera Azure CLI. |
Docker Desktop | Docker tillhandahåller installationsprogram som konfigurerar Docker-miljön på macOS, Windows och Linux. Från kommandotolken skriver du docker för att se till att Docker körs. |
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
.
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.
RESOURCE_GROUP="album-containerapps"
LOCATION="canadacentral"
ENVIRONMENT="env-album-containerapps"
API_NAME="album-api"
FRONTEND_NAME="album-ui"
GITHUB_USERNAME="<YOUR_GITHUB_USERNAME>"
Innan du kör det här kommandot måste du ersätta <YOUR_GITHUB_USERNAME>
med ditt GitHub-användarnamn.
Definiera sedan ett containerregisternamn som är unikt för dig.
ACR_NAME="acaalbums"$GITHUB_USERNAME
Förbereda GitHub-lagringsplatsen
Navigera till lagringsplatsen för önskat språk och förgrena lagringsplatsen.
Välj knappen Förgrening överst på albumets API-lagringsplats för att förgrena lagringsplatsen till ditt konto.
Nu kan du klona din förgrening av exempellagringsplatsen.
Använd följande git-kommando för att klona din förgrenade lagringsplats till mappen code-to-cloud :
git clone https://github.com/$GITHUB_USERNAME/containerapps-albumapi-csharp.git code-to-cloud
Ändra sedan katalogen till roten för den klonade lagringsplatsen.
cd code-to-cloud/src
Skapa en Azure-resursgrupp
Skapa en resursgrupp för att organisera de tjänster som är relaterade till distributionen av containerappen.
az group create \
--name $RESOURCE_GROUP \
--location "$LOCATION"
Skapa ett Azure Container Registry
När album-API-containeravbildningen har skapats skapar du en Azure Container Registry-instans (ACR) i resursgruppen för att lagra den.
az acr create \ --resource-group $RESOURCE_GROUP \ --location $LOCATION \ --name $ACR_NAME \ --sku Basic
Ditt containerregister måste tillåta Azure Resource Manager-målgruppstoken (ARM) för autentisering för att kunna använda hanterad identitet för att hämta avbildningar.
Använd följande kommando för att kontrollera om ARM-token får åtkomst till ditt Azure Container Registry (ACR).
az acr config authentication-as-arm show --registry "$ACR_NAME"
Om ARM-token tillåts matar kommandot ut följande.
{ "status": "enabled" }
status
Om ärdisabled
tillåter du ARM-token med följande kommando.az acr config authentication-as-arm update --registry "$ACR_NAME" --status enabled
Skapa en användartilldelad hanterad identitet
Undvik att använda administrativa autentiseringsuppgifter genom att hämta avbildningar från privata lagringsplatser i Microsoft Azure Container Registry med hanterade identiteter för autentisering. När det är möjligt kan du använda en användartilldelad hanterad identitet för att hämta bilder.
Skapa en användartilldelad hanterad identitet. Innan du kör följande kommandon väljer du ett namn för din hanterade identitet och ersätter
\<PLACEHOLDER\>
med namnet.IDENTITY="<YOUR_IDENTITY_NAME>"
az identity create \ --name $IDENTITY \ --resource-group $RESOURCE_GROUP
Hämta identitetens resurs-ID.
IDENTITY_ID=$(az identity show \ --name $IDENTITY \ --resource-group $RESOURCE_GROUP \ --query id \ --output tsv)
Skapa ditt program
Med ACR-uppgifter kan du skapa och push-överföra docker-avbildningen för album-API:et utan att installera Docker lokalt.
Skapa containern med ACR
Kör följande kommando för att initiera avbildningsversionen och push-processen med hjälp av ACR. I .
slutet av kommandot representerar docker build-kontexten, vilket innebär att det här kommandot ska köras i mappen src där Dockerfile finns.
az acr build --registry $ACR_NAME --image $API_NAME .
Utdata från az acr build
kommandot visar källkodens uppladdningsstatus till Azure och information om docker build
åtgärderna och docker push
.
Skapa ditt program
Följande steg visar hur du skapar containeravbildningen lokalt med Docker och push-överför avbildningen till det nya containerregistret.
Skapa containern med Docker
Följande kommando skapar en containeravbildning för album-API:et och taggar den med det fullständigt kvalificerade namnet på ACR-inloggningsservern. I .
slutet av kommandot representerar docker build-kontexten, vilket innebär att det här kommandot ska köras i mappen src där Dockerfile finns.
docker build --tag $ACR_NAME.azurecr.io/$API_NAME .
Skicka avbildningen till containerregistret
Logga först in på Azure Container Registry.
az acr login --name $ACR_NAME
Skicka avbildningen till registret.
docker push $ACR_NAME.azurecr.io/$API_NAME
Skapa en Container Apps-miljö
Azure Container Apps-miljön fungerar som en säker gräns runt en grupp containerappar.
Skapa Container Apps-miljön med hjälp av följande kommando.
az containerapp env create \
--name $ENVIRONMENT \
--resource-group $RESOURCE_GROUP \
--location "$LOCATION"
Distribuera avbildningen till en containerapp
Nu när du har skapat en miljö kan du skapa och distribuera containerappen az containerapp create
med kommandot .
Skapa och distribuera containerappen med följande kommando.
az containerapp create \
--name $API_NAME \
--resource-group $RESOURCE_GROUP \
--environment $ENVIRONMENT \
--image $ACR_NAME.azurecr.io/$API_NAME \
--target-port 8080 \
--ingress external \
--registry-server $ACR_NAME.azurecr.io \
--user-assigned "$IDENTITY_ID" \
--registry-identity "$IDENTITY_ID" \
--query properties.configuration.ingress.fqdn
Genom att ange
--ingress
tillexternal
är containerappen tillgänglig från det offentliga Internet.target-port
Är inställd på att8080
matcha den port som containern lyssnar på efter begäranden.Utan en
query
egenskap returnerar anropet tillaz containerapp create
ett JSON-svar som innehåller en omfattande uppsättning information om programmet. Om du lägger till en frågeparameter filtreras utdata till bara appens fullständigt kvalificerade domännamn (FQDN).Det här kommandot lägger
acrPull
till rollen i din användartilldelade hanterade identitet, så att den kan hämta avbildningar från containerregistret.
Verifiera distributionen
Kopiera FQDN till en webbläsare. Från webbläsaren navigerar du till /albums
slutpunkten för det fullständiga domännamnet.
Rensa resurser
Om du inte ska fortsätta med självstudien Kommunikation mellan mikrotjänster kan du ta bort de Azure-resurser som skapades under den här snabbstarten. Kör följande kommando för att ta bort resursgruppen tillsammans med alla resurser som skapats i den här snabbstarten.
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
Den här snabbstarten är startpunkten för en uppsättning progressiva självstudier som visar de olika funktionerna i Azure Container Apps. Fortsätt om du vill lära dig hur du aktiverar kommunikation från en webbklientdel som anropar API:et som du distribuerade i den här artikeln.