Dela via


Snabbstart: Distribuera en befintlig containeravbildning med kommandoraden

Med Tjänsten Azure Container Apps kan du köra mikrotjänster och containerbaserade program på en serverlös plattform. Med Container Apps kan du dra nytta av fördelarna med att köra containrar medan du lämnar kvar problemen med manuell konfiguration av molninfrastruktur och komplexa containerorkestrerare.

Den här artikeln visar hur du distribuerar en befintlig container till Azure Container Apps.

Kommentar

Auktorisering av privata register stöds via registeranvändarnamn och lösenord.

Förutsättningar

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

Ange miljövariabler

Ange följande miljövariabler. <PLACEHOLDERS> Ersätt med dina värden:

RESOURCE_GROUP="<RESOURCE_GROUP>"
LOCATION="<LOCATION>"
CONTAINERAPPS_ENVIRONMENT="<CONTAINERAPPS_ENVIRONMENT>"

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 en miljö

En miljö i Azure Container Apps skapar en säker gräns runt en grupp med containerappar. Container Apps som distribueras till samma miljö distribueras i samma virtuella nätverk och skriver loggar till samma Log Analytics-arbetsyta.

Kör följande kommando för att skapa miljön:

az containerapp env create \
  --name $CONTAINERAPPS_ENVIRONMENT \
  --resource-group $RESOURCE_GROUP \
  --location "$LOCATION"

Skapa en containerapp

Nu när du har skapat en miljö kan du distribuera din första containerapp.

  1. Ange miljövariablerna.

    <PLACEHOLDERS> Ersätt med dina värden. Användarens huvudnamn är vanligtvis i formatet för en e-postadress (till exempel username@domain.com).

     CONTAINER_APP_NAME=my-container-app
     KEY_VAULT_NAME=my-key-vault
     USER_PRINCIPAL_NAME=<USER_PRINCIPAL_NAME>
     SECRET_NAME=my-secret-name
     CONTAINER_IMAGE_NAME=<CONTAINER_IMAGE_NAME>
     REGISTRY_SERVER=<REGISTRY_SERVER>
     REGISTRY_USERNAME=<REGISTRY_USERNAME>
    
  2. Skapa nyckelvalvet.

    När du lagrar ditt lösenord för containerregistret med hjälp av en tjänst som Azure Key Vault hålls värdena alltid säkra. Stegen i det här avsnittet visar hur du skapar ett nyckelvalv, lagrar ditt containerregisterlösenord för Key Vault och sedan hämtar lösenordet för användning i koden.

     az keyvault create --name $KEY_VAULT_NAME --resource-group $RESOURCE_GROUP
    
  3. Ge ditt användarkonto behörighet att hantera hemligheter i nyckelvalvet.

     KEY_VAULT_ID=$(az keyvault show --name $KEY_VAULT_NAME --query id --output tsv)
     az role assignment create --role "Key Vault Secrets Officer" --assignee "$USER_PRINCIPAL_NAME" --scope "$KEY_VAULT_ID"
    
  4. Lagra ditt containerregisterlösenord i nyckelvalvet.

    Ersätt <REGISTRY_PASSWORD> med ditt värde.

     az keyvault secret set --vault-name $KEY_VAULT_NAME --name $SECRET_NAME --value "<REGISTRY_PASSWORD>"
    
  5. Hämta ditt containerregisterlösenord från nyckelvalvet.

     REGISTRY_PASSWORD=$(az keyvault secret show --name $SECRET_NAME --vault-name $KEY_VAULT_NAME --query value --output tsv)
    
  6. Distribuera en containeravbildning till Azure Container Apps.

     az containerapp create \
       --name $CONTAINER_APP_NAME \
       --location $LOCATION \
       --resource-group $RESOURCE_GROUP \
       --image $CONTAINER_IMAGE_NAME \
       --environment $CONTAINERAPPS_ENVIRONMENT \
       --registry-server $REGISTRY_SERVER \
       --registry-username $REGISTRY_USERNAME \
       --registry-password $REGISTRY_PASSWORD
    

    Om du har aktiverat ingress i containerappen kan du lägga till --query properties.configuration.ingress.fqdn i create kommandot för att returnera den offentliga URL:en för programmet.

  1. Ange miljövariablerna.

     CONTAINER_APP_NAME=my-container-app
     CONTAINER_IMAGE_NAME=mcr.microsoft.com/k8se/quickstart:latest
    
  2. Distribuera en containeravbildning till Azure Container Apps.

     az containerapp create \
       --image $CONTAINER_IMAGE_NAME \
       --name $CONTAINER_APP_NAME \
       --resource-group $RESOURCE_GROUP \
       --environment $CONTAINERAPPS_ENVIRONMENT
    

    Om du har aktiverat ingress i containerappen kan du lägga till --query properties.configuration.ingress.fqdn i create kommandot för att returnera den offentliga URL:en för programmet.


Verifiera distributionen

Om du vill verifiera en lyckad distribution kan du fråga Log Analytics-arbetsytan. Du kan behöva vänta några minuter efter distributionen för att analyserna ska komma in för första gången innan du kan köra frågor mot loggarna. Detta beror på vilken konsolloggning som implementeras i containerappen.

Använd följande kommandon för att visa konsolloggmeddelanden.

LOG_ANALYTICS_WORKSPACE_CLIENT_ID=`az containerapp env show --name $CONTAINERAPPS_ENVIRONMENT --resource-group $RESOURCE_GROUP --query properties.appLogsConfiguration.logAnalyticsConfiguration.customerId --out tsv`

az monitor log-analytics query \
  --workspace $LOG_ANALYTICS_WORKSPACE_CLIENT_ID \
  --analytics-query "ContainerAppConsoleLogs_CL | where ContainerAppName_s == $CONTAINER_APP_NAME | project ContainerAppName_s, Log_s, TimeGenerated" \
  --out table

Rensa resurser

Om du inte fortsätter att använda det här programmet kör du följande kommando för att ta bort resursgruppen tillsammans med alla resurser som skapats i den här snabbstarten.

Varning

Följande kommando tar bort den angivna resursgruppen och alla resurser som ingår i den. Om det finns resurser utanför omfånget för den här snabbstarten i den angivna resursgruppen 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