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
- Ett Azure-konto med en aktiv prenumeration.
- Om du inte har någon sådan nu kan du skapa en kostnadsfritt.
- Installera Azure CLI.
- Åtkomst till ett offentligt eller privat containerregister, till exempel Azure Container Registry.
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.
Ange miljövariablerna.
<PLACEHOLDERS>
Ersätt med dina värden. Användarens huvudnamn är vanligtvis i formatet för en e-postadress (till exempelusername@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>
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
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"
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>"
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)
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
icreate
kommandot för att returnera den offentliga URL:en för programmet.
Ange miljövariablerna.
CONTAINER_APP_NAME=my-container-app CONTAINER_IMAGE_NAME=mcr.microsoft.com/k8se/quickstart:latest
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
icreate
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.