分享方式:


使用 az containerapp up 命令部署 Azure 容器應用程式

az containerapp up (或 up) 命令是最快的方式,透過現有映像、本機原始程式碼或 GitHub 存放庫,在 Azure 容器應用程式中部署應用程式。 透過單一命令,您可在幾分鐘內啟動並執行容器應用程式。

az containerapp up 命令是簡化的方式來建立和部署主要使用預設設定的容器應用程式。 不過,您必須執行其他 CLI 命令來設定更進階的設定:

若要自訂容器應用程式的資源或調整設定,您可使用 up 命令,接著使用 az containerapp update 命令來變更這些設定。 az containerapp up 命令不是 az containerapp update 命令的縮寫。

up 命令可建立或使用現有資源,包含:

  • 資源群組
  • Azure Container Registry
  • 容器應用程式環境和 Log Analytics 工作區
  • 您的容器應用程式

當您提供本機來源程式碼或 GitHub 存放庫時,命令可建置容器映像並將其推送至 Azure Container Registry (ACR)。 當透過 GitHub 存放庫作業時,將會建立 GitHub Actions 工作流程,在認可對 GitHub 存放庫的變更時隨即自動建置並推送新容器映像。

如果您必須自訂容器應用程式環境,請先使用 az containerapp env create 命令建立環境。 如果您未提供現有環境,up 命令會在現有群組中尋找環境,如果找到,則會使用該環境。 若未找到,則會使用 Log Analytics 工作區建立環境。

若要深入了解 az containerapp up 命令和其選項,請參閱 az containerapp up

必要條件

需求 指示
Azure 帳戶 如果您沒有帳戶,可免費建立帳戶。 您需要 Azure 訂用帳戶的「參與者」或「擁有者」權限才能繼續。 如需詳細資料,請參閱使用 Azure 入口網站指派 Azure 角色
GitHub 帳戶 如果您使用 GitHub 存放庫,請免費註冊。
Azure CLI 安裝 Azure CLI
本機原始程式碼 如果您使用原始程式碼,您必須有本機原始程式碼目錄。
現有映像 如果使用現有映像,您需要登錄伺服器、映像名稱和標籤。 如果使用私人登錄,您需要認證。

設定

  1. 使用 Azure CLI 登入 Azure。

    az login
    
  2. 接下來,安裝 CLI 的 Azure 容器應用程式擴充功能。

    az extension add --name containerapp --upgrade
    
  3. 現在已安裝目前的擴充功能或模組,請註冊 Microsoft.App 命名空間。

    az provider register --namespace Microsoft.App
    
  4. 註冊 Azure 監視器 Log Analytics 工作區的 Microsoft.OperationalInsights 提供者。

    az provider register --namespace Microsoft.OperationalInsights
    

透過現有映像部署

您可在公用或私人容器登錄中部署使用現有映像的容器應用程式。 如果透過私人登錄部署,您必須使用 --registry-server--registry-username--registry-password 選項來提供認證。

在此範例中,az containerapp up 命令會執行下列動作:

  1. 建立資源群組。
  2. 建立環境和 Log Analytics 工作區。
  3. 建立和部署從公用登錄提取映像的容器應用程式。
  4. 將容器應用程式的輸入設定為外部,並將目標連接埠設定為指定的值。

執行下列命令,透過現有映像部署容器應用程式。 將 <PLACEHOLDERS> 取代為您的值。

az containerapp up \
  --name <CONTAINER_APP_NAME> \
  --image <REGISTRY_SERVER>/<IMAGE_NAME>:<TAG> \
  --ingress external \
  --target-port <PORT_NUMBER> 

您可使用 up 命令來重新部署容器應用程式。 如果使用新映像重新部署,請使用 --image 選項來指定新映像。 請確定 --resource-groupenvironment 選項皆設定為與原始部署相同的值。

az containerapp up \
  --name <CONTAINER_APP_NAME> \
  --image <REGISTRY_SERVER>/<IMAGE_NAME>:<TAG> \
  --resource-group <RESOURCE_GROUP_NAME> \
  --environment <ENVIRONMENT_NAME> \
  --ingress external \
  --target-port <PORT_NUMBER> 

