クイックスタート: Bicep を Azure Pipelines に統合する

このクイックスタートでは、継続的インテグレーションと継続的デリバリー (Ci/CD) のために Bicep ファイルを Azure Pipelines に統合する方法について説明します。

Bicep ファイルをデプロイするために必要なパイプライン タスクの概要を簡単に示します。 パイプラインとプロジェクトの設定に関する詳細な手順が必要な場合は、「Bicep と Azure Pipelines を使用して Azure リソースをデプロイ」を参照してください。

前提条件

Azure サブスクリプションをお持ちでない場合は、開始する前に無料アカウントを作成してください。

Azure DevOps 組織が必要です。 ない場合は、無料で作成してください。 チームに Azure DevOps 組織が既にある場合は、使用する Azure DevOps プロジェクトの管理者であることを確認します。

Azure サブスクリプションへのサービス接続が構成済みである必要があります。 パイプライン内のタスクは、サービス プリンシパルの ID で実行されます。 接続を作成する手順については、「DevOps プロジェクトを作成する」を参照してください。

プロジェクトのインフラストラクチャを定義する Bicep ファイルが必要です。 このファイルはリポジトリにあります。

bicep ファイルで使用されるパラメーターを定義する bicepparam ファイルが必要です。 このファイルはリポジトリにあります。

パイプラインの作成

  1. Azure DevOps 組織から、[パイプライン][パイプラインを作成] を選択します。

    新しいパイプラインの作成のスクリーンショット。

  2. コードの格納場所を指定します。 このクイックスタートでは、Azure Repos Git を使用します。

    コード ソースの選択のスクリーンショット。

  3. プロジェクトのコードが含まれているリポジトリを選択します。

    リポジトリの選択のスクリーンショット。

  4. 作成するパイプラインの種類として [スタート パイプライン] を選びます。

    パイプラインの選択のスクリーンショット。

Bicep ファイルをデプロイする

Azure リソース グループのデプロイ タスクまたは Azure CLI タスクを使用して、Bicep ファイルをデプロイできます。

Azure Resource Manager テンプレートのデプロイ タスクの使用

Note

Azure Resource Manager テンプレートのデプロイ タスクのバージョン 3.235.0 以降では、bicepparam ファイルの使用がサポートされています。

Note

AzureResourceManagerTemplateDeployment@3 タスクでは、bicepparam を使用するときに、Bicep ファイルと bicepparam ファイルの両方を指定する必要があります。 Bicep ファイルは、モジュール参照でサポートされているすべての場所を参照できます。 bicepparam ファイルは、using ステートメント内のローカル Bicep ファイルを参照する必要があります。

  1. スタート パイプラインを次の YAML に置き換えます。 これによりリソース グループが作成され、Azure Resource Manager テンプレートのデプロイ タスクを使用して Bicep および bicepparam ファイルがデプロイされます。

    trigger:
    - main
    
    name: Deploy Bicep files
    
    parameters:
    - name: azureServiceConnection
      type: string
      default: '<your-connection-name>'
    
    variables:
      vmImageName: 'ubuntu-latest'
      resourceGroupName: 'exampleRG'
      location: '<your-resource-group-location>'
      templateFile: './main.bicep'
      csmParametersFile: './main.bicepparam'
    
    pool:
      vmImage: $(vmImageName)
    
    steps:
    - task: AzureResourceManagerTemplateDeployment@3
      inputs:
        deploymentScope: 'Resource Group'
        azureSubscription: '${{ parameters.azureServiceConnection }}'
        action: 'Create Or Update Resource Group'
        resourceGroupName: '$(resourceGroupName)'
        location: '$(location)'
        templateLocation: 'Linked artifact'
        csmFile: '$(templateFile)'
        csmParametersFile: '$(csmParametersFile)'
        overrideParameters: '-storageAccountType Standard_LRS'
        deploymentMode: 'Incremental'
        deploymentName: 'DeployPipelineTemplate'
    
  2. azureServiceConnectionlocation の値を更新します。

  3. 有効な main.bicep ファイルがリポジトリにあることを確認します。

  4. using ステートメントを含む有効な main.bicepparam ファイルがリポジトリにあることを確認します。

  5. [保存] を選択します。 ビルド パイプラインが自動的に実行されます。 ビルド パイプラインの概要に戻り、状態を監視します。

Azure CLI タスクを使用する

Note

az deployment group create コマンドには、bicepparam ファイルのみが必要です。 bicepparam ファイル内の using ステートメントは、Bicep ファイルを参照するためにサポートされている任意の場所をターゲットにすることができます。 Bicep ファイルがリポジトリで必要になるのは、Azure CLI でローカル ディスク パスから using を実行する場合だけです。

Note

az deployment group create コマンドで bicepparam ファイルを使用する場合、パラメーターをオーバーライドすることはできません。

  1. スタート パイプラインを次の YAML に置き換えます。 これによりリソース グループが作成され、Azure CLI タスクを使用して bicepparam ファイルがデプロイされます。

    trigger:
    - main
    
    name: Deploy Bicep files
    
    parameters:
      azureServiceConnection: '<your-connection-name>'
    
    variables:
      vmImageName: 'ubuntu-latest'
      resourceGroupName: 'exampleRG'
      location: '<your-resource-group-location>'
      bicepParamFile: './main.bicepparam'
    
    pool:
      vmImage: $(vmImageName)
    
    steps:
    - task: AzureCLI@2
      inputs:
        azureSubscription: '${{ parameters.azureServiceConnection }}'
        scriptType: bash
        scriptLocation: inlineScript
        useGlobalConfig: false
        inlineScript: |
          az --version
          az group create --name $(resourceGroupName) --location $(location)
          az deployment group create `
            --resource-group $(resourceGroupName) `
            --parameters $(bicepParamFile) `
            --name DeployPipelineTemplate
    

    タスク入力の説明については、「Azure CLI タスク」を参照してください。 タスクをエアギャップ クラウドで使う場合、タスクの useGlobalConfig プロパティを true に設定する必要があります。 既定値は false です。

  2. azureServiceConnectionlocation の値を更新します。

  3. using ステートメントを含む有効な main.bicepparam ファイルがリポジトリにあることを確認します。

  4. [保存] を選択します。 ビルド パイプラインが自動的に実行されます。 ビルド パイプラインの概要に戻り、状態を監視します。

リソースをクリーンアップする

Azure リソースが不要になったら、Azure CLI または Azure PowerShell を使用してクイックスタートのリソース グループを削除します。

az group delete --name exampleRG

次のステップ