Share via


教學課程:建置應用程式並將其部署至 Azure Container Apps

本文示範如何使用您慣用的程式設計語言,從來源存放庫建置微服務並將其部署至 Azure Container Apps。

這是一系列文章中的第一個教學課程,會逐步引導您瞭解如何在 Azure Container Apps 中使用核心功能。 第一個步驟是建立後端Web API服務,以傳回音樂專輯的靜態集合。

注意

您也可以依照快速入門:從存放庫建置應用程式並將其部署至 Azure Container Apps 一文中的指示,使用 az containerapp up 建置及部署此應用程式。 此命令 az containerapp up 是使用單一命令建置應用程式並將其部署至 Azure Container Apps 的快速便利方式。 不過,它不會為您的容器應用程式提供相同的自定義層級。

系列中的下一個教學課程會建置前端 Web 應用程式,並將其部署至 Azure Container Apps。

下列螢幕快照顯示本教學課程中部署的專輯 API 輸出。

來自專輯 API 端點的回應螢幕快照。

必要條件

若要完成此專案,您需要下列專案:

需求 指示
Azure 帳戶 如果您沒有帳戶,可免費建立帳戶。 您需要 Azure 訂用帳戶的參與者擁有者 許可權才能繼續。

如需詳細資訊,請參閱使用 Azure 入口網站 指派 Azure 角色。
GitHub 帳戶 免費註冊
git 安裝 git
Azure CLI 安裝 Azure CLI
需求 指示
Azure 帳戶 如果您沒有帳戶,可免費建立帳戶。 您需要 Azure 訂用帳戶的參與者擁有者 許可權才能繼續。 如需詳細資訊,請參閱使用 Azure 入口網站 指派 Azure 角色。
GitHub 帳戶 免費註冊
git 安裝 git
Azure CLI 安裝 Azure CLI
Docker Desktop Docker 提供在 macOSWindowsLinux 上設定 Docker 環境的安裝程式。

在命令提示字元中,輸入 docker 以確保 Docker 正在執行。

設定

若要從 CLI 登入 Azure,請執行下列命令,並遵循提示來完成驗證程序。

az login

若要確保您執行最新版的 CLI,請執行升級命令。

az upgrade

接下來,安裝或更新 CLI 的 Azure Container Apps 擴充功能。

az extension add --name containerapp --upgrade

現在已安裝目前的擴充功能或模組,請註冊 Microsoft.AppMicrosoft.OperationalInsights 命名空間。

注意

Azure 容器應用程式資源已從 Microsoft.Web 命名空間移轉至 Microsoft.App 命名空間。 如需詳細資訊,請參閱 2022 年 3 月將命名空間從 Microsoft.Web 移轉至 Microsoft.App

az provider register --namespace Microsoft.App
az provider register --namespace Microsoft.OperationalInsights

建立環境變數

現在,您的 Azure CLI 設定已完成,您可以定義本文中使用的環境變數。

在您的 Bash 殼層中定義下列變數。

RESOURCE_GROUP="album-containerapps"
LOCATION="canadacentral"
ENVIRONMENT="env-album-containerapps"
API_NAME="album-api"
FRONTEND_NAME="album-ui"
GITHUB_USERNAME="<YOUR_GITHUB_USERNAME>"

執行此指令之前,請務必以您的 GitHub 使用者名稱取代 <YOUR_GITHUB_USERNAME>

接下來,定義您唯一的容器登錄名稱。

ACR_NAME="acaalbums"$GITHUB_USERNAME

準備 GitHub 存放庫

流覽至慣用語言的存放庫,並分叉存放庫。

選取專輯 API 存放庫頂端的 [分支] 按鈕,將存放庫分叉至您的帳戶。

現在,您可以複製範例存放庫的分支。

使用下列 git 命令,將分支存放庫 複製到程式代碼到雲端 資料夾:

git clone https://github.com/$GITHUB_USERNAME/containerapps-albumapi-csharp.git code-to-cloud

