使用 Azure Pipelines 和 Cloud Run 建立 CI/CD 管道

本教學課程說明如何使用 Azure Pipelines、Cloud Run 和 Container Registry,為 ASP.NET MVC Core 網頁應用程式建立持續整合/持續部署 (CI/CD) 管道。

CI/CD 管道會使用兩個 Cloud de Confiance 專案,一個用於開發,另一個用於正式環境,如下圖所示。

Azure 建構和發布管道與 Google Cloud 正式環境和開發管道互動的架構。

在管道的開頭,開發人員會將變更內容提交至範例程式碼庫。這項動作會觸發管道建立版本,並將版本部署至開發叢集中的 Cloud Run。接著,發布管理員會推送版本,部署至正式版專案。

本教學課程適用於開發人員和 DevOps 工程師。本文假設您具備 .NET、Azure Pipelines、Cloud Run 和 git 的基礎知識。如要完成本教學課程,您需要 Azure DevOps 帳戶的管理員存取權。

目標

  • 將 Artifact Registry 連結至 Azure Pipelines,發布 Docker 映像檔。
  • 準備.NET 範例應用程式,以便部署至 Cloud Run。
  • 設定 Azure Pipelines 與 Cloud de Confiance by S3NS之間的驗證。
  • 使用 Azure Pipelines 版本管理功能,協調 Cloud Run 部署作業。

費用

在本文件中,您將使用下列 Cloud de Confiance by S3NS計費元件:

完成本文所述工作後,您可以刪除建立的資源,避免繼續計費,詳情請參閱「清除所用資源」一節。

如要瞭解使用 Azure DevOps 可能產生的費用,請參閱 Azure DevOps 定價頁面。

事前準備

在本教學課程中,您會使用兩個不同的專案,一個用於開發,另一個用於正式環境。使用個別專案可讓您在將版本部署至正式環境前進行測試,也能個別管理 Identity and Access Management (IAM) 角色和權限。

  1. 建立開發專案。 Cloud de Confiance 本教學課程將這個專案稱為「開發專案」。
  2. 建立正式版專案。 Cloud de Confiance 本教學課程將這個專案稱為「正式環境專案」。
  3. 確認 Cloud de Confiance 專案已啟用計費功能。

  4. 請確認您有 Azure DevOps 帳戶,並具備管理員存取權。如果還沒有 Azure DevOps 帳戶,請前往 Azure DevOps 首頁註冊。

建立 Azure DevOps 專案

