共用方式為


快速入門:在 Azure 容器應用程式中使用 Azure 應用程式組態

在本快速入門中,您會在 Azure Container Apps 中執行的應用程式中使用 Azure 應用程式組態。 如此一來,您就能在容器應用程式中集中儲存和管理您的應用程式設定。 本快速入門會利用快速入門:使用應用程式組態建立 ASP.NET 核心應用程式所建立的 ASP.NET Core 應用程式。 您會將應用程式容器化,並將其部署至 Azure Container Apps。 請先完成快速入門再繼續。

提示

遵循本快速入門時,最佳方式是在單一資源群組內註冊所有新資源,以便您在不需要新資源時可以集中一處將所有資源重新分組,並在稍後更快將其刪除。

必要條件


將 Azure 應用程式組態連線至容器應用程式

  1. 在 Azure 入口網站中,導覽至您的容器應用程式執行個體。

  2. 請遵循適用於 Azure Container Apps 的服務連接器快速入門,使用下列設定,為您的 應用程式組態 存放區建立服務連線。

    1. 在 [基本] 索引標籤中:

      • 在 [服務類型] 底下,選取 [應用程式組態

      • 在 [應用程式組態] 底下,選取您的 應用程式組態 存放區。

        Azure 平台的螢幕擷取畫面,其中顯示容器應用程式中 [服務連接器] 功能表中的表單。

    2. 在 [驗證] 索引標籤中:

      • 選取系統 指派的受控識別 驗證類型
      • 展開 [ 進階 ] 功能表
      • 將身分識別指派 應用程式組態 數據讀取者角色
      • 在 [組態資訊] 底下,您會找到名為 的AZURE_APPCONFIGURATION_ENDPOINT環境變數。 選取右側的鉛筆圖示,然後編輯環境變數名稱,以符合您載入您 應用程式組態 端點的應用程式中的變數名稱。 如果您在 ASP.NET Core 快速入門之後建置應用程式,則變數名稱稱為 Endpoints:AppConfiguration。 編輯變數名稱時,請將冒號取代為雙底線,使其變成 Endpoints__AppConfiguration。 如果您使用另一個應用程式,請輸入對應的環境變數名稱,然後選取 [ 完成]。
    3. 其他所有項目請使用預設值。

    建立連線時,名為 Endpoints__AppConfiguration 的環境變數會新增至容器應用程式資源的容器。 其值是容器應用程式秘密的參考,這是您 應用程式組態 存放區的端點。

建置容器

  1. 執行 dotnet publish 命令,以發行模式建置應用程式,並在已發佈的資料夾建立資產。

    dotnet publish -c Release -o published
    
  2. 在包含 .csproj 檔案的目錄中建立名為 Dockerfile 的檔案,然後在文字編輯器中講其開啟並輸入下列內容。 Dockerfile 是沒有副檔名文字檔,目的是用於建立容器映像。

    FROM mcr.microsoft.com/dotnet/aspnet:6.0 AS runtime
    WORKDIR /app
    COPY published/ ./
    ENTRYPOINT ["dotnet", "TestAppConfig.dll"]
    
  3. 執行下列命令來建置容器。

    docker build --tag aspnetapp .
    

建立 Azure Container Registry 執行個體

建立 Azure Container Registry (ACR)。 ACR 可讓您建置、儲存及管理容器映像。

  1. 若要建立容器登錄,請遵循 Azure Container Registry 快速入門
  2. 部署完成後,請開啟您的 ACR 執行個體,然後從左側功能表中選取 [設定] > [存取金鑰]
  3. 記下此頁面所列的「登入伺服器」值。 您會在稍後的步驟中用到這項資訊。
  4. 將 [管理使用者] 切換為 [已啟用]。 此選項可讓您使用系統管理使用者認證將 ACR 連線至 Azure 容器應用程式。 或者,您可以將其保持為停用狀態,並將容器應用程式設定為使用受控識別從登錄提取映像

將映像推送至 Azure Container Registry

將 Docker 映像推送到之前建立的 ACR。

  1. 執行 az acr login 命令以登入登錄。

    az acr login --name myregistry
    

    登入成功後,命令就會傳回 Login Succeeded

  2. 使用 docker 標籤 來標記適當的映像詳細資料。

    docker tag aspnetapp myregistry.azurecr.io/aspnetapp:v1
    

    提示

    若要檢閱現有 Docker 映像和標籤清單,請執行 docker image ls。 在此案例中,您應該會看到至少兩個映像:aspnetappmyregistry.azurecr.io/aspnetapp

  3. 使用 docker push 將映像推送至容器登錄。 此範例會在包含 aspnetapp 映像的 ACR 中建立 aspnetapp 存放庫。 在下列範例中,請使用 ACR 的登入伺服器值、映像名稱和映像標籤取代預留位置 <login-server<image-name><tag>

    方法:

    docker push <login-server>/<image-name>:<tag>
    

    範例:

    docker push myregistry.azurecr.io/aspnetapp:v1
    
  4. 在 Azure 入口網站中開啟您的 Azure Container Registry,並確認在 [存放庫] 底下可以看到您的新存放庫。

    Azure 平台的螢幕擷取畫面,其中顯示 Azure Container Registry 中的存放庫。

將您容器映像新增至 Azure 容器應用程式

更新您的容器應用程式以從 ACR 載入容器映像。

  1. 在 Azure 入口網站中,開啟您的 Azure 容器應用程式執行個體。

  2. 在左側功能表的 [應用程式] 底下,選取 [容器]

  3. 選取 [編輯並部署]

  4. 在 [容器映像] 底下,按一下現有容器映像的名稱。

  5. 更新下列設定:

    設定 建議的值 描述
    影像來源 Azure Container Registry 選取 [Azure Container Registry] 作為映像來源。
    驗證 管理員認證 使用先前在容器登錄中啟用的管理使用者認證選項。 如果您未啟用管理使用者,但已設定使用受控識別,則必須以手動方式輸入映像和標籤。
    登錄 myregistry.azurecr.io 選取您稍早建立的 Azure Container Registry。
    映像 aspnetapp 選取您稍早建立並推送至 ACR 的 Docker 映像。
    映像標籤 v1 從清單中選取您的映像標籤。
  6. 選取 [儲存],然後選取 [建立] 以將更新部署至 Azure 容器應用程式。

瀏覽至 Azure 容器應用程式的 URL

在 Azure 入口網站的 Azure 容器應用程式執行個體中,前往 [概觀] 索引標籤,然後開啟 [應用程式 URL]

網頁如下所示:

網際網路瀏覽器的螢幕擷取畫面,其中顯示應用程式執行中。

清除資源

如果您不想繼續使用本文中建立的資源,請刪除在此處建立的資源群組,以避免產生費用。

重要

刪除資源群組是無法回復的動作。 資源群組和其中的所有資源都將被永久刪除。 請確定您不會誤刪錯誤的資源群組或資源。 如果您是在包含需保留其他資源的資源群組內部,建立本文的資源,則可以從每個資源各自的窗格中個別刪除每個資源,而不必刪除整個資源群組。

  1. 登入 Azure 入口網站,然後選取 [資源群組]
  2. 在 [依名稱篩選] 方塊中,輸入您資源群組的名稱。
  3. 在結果清單中,選取資源群組名稱以查看概觀。
  4. 選取 [刪除資源群組]
  5. 系統將會要求您確認是否刪除資源群組。 輸入您資源群組的名稱以進行確認,然後選取 [刪除]

不久後,系統便會刪除該資源群組及其所有的資源。

在本快速入門中,您將:

  • 將 Azure 應用程式組態連線至 Azure 容器應用程式
  • 使用 Docker 從具有應用程式組態設定的 ASP.NET Core 應用程式建置容器映像
  • 建立 Azure Container Registry 執行個體
  • 將映像推送至 Azure Container Registry 執行個體
  • 將容器映像新增至 Azure 容器應用程式
  • 瀏覽至 Azure 容器應用程式執行個體的 URL,其中已更新為您在應用程式組態存放區中所設定的設定。

受控識別可讓一個 Azure 資源存取另一個資源,並且不需要維護秘密。 您可以簡化從容器應用程式到其他 Azure 資源的存取。 如需詳細資訊,請參閱如何使用受控識別存取 應用程式組態,以及如何使用受控識別存取 Container Registry。

若要了解如何將 ASP.NET Core Web 應用程式設定為以動態方式重新整理設定設定,請繼續進行下一個教學課程。