教學課程:建置應用程式並將其部署至 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 輸出。
必要條件
若要完成此專案,您需要下列專案:
需求 | 指示 |
---|---|
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 提供在 macOS、Windows 和 Linux 上設定 Docker 環境的安裝程式。 在命令提示字元中,輸入 docker 以確保 Docker 正在執行。 |
設定
若要從 CLI 登入 Azure,請執行下列命令,並遵循提示來完成驗證程序。
az login
若要確保您執行最新版的 CLI,請執行升級命令。
az upgrade
接下來,安裝或更新 CLI 的 Azure Container Apps 擴充功能。
az extension add --name containerapp --upgrade
現在已安裝目前的擴充功能或模組,請註冊 Microsoft.App
和 Microsoft.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
藉由將 設定
--ingress
為external
,您的容器應用程式可從公用因特網存取。target-port
設定為8080
,以符合容器正在接聽要求的埠。query
如果沒有屬性,呼叫az containerapp create
會傳回 JSON 回應,其中包含一組豐富的應用程式詳細數據。 新增查詢參數只會將輸出篩選為應用程式的完整功能變數名稱 (FQDN)。
驗證部署
將 FQDN 複製到網頁瀏覽器。 從網頁瀏覽器流覽至 /albums
FQDN 的端點。
清除資源
如果您不打算繼續進行 微服務 之間的通訊教學課程,您可以移除本快速入門期間建立的 Azure 資源。 執行下列命令來刪除資源群組,以及本快速入門中建立的所有資源。
az group delete --name $RESOURCE_GROUP
提示
有問題嗎? 在 Azure 容器應用程式存放庫中提出問題,讓我們在 GitHub 上了解該問題。
下一步
本快速入門是一組漸進式教學課程的進入點,可展示 Azure Container Apps 內的各種功能。 繼續瞭解如何啟用來自 Web 前端的通訊,以呼叫您在本文中部署的 API。