您可以使用 Azure DevOps 管理原始碼、執行建構和測試,以及協調部署至 Cloud Run 的作業。首先,請在 Azure DevOps 帳戶中建立專案。

  1. 前往 Azure DevOps 首頁 (https://dev.azure.com/YOUR_AZURE_DEVOPS_ACCOUNT_NAME)。
  2. 按一下「New Project」。
  3. 輸入專案名稱,例如 CloudDemo。
  4. 將「Visibility」設為「Private」,然後按一下 [Create project]。
  5. 建立專案後,按一下左選單中的「Repos」。
  6. 按一下「Import」(匯入),從 GitHub 建立 dotnet-docs-samples 存放區分支,然後設定下列值:
    • 存放區類型:Git
    • 複製網址:https://github.com/GoogleCloudPlatform/dotnet-docs-samples.git
  7. 按一下「匯入」。

    匯入程序完成後,您會看到 dotnet-docs-samples 存放區的原始碼。

將 Azure Pipelines 連線至 Artifact Registry

如要為 CloudDemo 應用程式設定持續整合,請先將 Azure Pipelines 連線至 Artifact Registry。Azure Pipelines 就能透過這個連線,將容器映像檔發布至 Artifact Registry。

設定用於發布圖片的服務帳戶

在正式版專案中建立Cloud de Confiance 服務帳戶:

  1. 在 Cloud de Confiance 控制台中,切換至實際工作環境專案。
  2. 在 Cloud de Confiance 控制台中啟用 Cloud Shell。

    啟用 Cloud Shell

  3. 初始化下列環境變數:

    DEV_PROJECT_ID=DEV_PROJECT_ID
    PROD_PROJECT_ID=PROD_PROJECT_ID
    

    更改下列內容:

    • DEV_PROJECT_ID:開發專案的專案 ID
    • PROD_PROJECT_ID:生產專案的專案 ID
  4. 在正式版專案中啟用 Artifact Registry API:

    gcloud services enable artifactregistry.googleapis.com \
        --project=$PROD_PROJECT_ID
    
  5. 建立 Artifact Registry 存放區,用於儲存 Docker 映像檔:

    gcloud artifacts repositories create docker  \
        --project=$PROD_PROJECT_ID \
        --repository-format=docker \
        --location REGION
    

    將 REGION 替換為 Artifact Registry 存放區的區域,例如 us-central1。

  6. 建立 Azure Pipelines 用來發布 Docker 映像的服務帳戶:

    gcloud iam service-accounts create azure-pipelines-publisher \
        --display-name="Azure Pipelines Publisher" \
        --project=$PROD_PROJECT_ID
    
  7. 將Artifact Registry 寫入者角色 (roles/artifactregistry.writer) 授予服務帳戶,允許 Azure Pipelines 推送至 Artifact Registry:

    AZURE_PIPELINES_PUBLISHER=azure-pipelines-publisher@$PROD_PROJECT_ID.s3ns.iam.gserviceaccount.com
    
    gcloud projects add-iam-policy-binding $PROD_PROJECT_ID \
        --member serviceAccount:$AZURE_PIPELINES_PUBLISHER \
        --role roles/artifactregistry.writer \
        --project=$PROD_PROJECT_ID
    
  8. 產生服務帳戶金鑰:

    gcloud iam service-accounts keys create azure-pipelines-publisher.json \
        --iam-account $AZURE_PIPELINES_PUBLISHER \
        --project=$PROD_PROJECT_ID
    
    tr -d '\n' < azure-pipelines-publisher.json > azure-pipelines-publisher-oneline.json
    
  9. 查看服務帳戶金鑰檔案的內容:

    echo $(<azure-pipelines-publisher-oneline.json)
    

    您會在後續步驟中用到服務帳戶金鑰。

為 Artifact Registry 建立服務連線

在 Azure Pipelines 中,為 Artifact Registry 建立新的服務連線:

  1. 在 Azure DevOps 選單中,依序選取「專案設定」和「Pipelines」 >「Service connections」。
  2. 按一下「建立服務連線」。
  3. 從清單中選取 Docker Registry,然後按一下 下一步。
  4. 在對話方塊中,在下列欄位輸入這些值:

    • 登記類型:其他
    • Docker 登錄檔:https://REGION-docker.pkg.dev/PROD_PROJECT_ID/docker/

      更改下列內容:

      • REGION:Artifact Registry 存放區的區域
      • PROD_PROJECT_ID:換成您的正式版專案名稱
    • Docker ID:_json_key

    • 密碼:貼上 azure-pipelines-publisher-oneline.json 的內容。

    • 服務連線名稱:gcr-tutorial

  5. 按一下「儲存」即可建立連結。

持續建構

您現在可以使用 Azure Pipelines 設定持續整合。每當有任何提交推送至 Git 存放區,Azure Pipelines 就會建構程式碼,並將建構構件封裝至 Docker 容器。然後將容器發布至 Artifact Registry。

存放區已包含下列 Dockerfile:

#
# Copyright 2020 Google LLC
#
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements.  See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership.  The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License.  You may obtain a copy of the License at
# 
#   http://www.apache.org/licenses/LICENSE-2.0
# 
# Unless required by applicable law or agreed to in writing,
# software distributed under the License is distributed on an
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
# KIND, either express or implied.  See the License for the
# specific language governing permissions and limitations
# under the License.
#

FROM mcr.microsoft.com/dotnet/aspnet:6.0
EXPOSE 8080

#------------------------------------------------------------------------------
# Copy publishing artifacts.
#------------------------------------------------------------------------------

WORKDIR /app
COPY CloudDemo.MvcCore/bin/Release/net6.0/publish/ /app/

ENV ASPNETCORE_URLS=http://0.0.0.0:8080

#------------------------------------------------------------------------------
# Run application in Kestrel.
#------------------------------------------------------------------------------

ENTRYPOINT ["dotnet", "CloudDemo.MvcCore.dll"]

現在,請使用 YAML 語法建立新的管道:

  1. 使用 Visual Studio 或指令列 git 用戶端,複製新的 Git 存放區。
  2. 在存放區的根目錄中,建立名為 azure-pipelines.yml 的檔案。
  3. 將下列程式碼複製到檔案中:

    resources:
    - repo: self
      fetchDepth: 1
    pool:
      vmImage: ubuntu-22.04
    trigger:
    - master
    variables:
      TargetFramework: 'net6.0'
      BuildConfiguration: 'Release'
      DockerImageName: 'PROD_PROJECT_ID/docker/CloudDemo'
    steps:
    - task: DotNetCoreCLI@2
      displayName: Publish
      inputs:
        projects: 'applications/clouddemo/netcore/CloudDemo.MvcCore.sln'
        publishWebProjects: false
        command: publish
        arguments: '--configuration $(BuildConfiguration) --framework=$(TargetFramework)'
        zipAfterPublish: false
        modifyOutputPath: false
    - task: PublishBuildArtifacts@1
      displayName: 'Publish Artifact'
      inputs:
        PathtoPublish: '$(build.artifactstagingdirectory)'
    - task: Docker@2
      displayName: 'Login to Container Registry'
      inputs:
        command: login
        containerRegistry: 'gcr-tutorial'
    - task: Docker@2
      displayName: 'Build and push image'
      inputs:
        Dockerfile: 'applications/clouddemo/netcore/Dockerfile'
        command: buildAndPush
        repository: '$(DockerImageName)'

    將 PROJECT_ID 替換為正式版專案的名稱,然後儲存檔案。

    由於 Cloud Run 是以 Linux 為基礎的環境,因此管道會使用 Linux 建構代理程式。

  4. 提交變更並推送至 Azure Pipelines。

    Visual Studio

    1. 開啟 Team Explorer,然後按一下「首頁」圖示。
    2. 按一下 [Changes] (變更)。
    3. 輸入修訂訊息,例如 Add pipeline definition。
    4. 按一下 [Commit All and Push] (全部認可並推送)。

    指令列

    1. 暫存所有已修改的檔案:

      git add -A
      
    2. 將變更提交至本機存放區:

      git commit -m "Add pipeline definition"
      
    3. 將變更推送至 Azure DevOps:

      git push
      
  5. 在 Azure DevOps 選單中選取「Pipelines」(管線),然後按一下「Create Pipeline」(建立管線)。

  6. 選取「Azure Repos Git」。

  7. 選取存放區。

  8. 在「Review your pipeline YAML」(檢查管道 YAML) 頁面中,按一下「Run」(執行)。

    系統會觸發新的建構程序。建構作業大約需要兩分鐘才能完成。

  9. 如要確認映像檔已發布至 Artifact Registry,請在控制台中切換至正式版專案,依序選取「Artifact Registry」 >「docker」,然後按一下「CloudDemo」。 Cloud de Confiance

    畫面上會顯示單一圖片和該圖片的標記。這個標記對應於在 Azure Pipelines 中執行的建構版本數字 ID。

持續部署

Azure Pipelines 已可自動建構程式碼並為每個修訂版本發佈 Docker 映像檔。因此,您現在可以專注在部署上。

與其他持續整合系統不同,Azure Pipelines 會區分建構和部署作業,並提供一組標示為「發布管理」的專用工具,用於處理所有部署相關工作。

Azure Pipelines Release Management 是根據下列概念建構而成:

  • 發行版本是指構成特定應用程式版本的構件組合,通常是建構程序的結果。
  • 「部署」是指建立版本,並將它部署至特定環境中的過程。
  • 部署作業會執行一組工作,這些工作可以分組為工作。
  • 階段可讓您區隔管道,並用於協調部署至多個環境 (例如開發和測試環境)。

您設定了發布管道,每當新版本建構完成時,就會觸發管道。管道包含兩個階段:開發和製作。在每個階段,發布管道都會使用建構管道產生的 Docker 映像檔,然後將其部署至 Cloud Run。

您先前設定的建構管道會先使用建構 ID 標記每個 Docker 映像檔,再將其發布至 Artifact Registry。因此,在發布管道中,您可以使用 $BUILD_BUILDID 變數來找出要部署的正確 Docker 映像檔。

設定 Cloud Run

Cloud Run 是全代管的無伺服器環境,因此您不必佈建任何基礎架構。為確保 Cloud Run 部署作業安全無虞,您需要設定 IAM。

如下圖所示,部署及執行 Cloud Run 服務會涉及多個身分。

在 Cloud Run 部署作業中以服務帳戶身分執行的身分。

每個身分都以服務帳戶的形式實作,並用於特定用途,如下表所述。

服務帳戶 使用對象 Purpose 必要角色
Azure Pipelines Publisher 建構管道 將 Docker 映像檔發布至 Artifact Registry roles/artifactregistry.writer (僅限正式專案)
Azure Pipelines Deployer 發布管道 啟動 Cloud Run 部署作業 roles/run.admin
啟動 CloudDemo 服務 roles/iam.serviceAccountUser
Cloud Run 服務代理 Cloud Run 從 Artifact Registry 提取 Docker 映像檔 roles/artifactregistry.reader (僅限正式專案)
CloudDemo 執行者 (執行階段服務帳戶) CloudDemo 服務 存取 Cloud de Confiance上的資源 無

您已建立並設定 Azure Pipelines Publisher 服務帳戶。在接下來的章節中,您將建立及設定其餘服務帳戶。

設定 Cloud Run 服務帳戶

  1. 開啟 Cloud Shell。

  2. 初始化下列環境變數:

    DEV_PROJECT_ID=DEV_PROJECT_ID
    PROD_PROJECT_ID=PROD_PROJECT_ID
    

    更改下列內容:

    • DEV_PROJECT_ID:開發專案的專案 ID
    • PROD_PROJECT_ID:生產專案的專案 ID
  3. 在開發和產品專案中啟用 Cloud Run 和 Compute Engine API:

    gcloud services enable run.googleapis.com --project=$DEV_PROJECT_ID
    gcloud services enable run.googleapis.com --project=$PROD_PROJECT_ID
    

    啟用這些 API 後,系統會在專案中建立 Cloud Run 服務代理程式帳戶。

  4. 在儲存 Docker 映像檔的正式版專案中,授予兩個 Cloud Run 服務代理帳戶 Artifact Registry 的存取權:

    DEV_PROJECT_NUMBER=$(gcloud projects describe $DEV_PROJECT_ID \
        --format='value(projectNumber)')
    PROD_PROJECT_NUMBER=$(gcloud projects describe $PROD_PROJECT_ID \
        --format='value(projectNumber)')
    
    gcloud projects add-iam-policy-binding $PROD_PROJECT_ID \
        --member=serviceAccount:service-$DEV_PROJECT_NUMBER@serverless-robot-prod.s3ns-system.iam.gserviceaccount.com \
        --role roles/artifactregistry.reader
    
    gcloud projects add-iam-policy-binding $PROD_PROJECT_ID \
        --member=serviceAccount:service-$PROD_PROJECT_NUMBER@serverless-robot-prod.s3ns-system.iam.gserviceaccount.com \
        --role roles/artifactregistry.reader
    

設定 CloudDemo 執行者帳戶

現在可以設定 CloudDemo 執行器帳戶,這是 CloudDemo 服務的自訂執行階段服務帳戶:

  • 建立名為 CloudDemo-runner 的服務帳戶:

    gcloud iam service-accounts create clouddemo-runner \
        --display-name="CloudDemo Runner" \
        --project=$DEV_PROJECT_ID
    
    gcloud iam service-accounts create clouddemo-runner \
        --display-name="CloudDemo Runner" \
        --project=$PROD_PROJECT_ID
    
    DEV_CLOUDDEMO_RUNNER=clouddemo-runner@$DEV_PROJECT_ID.s3ns.iam.gserviceaccount.com
    
    PROD_CLOUDDEMO_RUNNER=clouddemo-runner@$PROD_PROJECT_ID.s3ns.iam.gserviceaccount.com
    

設定 Azure Pipelines 部署者帳戶

最後,建立及設定 Azure Pipelines 部署者帳戶,Azure 發布管道會使用這個帳戶部署至 Cloud Run。

  1. 建立名為 azure-pipelines-deployer 的服務帳戶:

    gcloud iam service-accounts create azure-pipelines-deployer \
        --display-name="Azure Pipelines Deployer" \
        --project=$PROD_PROJECT_ID
    
    AZURE_PIPELINES_DEPLOYER=azure-pipelines-deployer@$PROD_PROJECT_ID.s3ns.iam.gserviceaccount.com
    
  2. 指派必要的 IAM 角色,在開發專案中部署新的 Cloud Run 服務或修訂版本:

    gcloud projects add-iam-policy-binding $DEV_PROJECT_ID \
        --member serviceAccount:$AZURE_PIPELINES_DEPLOYER \
        --role roles/run.admin
    
    gcloud iam service-accounts add-iam-policy-binding \
        $DEV_CLOUDDEMO_RUNNER \
        --member=serviceAccount:$AZURE_PIPELINES_DEPLOYER \
        --role="roles/iam.serviceAccountUser" \
        --project=$DEV_PROJECT_ID
    
  3. 為正式版專案指派相同的角色組合:

    gcloud projects add-iam-policy-binding $PROD_PROJECT_ID \
        --member serviceAccount:$AZURE_PIPELINES_DEPLOYER \
        --role roles/run.admin
    
    gcloud iam service-accounts add-iam-policy-binding \
        $PROD_CLOUDDEMO_RUNNER \
        --member=serviceAccount:$AZURE_PIPELINES_DEPLOYER \
        --role="roles/iam.serviceAccountUser" \
        --project=$PROD_PROJECT_ID
    
  4. 產生服務帳戶金鑰:

    gcloud iam service-accounts keys create azure-pipelines-deployer.json \
        --iam-account=$AZURE_PIPELINES_DEPLOYER \
        --project=$PROD_PROJECT_ID
    
    cat azure-pipelines-deployer.json | base64 -w 0
    

    設定發布管道時,您會使用這項指令的輸出內容。

設定發布管道

現在您可以返回 Azure Pipelines 自動部署,包括下列步驟:

  • 部署至開發環境。
  • 在啟動部署至正式環境之前,要求人工核准。
  • 部署至正式環境。

建立發布定義

首先,建立發行定義:

  1. 在 Azure DevOps 選單中,依序選取「Pipelines」>「Releases」。
  2. 按一下 [New pipeline]。
  3. 從範本清單中選取 [Empty job]。
  4. 系統提示您輸入階段名稱時,請輸入 Development。
  5. 在畫面頂端為管道命名 CloudDemo。
  6. 在管道圖的 [Artifacts] 旁,按一下 [Add]。
  7. 選取「建構」,然後新增下列設定:
    • 來源類型:建構
    • 來源 (建構管道):選取建構定義 (應該只有一個選項)
    • Default version:Latest
    • 來源別名:build
  8. 按一下「新增」。
  9. 在「構件」方塊中,按一下「持續部署觸發條件」 (閃電圖示),新增部署觸發條件。
  10. 在「持續部署觸發條件」下方,將切換鈕設為「已啟用」。
  11. 按一下 [儲存]。
  12. 視需要輸入註解,然後按一下 [OK] 確認。

    管道會顯示類似以下的內容。

    自動部署設定的管道檢視畫面。

部署至開發專案

建立發布定義後,您現在可以為開發專案設定 Cloud Run 部署作業。

  1. 在選單中切換至「工作」分頁。
  2. 按一下 [Agent job]。
  3. 將「代理程式規格」設為「ubuntu-22.04」。
  4. 在「代理工作」旁邊,按一下「將工作新增至代理工作」 ,即可在階段中新增步驟。
  5. 選取「指令列」工作,然後按一下「新增」。
  6. 按一下新增的工作,然後進行下列設定:

    1. 顯示名稱:Deploy image to development project
    2. 腳本:

      gcloud auth activate-service-account \
          --quiet \
          --key-file <(echo $(ServiceAccountKey) | base64 -d) && \
      gcloud run deploy clouddemo \
          --quiet \
          --service-account=clouddemo-runner@$(CloudRun.ProjectId.Development).s3ns.iam.gserviceaccount.com \
          --allow-unauthenticated \
          --image=$(CloudRun.Region)-docker.pkg.dev/$(ContainerRegistry.ProjectId)/docker/clouddemo:$BUILD_BUILDID \
          --platform=managed \
          --region=$(CloudRun.Region) \
          --project=$(CloudRun.ProjectId.Development)
      

      這項指令會從環境變數取得服務帳戶金鑰,然後使用 gcloud CLI 將應用程式部署至 Cloud Run。Azure Pipelines 代理程式預設提供 gcloud CLI。

  7. 切換至「變數」分頁,並新增下列變數。

    名稱 值 密鑰
    ServiceAccountKey 已為先前建立的服務帳戶金鑰。azure-pipelines-deployer 是
    ContainerRegistry.ProjectId 實際工作環境專案的專案 ID。
    CloudRun.Region 您先前選取的區域,用於部署 Artifact Registry 資源。
    CloudRun.ProjectId.Development 開發專案的專案 ID。
    CloudRun.ProjectId.Production 實際工作環境專案的專案 ID。
  8. 按一下 [儲存]。

  9. 視需要輸入註解,然後按一下 [OK] 確認。

部署至正式叢集

最後,將部署項目設定為正式版專案:

  1. 在選單中,切換至「Pipeline」分頁標籤。
  2. 在「階段」方塊中,依序選取「新增」 >「新階段」。
  3. 從範本清單中選取 [Empty job]。
  4. 系統提示您輸入階段名稱時,請輸入 Production。
  5. 按一下新建立階段的閃電圖示。
  6. 進行下列設定:

    1. 選取觸發條件:After stage
    2. 階段:開發
    3. 「Pre-deployment approvals」(部署前核准):(啟用)
    4. 核准者:選取您的使用者名稱。

    管道會顯示類似下方的檢視畫面。

    叢集部署設定的管道檢視畫面。

  7. 切換至「Tasks」分頁標籤。

  8. 將滑鼠游標懸停在「工作」分頁標籤上,然後依序選取「工作」 >「製作」。

  9. 按一下 [Agent job]。

  10. 將「代理程式規格」設為「ubuntu-22.04」。

  11. 按一下「將工作新增至代理程式工作」 ,即可在階段中新增步驟。

  12. 選取「Command line」工作,然後按一下「Add」。

  13. 按一下新增的工作,然後進行下列設定:

    1. 顯示名稱:Deploy image to production project
    2. 腳本:

      gcloud auth activate-service-account \
          --quiet \
          --key-file <(echo $(ServiceAccountKey) | base64 -d) && \
      gcloud run deploy clouddemo \
          --quiet \
          --service-account=clouddemo-runner@$(CloudRun.ProjectId.Production).s3ns.iam.gserviceaccount.com \
          --allow-unauthenticated \
          --image=$(CloudRun.Region)-docker.pkg.dev/$(ContainerRegistry.ProjectId)/docker/clouddemo:$BUILD_BUILDID \
          --platform=managed \
          --region=$(CloudRun.Region) \
          --project=$(CloudRun.ProjectId.Production)
      
  14. 按一下 [儲存]。

  15. 視需要輸入註解,然後按一下 [OK] 確認。

執行管道

您已設定整個管道,現在可以變更原始碼來測試管道:

  1. 在您的本機電腦上,開啟先前複製的 Git 存放區中的檔案 applications\clouddemo\netcore\CloudDemo.MvcCore\Views\Home\Index.cshtml。
  2. 將 ViewBag.Title 的值從 Home Page 變更為 Home Page Cloud Run。
  3. 提交變更,然後推送至 Azure Pipelines。

    Visual Studio

    1. 開啟 Team Explorer,然後按一下「首頁」圖示。
    2. 按一下 [Changes] (變更)。
    3. 輸入修訂訊息,例如 Change site title。
    4. 按一下 [Commit All and Push] (全部認可並推送)。

    指令列

    1. 暫存所有已修改的檔案:

      git add -A
      
    2. 將變更提交至本機存放區:

      git commit -m "Change site title"
      
    3. 將變更推送至 Azure Pipelines:

      git push
      
  4. 在 Azure DevOps 選單中,選取「Pipelines」。系統會觸發建構作業。

  5. 建構完成後,依序選取「Pipelines」 >「Releases」。啟動發布程序。

  6. 按一下「Release-1」開啟詳細資料頁面,並等待「Development」階段的狀態切換為「Succeeded」。

  7. 在 Cloud de Confiance 控制台中,切換至開發專案。

  8. 在選單中,依序選取「Compute」 >「Cloud Run」。

    「clouddemo」服務已成功部署。

    Cloud Run 中的部署狀態。

  9. 按一下「clouddemo」即可查看更多詳細資料。

    系統會顯示網址,指出 Cloud Run 已佈建服務。

  10. 在新瀏覽器分頁開啟網址,確認 CloudDemo 應用程式已部署並使用自訂標題。

  11. 在 Azure Pipelines 中,按一下「Production」(正式環境) 階段旁的「Approve」(核准),將部署作業升級至正式環境。

  12. (選用) 輸入註解。

  13. 按一下「核准」確認,並等待「正式」環境的狀態切換為「成功」。

  14. 在 Cloud de Confiance 控制台中,切換至實際工作環境專案。

  15. 在選單中,依序選取「Compute」 >「Cloud Run」。

    clouddemo 服務已部署至正式環境專案。

  16. 按一下「clouddemo」即可查看更多詳細資料。

    系統會顯示網址,表示 Cloud Run 已佈建服務。

  17. 在新瀏覽器分頁中開啟網址,確認 CloudDemo 應用程式已部署至正式環境,且使用自訂標題。

清除所用資源

為避免在本教學課程完成後產生額外費用,請刪除您建立的實體。

刪除 Azure Pipelines 專案

如要刪除 Azure Pipelines 專案,請參閱 Azure DevOps Services 說明文件。刪除 Azure Pipelines 專案會導致所有原始碼變更遺失。

刪除 Cloud de Confiance 開發和正式環境專案

  1. 前往 Cloud de Confiance 控制台的「Manage resources」(管理資源) 頁面。

    前往「Manage resources」(管理資源)

  2. 在專案清單中選取要刪除的專案,然後點選「Delete」(刪除)。
  3. 在對話方塊中輸入專案 ID,然後按一下 [Shut down] (關閉) 以刪除專案。

後續步驟