共用方式為


設定容器映像以執行部署

在本文中,您將了解如何組建自訂 Bicep 容器映像,以在 Azure 部署環境 (ADE) 中部署您的環境定義 (部分機器翻譯)。

在本文中,您將了解如何透過自訂 Terraform 容器映像,在 Azure 部署環境 (ADE) 中部署您的環境定義。 您會了解如何如何使用 Terraform 基礎結構即程式碼 (IaC) 架構來設定自訂映像以佈建基礎結構。

在本文中,您會了解如何利用 Pulumi 在 Azure 部署環境 (ADE) 中部署。 您會了解如何使用 Pulumi 所提供的範例映像,或如何使用 Pulumi 基礎結構即程式碼 (IaC) 架構來設定自訂映像以佈建基礎結構。

ADE 支援擴充性模型,能讓您建立可在環境定義中使用的自訂映像。 若要使用擴充性模型,請建立自己的自訂映像,並將其儲存在 Azure Container Registry (ACR) 或 Docker Hub 等容器登錄中。 然後,您可以在環境定義中參考這些映像來部署環境。

環境定義至少包含兩個檔案:一個範本檔案,如 azuredeploy.jsonmain.bicep,以及一個名為 environment.yaml 的資訊清單檔。 ADE 使用容器來部署環境定義。

ADE 團隊提供一系列可讓您開始使用的映像,包括一個核心映像以及一個 Azure Resource Manager (ARM)-Bicep 映像。 您可以在 Runner-Images 資料夾中存取這些範例映像。

環境定義至少包含兩個檔案:一個範本檔案,如 main.tf 以及一個名為 environment.yaml 的資訊清單檔。 您可以使用容器來部署使用 Terraform 的環境定義。

環境定義至少包含兩個檔案:Pulumi 專案檔 Pulumi.yaml,以及名為 environment.yaml 的資訊清單檔。 它也可能包含以您慣用的程式設計語言撰寫的使用者程式:C#、TypeScript、Python 等等。ADE 使用容器來部署環境定義。

必要條件

在 ADE 使用容器映像

您可以採取下列其中一種方法,在 ADE 使用容器映像:

  • 使用範例容器映像:若是簡單的案例,請使用 ADE 提供的範例 ARM-Bicep 容器映像。
  • 建立自訂容器映像:若是較複雜的案例,請建立符合您特定需求的自訂容器映像。

使用容器映像時,您將遵循的主要步驟如下:

  1. 選擇您想要使用的影像類型: 範例影像或自訂映像。
    • 如果您使用自訂映像,請從範例映像開始,然後加以自訂以符合您的需求。
  2. 建置映像。
  3. 將映像上傳至私人登錄或公用登錄。
  4. 設定登錄的存取權。
    • 針對公用登錄,設定匿名提取。
    • 針對私人登錄,請提供 DevCenter ACR 權限。
  5. 將映像位置新增至環境定義中的 runner 參數
  6. 部署使用自訂映像的環境。

流程中的第一個步驟是選擇您想要使用的映像類型。 選取對應的索引標籤以查看流程。

使用範例容器映像

ADE 支援 ARM 和 Bicep,而不需要任何額外的設定。 您可以透過將範本檔案 (例如 azuredeploy.jsonenvironment.yaml) 新增至目錄,來建立為部署環境部署 Azure 資源的環境定義。 ADE 接著使用範例 ARM-Bicep 容器映像來建立部署環境。

environment.yaml 檔案中,runner 屬性會指定您想要使用的容器映像位置。 若要使用 Microsoft 成品登錄上發行的範例映像,請使用個別識別碼 runner

下列範例顯示參考範例 ARM-Bicep 容器映像的 runner

    name: WebApp
    version: 1.0.0
    summary: Azure Web App Environment
    description: Deploys a web app in Azure without a datastore
    runner: Bicep
    templatePath: azuredeploy.json

