演習 - テンプレート スペックを発行する

完了

あなたのチームには、会社の新しいガバナンス モデルに準拠しているセキュリティ強化された Bicep ファイルがいくつかあります。 強化された Bicep ファイルの 1 つでは、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 ファイルが含まれています。 lint ステージ中にエラーが発生すると、パイプラインは失敗します。

    ヒント

    YAML ファイルは、インデントによって区別されます。 このコードを入力する場合でも貼り付ける場合でも、インデントが正しいことを確認してください。 この演習の後半では、ファイルが一致することを確認できるように、完全な YAML パイプライン定義を示します。

パイプラインに発行ステージを追加する

これで、テンプレート スペックを Azure に発行する 2 番目のステージを追加できます。

  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. ブラウザーで、[パイプライン]>[パイプライン] を選択します。

    Pipelines のメニュー項目を示す Azure Pipelines のスクリーンショット。

  2. アクティブなパイプラインの実行を選択します。

  3. パイプラインの実行が表示されます。

    パイプラインの実行が終了するまで待ちます。 実行が完了すると、テンプレート スペックが Azure に発行されます。

    パイプライン実行の成功を示し、ビルド番号が強調表示された Azure Pipelines のスクリーンショット。

  4. パイプラインのビルド番号に注意してください。これには、今日の日付と一意のリビジョン番号が含まれています。 スクリーンショットの例では、ビルド番号は 20230407.1 です。

Azure でテンプレート スペックを確認する

発行されたテンプレート スペックは、Azure portal で表示することもできます。

  1. ブラウザーで、Azure portal に移動します。

  2. ToyReusable リソース グループに移動し、linux-app-service テンプレート スペックを選択します。

    テンプレート スペックが強調されている、リソース グループを示す Azure portal のスクリーンショット。

  3. テンプレート スペックの詳細を確認します。

    テンプレート スペックの詳細を示す Azure portal のスクリーンショット。

    [最新バージョン][バージョン] 番号がパイプラインのビルド番号と同じであることに注意してください。 パイプラインでは、テンプレート スペックのバージョン番号にビルド番号が使用されます。