練習 - 發佈範本規格

已完成

您的小組有一些強化安全性的 Bicep 檔案,符合您公司的新治理模型規範。 其中一個強化的 Bicep 檔案會部署以 Linux 為基礎的 Azure App Service 應用程式。 在此練習中,您會使用部署管線,將 Bicep 檔案發佈為範本規格。

在此過程中,您將會:

  • 將 lint 階段新增至管線。
  • 新增管線階段以發佈範本規格。
  • 確認管線已啟動並順利完成。
  • 檢查 Azure 中已發佈的範本規格。

將 lint 階段新增至管線

您的存放庫包含管線定義草稿,可當作起點。

  1. 在 Visual Studio Code 中,展開存放庫根中的 template-specs/linux-app-service 資料夾。

  2. 開啟 pipeline.yml 檔案。

    Visual Studio Code 的螢幕擷取畫面,其中顯示管線定義檔案的位置。

  3. 在檔案底部,將 # To be added 取為為下列 lint 階段定義:

    stages:
    
    - stage: Lint
      jobs:
      - job: LintCode
        displayName: Lint code
        steps:
          - script: |
              az bicep build --file $(TemplateSpecFilePath)
            name: LintBicepCode
            displayName: Run Bicep linter
    

    您的存放庫有 bicepconfig.json 檔案,其會設定 Linter 發出錯誤,而非警告。 lint 階段期間的任何失敗都會造成管線失敗。

    提示

    YAML 檔案會區分縮排。 無論您是輸入或貼上此程式碼,請確定您的縮排正確無誤。 在本練習的後續操作中,您將會看到完整的 YAML 管線定義,以便驗證您的檔案是否相符。

將發佈階段新增至管線

現在,您可以新增第二個階段,將範本規格發佈至 Azure。

  1. 將下列程式碼新增至 pipeline.yml 檔案的結尾:

    - stage: Publish
      jobs:
      - job: Publish
        steps:
          - task: AzureCLI@2
            name: Publish
            displayName: Publish template spec
            inputs:
              azureSubscription: $(ServiceConnectionName)
              scriptType: 'bash'
              scriptLocation: 'inlineScript'
              inlineScript: |
                az ts create \
                  --resource-group $(AzureResourceGroupName) \
                  --name $(TemplateSpecName) \
                  --version $(Build.BuildNumber) \
                  --template-file $(TemplateSpecFilePath) \
                  --location $(AzureRegion) \
                  --yes
    

    此階段會從您的存放庫簽出程式碼,並使用您所建立的服務連線登入 Azure。 接著會執行 az ts create 命令,將範本規格發佈至 Azure。

    提示

    為了保持簡單,您的管線會使用管線的 [組建編號] 做為範本規格的版本號碼。 在下一個單元中,您會了解更複雜的版本設定配置。

  2. 儲存對檔案所做的變更。

驗證並認可管線定義

  1. 確認 pipeline.yml 檔案看起來像下列範例:

    trigger:
      batch: true
      branches:
        include:
        - main
      paths:
        include:
        - 'template-specs/linux-app-service/**'
    
    variables:
    - name: ServiceConnectionName
      value: ToyReusable
    - name: AzureResourceGroupName
      value: ToyReusable
    - name: AzureRegion
      value: westus3
    - name: TemplateSpecName
      value: linux-app-service
    - name: TemplateSpecFilePath
      value: template-specs/linux-app-service/main.bicep
    
    pool:
      vmImage: ubuntu-latest
    
    stages:
    
    - stage: Lint
      jobs:
      - job: LintCode
        displayName: Lint code
        steps:
          - script: |
              az bicep build --file $(TemplateSpecFilePath)
            name: LintBicepCode
            displayName: Run Bicep linter
    
    - stage: Publish
      jobs:
      - job: Publish
        steps:
          - task: AzureCLI@2
            name: Publish
            displayName: Publish template spec
            inputs:
              azureSubscription: $(ServiceConnectionName)
              scriptType: 'bash'
              scriptLocation: 'inlineScript'
              inlineScript: |
                az ts create \
                  --resource-group $(AzureResourceGroupName) \
                  --name $(TemplateSpecName) \
                  --version $(Build.BuildNumber) \
                  --template-file $(TemplateSpecFilePath) \
                  --location $(AzureRegion) \
                  --yes
    

    如果不相符,請更新以符合此範例,然後將其儲存。

  2. 在 Visual Studio Code 終端機中執行下列命令,以認可所做的變更,並將其推送至您的 Git 存放庫:

    git add .
    git commit -m "Add lint and publish stages to Linux App Service template spec pipeline"
    git push
    

    在您推送之後,Azure Pipelines 會立即啟動新的管線執行。

監視管線

  1. 在您的瀏覽器中,選取 [管線]>[管線]

    螢幕擷取畫面:顯示 [管線] 功能表項目的 Azure Pipelines。

  2. 選取作用中的管線執行。

  3. 執行的管線會隨即顯示。

    等候管線執行完成。 執行完畢時,範本規格會發佈至 Azure。

    螢幕擷取畫面:顯示成功管線執行並醒目提示組建編號的 Azure Pipelines。

  4. 請注意管線的組建編號,其中包含今天的日期和唯一修訂編號。 範例螢幕擷取畫面中的組建編號為 20230407.1

檢閱 Azure 中的範本規格

您也可以在 Azure 入口網站中檢視已發佈的範本規格。

  1. 在瀏覽器中,移至 Azure 入口網站

  2. 移至 ToyReusable 資源群組,然後選取 linux-app-service 範本規格。

    Azure 入口網站的幕螢擷取畫面,其中顯示資源群組並醒目提示範本規格。

  3. 仔細檢視範本規格的詳細資訊。

    Azure 入口網站的幕螢擷取畫面,其中顯示範本規格詳細資料。

    請注意,[最新版本] 和 [版本] 號碼與管線的組建編號相同。 您的管線會使用範本規格版本號碼的組建編號。