您可以在 ADE 範例存放庫中 ARM-Bicep 映像的 Runner-Images 資料夾下,看到範例 Bicep 容器映像。

如需如何建立使用 ADE 容器映像來部署 Azure 資源的環境定義詳細資訊,請參閱新增和設定環境定義 (部分機器翻譯)。

使用自定義映像來設定 Terraform 映像。

使用 Pulumi 所提供的範例容器映像

Pulumi 團隊會提供預先建置的影像以協助您開始使用,您可以在 [Runner-Image] 資料夾中看到。 此映像在 Pulumi 的 Docker Hub 公開提供, pulumi/azure-deployment-environments,因此您可以直接從 ADE 環境定義中使用它。

以下是利用預先建置映像的範例 environment.yaml 檔案:

name: SampleDefinition
version: 1.0.0
summary: First Pulumi-Enabled Environment
description: Deploys a Storage Account with Pulumi
runner: pulumi/azure-deployment-environments:0.1.0
templatePath: Pulumi.yaml

您可以在 [環境] 資料夾中找到幾個範例環境定義。

建置映像

您可以使用 Docker CLI 建置映像。 請確定您的電腦已安裝 Docker 引擎。 然後,瀏覽至 Dockerfile 的目錄,並執行下列命令:

docker build . -t {YOUR_REGISTRY}.azurecr.io/{YOUR_REPOSITORY}:{YOUR_TAG}

例如,若您要將映像儲存在名為 customImage 之登錄內的存放庫下,並以標記版本 1.0.0 上傳,您會執行:

docker build . -t {YOUR_REGISTRY}.azurecr.io/customImage:1.0.0

讓自訂映像可供 ADE 使用

若要使用自訂映像,您必須將其儲存於容器登錄中。 您可以使用公用容器登錄或私人容器登錄。 強烈建議使用 Azure Container Registry (ACR),因為其與 ADE 緊密整合,因此可以發佈映像,而不需要允許公用匿名提取存取。 您必須組建自訂容器映像,並將其推送至容器登錄,使其可用於 ADE。

也可以將映像儲存在如 Docker Hub 等不同的容器登錄中,但在這種情況下,必須可供公開存取。

警告

將容器映像儲存在使用匿名 (未經驗證) 提取存取的登錄中,可讓其可供公開存取。 如果您的映像包含任何敏感性資訊,請不要執行該動作。 請改為將其儲存在已停用匿名提取存取的 Azure Container Registry (ACR) 中。

若要使用儲存在 ACR 中的自訂映像,需要確保 ADE 具有存取您映像的適當權限。 當您建立 ACR 執行個體時,其預設是安全的,而且只允許已驗證的使用者取得存取權。

您可以使用 Pulumi 建立 Azure Container Registry 並向其發佈映像。 如需在 Azure 帳戶中建立所有必要資源的獨立 Pulumi 專案,請參閱佈建/自訂映像範例 (英文)。

請選取適當的索引標籤,以深入了解各方法。

使用具有安全存取權的私人登錄

根據預設,只有已驗證的使用者才有從 Azure Container Registry 提取或推送內容的存取權。 您可以限制來自特定網路的存取,並指派特定角色,以進一步保護對 ACR 的存取。

若要建立 ACR 的執行個體 (可透過 Azure CLI、Azure 入口網站、PowerShell 命令等方式完成),請遵循其中一個快速入門

限制網路存取

若要保護對 ACR 的網路存取,可以限制僅限您自己的網路存取,或完全停用公用網路存取。 如果您限制網路存取,就必須啟用防火牆例外「允許信任的 Microsoft 服務存取此容器登錄」

