快速入門:使用命令列部署現有的容器映像
Azure 容器應用程式服務讓您在無伺服器平台上執行微服務和容器化應用程式。 使用容器應用程式,您會享受執行容器的優點,同時無須顧慮手動設定雲端基礎結構設定和複雜容器協調器的問題。
本文示範如何將現有的容器部署至 Azure 容器應用程式。
注意
透過登錄使用者名稱和密碼可支援私人登錄授權。
必要條件
- 具有有效訂用帳戶的 Azure 帳戶。
- 如果您沒有,可以免費建立一個。
- 安裝 Azure CLI。
- 存取公用或私人容器登錄,例如 Azure Container Registry。
設定
若要從 CLI 登入 Azure,請執行下列命令,並遵循提示來完成驗證流程。
az login
若要確定您執行的是最新版本 CLI,請執行升級命令。
az upgrade
接下來,安裝或更新 CLI 的 Azure 容器應用程式延伸模組。
如果您在 Azure CLI 中執行 az containerapp
命令或 Azure PowerShell 模組中的 Cmdlet Az.App
時收到遺漏參數的錯誤,請確定您已安裝最新版的 Azure 容器應用程式延伸模組。
az extension add --name containerapp --upgrade
注意
從 2024 年 5 月開始,Azure CLI 延伸模組預設不會再啟用預覽功能。 若要存取容器應用程式預覽功能,請使用 --allow-preview true
安裝容器應用程式延伸模組。
az extension add --name containerapp --upgrade --allow-preview true
現在已安裝目前的延伸模組或模組,請註冊 Microsoft.App
和 Microsoft.OperationalInsights
命名空間。
az provider register --namespace Microsoft.App
az provider register --namespace Microsoft.OperationalInsights
設定環境變數
設定下列環境變數。 <PLACEHOLDERS>
取代為您的值:
RESOURCE_GROUP="<RESOURCE_GROUP>"
LOCATION="<LOCATION>"
CONTAINERAPPS_ENVIRONMENT="<CONTAINERAPPS_ENVIRONMENT>"
建立 Azure 資源群組
建立資源群組,以組織與容器應用程式部署相關的服務。
az group create \
--name $RESOURCE_GROUP \
--location "$LOCATION"
建立環境
Azure 容器應用程式中的環境會在容器應用程式群組周圍建立安全界限。 部署至相同環境的容器應用程式會部署在相同的虛擬網路中,並將記錄寫入相同的 Log Analytics 工作區。
若要建立環境,請執行下列命令:
az containerapp env create \
--name $CONTAINERAPPS_ENVIRONMENT \
--resource-group $RESOURCE_GROUP \
--location "$LOCATION"
建立容器應用程式
現在您已建立環境,您可以部署第一個容器應用程式。
設定環境變數。
<PLACEHOLDERS>
將取代為您的值。 您的使用者主體名稱通常格式為電子郵件位址(例如, 。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>
建立金鑰保存庫。
使用 Azure 金鑰保存庫 等服務儲存您的容器登錄密碼,隨時都能保護這些值的安全。 本節中的步驟示範如何建立密鑰保存庫、將容器登錄密碼儲存 金鑰保存庫,然後擷取密碼以用於程式代碼。
az keyvault create --name $KEY_VAULT_NAME --resource-group $RESOURCE_GROUP
提供您的使用者帳戶許可權,以管理金鑰保存庫中的秘密。
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"
將您的容器登錄密碼儲存在金鑰保存庫中。
以您的值取代
<REGISTRY_PASSWORD>
。az keyvault secret set --vault-name $KEY_VAULT_NAME --name $SECRET_NAME --value "<REGISTRY_PASSWORD>"
從金鑰保存庫擷取您的容器登錄密碼。
REGISTRY_PASSWORD=$(az keyvault secret show --name $SECRET_NAME --vault-name $KEY_VAULT_NAME --query value --output tsv)
將容器映像部署至 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
如果您已在容器應用程式上啟用輸入,您可以新增
--query properties.configuration.ingress.fqdn
至create
命令以傳回應用程式的公用URL。
設定環境變數。
CONTAINER_APP_NAME=my-container-app CONTAINER_IMAGE_NAME=mcr.microsoft.com/k8se/quickstart:latest
將容器映像部署至 Azure Container Apps。
az containerapp create \ --image $CONTAINER_IMAGE_NAME \ --name $CONTAINER_APP_NAME \ --resource-group $RESOURCE_GROUP \ --environment $CONTAINERAPPS_ENVIRONMENT
如果您已在容器應用程式上啟用輸入,您可以新增
--query properties.configuration.ingress.fqdn
至create
命令以傳回應用程式的公用URL。
驗證部署
若要確認部署成功,您可以查詢 Log Analytics 工作區。 在您可查詢記錄前,您初次可能必須在部署後等候數分鐘讓分析抵達。 這取決於容器應用程式中實作的控制台記錄。
使用下列命令來檢視控制台記錄訊息。
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
清除資源
如果您不打算繼續使用此應用程式,請執行下列命令來刪除資源群組,以及本快速入門中建立的所有資源。
警告
下列命令會刪除指定的資源群組和其中包含的所有資源。 如果本快速入門範圍以外的資源存在於指定的資源群組中,則也會一併刪除。
az group delete --name $RESOURCE_GROUP
提示
有問題嗎? 在 Azure 容器應用程式存放庫中提出問題,讓我們在 GitHub 上了解該問題。