透過本機原始程式碼部署

當使用 up 命令以透過本機來源部署時,將建置容器映像並將其推送至登錄,然後部署容器應用程式。 如果未提供登錄,則會在 Azure Container Registry 中建立登錄。

命令可使用或不使用 Dockerfile 建立映像。 如果未使用 Dockerfile 建置,則會支援下列語言:

  • .NET
  • Node.js
  • PHP
  • Python

下列範例顯示如何透過本機來源程式碼部署容器應用程式。

在此範例中,az containerapp up 命令會執行下列動作:

  1. 建立資源群組。
  2. 建立環境和 Log Analytics 工作區。
  3. 在 Azure Container Registry 中建立登錄。
  4. 建置容器映像 (如有,請使用 Dockerfile)。
  5. 將映像推送至登錄。
  6. 建立和部署容器應用程式。

請執行下列命令來透過本機來源程式碼部署容器應用程式:

    az containerapp up \
      --name <CONTAINER_APP_NAME> \
      --source <SOURCE_DIRECTORY>\
      --ingress external 

當 Dockerfile 包含 EXPOSE 指令,up 命令會使用 Dockerfile 中的資訊來設定容器應用程式的輸入和目標連接埠。

如果您透過 Dockerfile 設定輸入或應用程式不需要輸入,則可省略 ingress 選項。

命令的輸出包含容器應用程式的 URL。

如果發生失敗,您可使用 --debug 再次執行命令以取得失敗的詳細資訊。 如果未使用 Dockerfile 而組建發生失敗,您可嘗試新增 Dockerfile 並再次執行命令。

若要使用 az containerapp up 命令,透過更新的映像來重新部署容器應用程式,請包含 --resource-group--environment 引數。 下列範例顯示如何透過本機來源程式碼重新部署容器應用程式。

  1. 變更來源程式碼。

  2. 執行以下命令:

    az containerapp up \
      --name <CONTAINER_APP_NAME> \
      --source <SOURCE_DIRECTORY> \
      --resource-group <RESOURCE_GROUP_NAME> \
      --environment <ENVIRONMENT_NAME>
    

透過 GitHub 存放庫部署

當使用 az containerapp up 命令來透過 GitHub 存放庫部署時,將會產生 GitHub Actions 工作流程以建置容器映像、將其推送至登錄,然後部署容器應用程式。 如果您沒有登錄,命令會在 Azure Container Registry 中建立登錄。

建置映像需要 Dockerfile。 當 Dockerfile 包含 EXPOSE 指令時,命令會使用 Dockerfile 中的資訊來設定容器應用程式的輸入和目標連接埠。

下列範例顯示如何透過 GitHub 存放庫部署容器應用程式。

在此範例中,az containerapp up 命令會執行下列動作:

  1. 建立資源群組。
  2. 建立環境和 Log Analytics 工作區。
  3. 在 Azure Container Registry 中建立登錄。
  4. 使用 Dockerfile 建置容器映像。
  5. 將映像推送至登錄。
  6. 建立和部署容器應用程式。
  7. 當將未來變更推送至 GitHub 存放庫時,請建立 GitHub Actions 工作流程以建置容器映像並部署容器應用程式。

若要透過 GitHub 存放庫部署應用程式,請執行下列命令:

az containerapp up \
  --name <CONTAINER_APP_NAME> \
  --repo <GitHub repository URL> \
  --ingress external 

如果您透過 Dockerfile 設定輸入或應用程式不需要輸入,則可省略 ingress 選項。

由於 up 命令會建立 GitHub Actions 工作流程,因此重新執行命令以將變更部署至應用程式映像,導致建立多個不必要的工作流程。 相反地,將變更推送至 GitHub 存放庫,而 GitHub 工作流程會自動建置並部署應用程式。 若要變更工作流程,請編輯 GitHub 中的工作流程檔案。

下一步