若要停用從公用網路存取:

  1. 建立 ACR 執行個體或使用現有執行個體。

  2. 在 Azure 入口網站中,前往您想要設定的 ACR。

  3. 在左側功能表的 [設定] 下,選取 [網路]

  4. 在 [網路] 頁面的 [公用存取] 索引標籤中,選取 [公用網路存取] 下的 [停用]

    顯示 ACR 網路設定,並醒目提示 [公用存取] 和 [停用] 的 Azure 入口網站螢幕擷取畫面。

  5. 在 [防火牆例外] 下確認已選取 [允許信任的 Microsoft 服務存取此容器登錄],然後選取 [儲存]

    ACR 網路設定的螢幕擷取畫面,其中醒目提示 [允許信任的 Microsoft 服務存取此容器登錄] 和 [儲存]。

指派 AcrPull 角色

若使用容器映像建立環境,就會使用 ADE 基礎結構,包括專案和環境類型。 每個專案都有一或多個專案環境類型,這些專案環境類型需要容器映像 (定義要部署的環境) 的讀取存取。 若要在 ACR 內安全存取映像,請將 AcrPull 角色指派給每個專案環境類型。

若要將 AcrPull 角色指派給專案環境類型:

  1. 在 Azure 入口網站中,前往您想要設定的 ACR。

  2. 在左側功能表中,選取存取控制 (IAM)

  3. 選取 [新增>][新增角色指派]。

  4. 指派下列角色。 如需詳細步驟,請參閱使用 Azure 入口網站指派 Azure 角色

    設定
    Role 選取 [AcrPull]
    指派存取權至 選取 [使用者、群組或服務主體]
    成員 輸入需要存取容器中映像的專案環境類型名稱。

    隨即顯示專案環境類型,如下列範例所示:

    [選取成員] 窗格的螢幕擷取畫面,其中顯示醒目提示一部分名稱的專案環境類型清單。

在此設定中,ADE 會針對 PET 使用受控識別,無論是系統指派還是使用者指派。

提示

必須為每種專案環境類型進行此角色指派。 可以透過 Azure CLI 進行自動化。

當您準備好將映像推送至登錄時,請執行下列命令:

docker push {YOUR_REGISTRY}.azurecr.io/{YOUR_IMAGE_LOCATION}:{YOUR_TAG}

使用指令碼組建容器映像

您可以使用指令碼來建置並推送至指定的容器登錄,而不是自行建置自訂映像並將其推送至容器登錄。

Microsoft 提供快速入門指令碼,協助您建置自訂映像,並將其推送至登錄。 指令碼會組建您的映像,並將其推送至存放庫 ade 和標籤 latest 下指定的 Azure Container Registry (ACR)。

若要使用指令碼,您必須:

  1. 建立 Dockerfile 和指令碼資料夾,以支援 ADE 擴充性模型。
  2. 為自訂映像提供登錄名稱和目錄。
  3. 安裝 Azure CLI 和 Docker Desktop 並新增至 PATH 變數中。
  4. 讓 Docker Desktop 執行。
  5. 具有推送至指定登錄的權限。

您可以在這裡檢視指令碼。

您可以在 PowerShell 中使用下列命令呼叫指令碼:

.\quickstart-image-build.ps1 -Registry '{YOUR_REGISTRY}' -Directory '{DIRECTORY_TO_YOUR_IMAGE}'

此外,如果您想要推送至特定的存放庫和標籤名稱,您可以執行:

.\quickstart-image.build.ps1 -Registry '{YOUR_REGISTRY}' -Directory '{DIRECTORY_TO_YOUR_IMAGE}' -Repository '{YOUR_REPOSITORY}' -Tag '{YOUR_TAG}'

將映像連線到您的環境定義

製作環境定義以在部署中使用您的自訂映像時,請在資訊清單檔 (environment.yaml 或 manifest.yaml) 上編輯 runner 屬性。

runner: "{YOUR_REGISTRY}.azurecr.io/{YOUR_REPOSITORY}:{YOUR_TAG}"

若要深入了解如何建立使用 ADE 容器映像部署 Azure 資源的環境定義,請參閱新增和設定環境定義