Share via


使用 az containerapp up 命令部署 Azure Container Apps

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

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

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

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

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

當您提供本機原始碼或 GitHub 存放庫時,命令可以將容器映像建置並推送至 Azure Container Registry (ACR)。 當您從 GitHub 存放庫工作時,它會建立 GitHub Actions 工作流程,當您將變更認可至 GitHub 存放庫時,會自動建置並推送新的容器映像。

如果您需要自定義 Container Apps 環境,請先使用 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. Microsoft.OperationalInsights註冊 Azure 監視器 Log Analytics 工作區的提供者。

    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 則使用 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 Actions 工作流程,以建置容器映射,並在未來將變更推送至 GitHub 存放庫時部署容器應用程式。

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

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

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

up因為命令會建立 GitHub Actions 工作流程,所以重新執行以將變更部署至應用程式映像時,會產生建立多個工作流程的垃圾效果。 相反地,將變更推送至 GitHub 存放庫,而 GitHub 工作流程會自動建置和部署您的應用程式。 若要變更工作流程,請在 GitHub 中編輯工作流程檔案。

下一步