練習 - 發佈範本規格
您的小組有一些強化安全性的 Bicep 檔案,符合您公司的新治理模型規範。 其中一個強化的 Bicep 檔案會部署以 Linux 為基礎的 Azure App Service 應用程式。 在此練習中,您會使用部署管線,將 Bicep 檔案發佈為範本規格。
在此過程中,您將會:
- 將 lint 階段新增至管線。
- 新增管線階段以發佈範本規格。
- 確認管線已啟動並順利完成。
- 檢查 Azure 中已發佈的範本規格。
將 lint 階段新增至管線
您的存放庫包含管線定義草稿,可當作起點。
在 Visual Studio Code 中,展開存放庫根中的 template-specs/linux-app-service 資料夾。
開啟 pipeline.yml 檔案。
在檔案底部,將
# 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。
將下列程式碼新增至 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。提示
為了保持簡單,您的管線會使用管線的 [組建編號] 做為範本規格的版本號碼。 在下一個單元中,您會了解更複雜的版本設定配置。
儲存對檔案所做的變更。
驗證並認可管線定義
確認 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
如果不相符,請更新以符合此範例,然後將其儲存。
在 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 會立即啟動新的管線執行。
監視管線
在您的瀏覽器中,選取 [管線]>[管線]。
選取作用中的管線執行。
執行的管線會隨即顯示。
等候管線執行完成。 執行完畢時,範本規格會發佈至 Azure。
請注意管線的組建編號,其中包含今天的日期和唯一修訂編號。 範例螢幕擷取畫面中的組建編號為 20230407.1。
檢閱 Azure 中的範本規格
您也可以在 Azure 入口網站中檢視已發佈的範本規格。
在瀏覽器中,移至 Azure 入口網站。
移至 ToyReusable 資源群組,然後選取 linux-app-service 範本規格。
仔細檢視範本規格的詳細資訊。
請注意,[最新版本] 和 [版本] 號碼與管線的組建編號相同。 您的管線會使用範本規格版本號碼的組建編號。