接下來,將目錄變更為複製存放庫的根目錄。

cd code-to-cloud/src

建立 Azure 資源群組

建立資源群組來組織與容器應用程式部署相關的服務。

az group create \
  --name $RESOURCE_GROUP \
  --location "$LOCATION"

建立 Azure Container Registry

建置專輯 API 容器映射之後,請在您的資源群組中建立 Azure Container Registry (ACR) 實例來儲存它。

az acr create \
  --resource-group $RESOURCE_GROUP \
  --name $ACR_NAME \
  --sku Basic \
  --admin-enabled true

建置您的 應用程式

使用 ACR 工作,您可以建置和推送專輯 API 的 Docker 映射,而不需在本機安裝 Docker。

使用 ACR 建置容器

執行下列命令,以使用 ACR 起始映像建置和推送程式。 .命令結尾的 代表 Docker 建置內容,這表示此命令應該在 Dockerfile 所在的 src 資料夾中執行。

az acr build --registry $ACR_NAME --image $API_NAME .

命令的az acr build輸出會顯示原始程式碼上傳進度至 Azure,以及和 docker push 作業的詳細docker build資料。

建置您的 應用程式

下列步驟示範如何使用 Docker 在本機建置容器映射,並將映像推送至新的容器登錄。

使用 Docker 建置容器

下列命令會建置專輯 API 的容器映像,並以 ACR 登入伺服器的完整名稱標記它。 .命令結尾的 代表 Docker 建置內容,這表示此命令應該在 Dockerfile 所在的 src 資料夾中執行。

docker build --tag $ACR_NAME.azurecr.io/$API_NAME .

將映像推送至您的容器登錄

首先,登入您的 Azure Container Registry。

az acr login --name $ACR_NAME

現在,將映像推送至您的登錄。

docker push $ACR_NAME.azurecr.io/$API_NAME

建立容器應用程式環境

Azure Container Apps 環境可作為容器應用程式群組的安全界限。

使用下列命令建立 Container Apps 環境。

az containerapp env create \
  --name $ENVIRONMENT \
  --resource-group $RESOURCE_GROUP \
  --location "$LOCATION"

將映像部署至容器應用程式

現在您已建立環境,您可以使用 命令來建立及部署容器應用程式 az containerapp create

使用下列命令建立及部署容器應用程式。

az containerapp create \
  --name $API_NAME \
  --resource-group $RESOURCE_GROUP \
  --environment $ENVIRONMENT \
  --image $ACR_NAME.azurecr.io/$API_NAME \
  --target-port 8080 \
  --ingress 'external' \
  --registry-server $ACR_NAME.azurecr.io \
  --query properties.configuration.ingress.fqdn
  • 藉由將 設定 --ingressexternal,您的容器應用程式可從公用因特網存取。

  • target-port設定為 8080 ,以符合容器正在接聽要求的埠。

  • query如果沒有屬性,呼叫 az containerapp create 會傳回 JSON 回應,其中包含一組豐富的應用程式詳細數據。 新增查詢參數只會將輸出篩選為應用程式的完整功能變數名稱 (FQDN)。

驗證部署

將 FQDN 複製到網頁瀏覽器。 從網頁瀏覽器流覽至 /albums FQDN 的端點。

來自專輯 API 端點的回應螢幕快照。

清除資源

如果您不打算繼續進行 微服務 之間的通訊教學課程,您可以移除本快速入門期間建立的 Azure 資源。 執行下列命令來刪除資源群組,以及本快速入門中建立的所有資源。

az group delete --name $RESOURCE_GROUP

提示

有問題嗎? 在 Azure 容器應用程式存放庫中提出問題,讓我們在 GitHub 上了解該問題。

下一步

本快速入門是一組漸進式教學課程的進入點,可展示 Azure Container Apps 內的各種功能。 繼續瞭解如何啟用來自 Web 前端的通訊,以呼叫您在本文中部署的 API。