クイックスタート: 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 ファイルが必要です。 このファイルはリポジトリにあります。
パイプラインの作成
Azure DevOps 組織から、[パイプライン] と [パイプラインを作成] を選択します。
コードの格納場所を指定します。 このクイックスタートでは、Azure Repos Git を使用します。
プロジェクトのコードが含まれているリポジトリを選択します。
作成するパイプラインの種類として [スタート パイプライン] を選びます。
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 ファイルを参照する必要があります。
スタート パイプラインを次の 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'
azureServiceConnection
とlocation
の値を更新します。有効な
main.bicep
ファイルがリポジトリにあることを確認します。using ステートメントを含む有効な
main.bicepparam
ファイルがリポジトリにあることを確認します。[保存] を選択します。 ビルド パイプラインが自動的に実行されます。 ビルド パイプラインの概要に戻り、状態を監視します。
Azure CLI タスクを使用する
Note
az deployment group create コマンドには、bicepparam ファイルのみが必要です。 bicepparam ファイル内の using
ステートメントは、Bicep ファイルを参照するためにサポートされている任意の場所をターゲットにすることができます。 Bicep ファイルがリポジトリで必要になるのは、Azure CLI でローカル ディスク パスから using
を実行する場合だけです。
Note
az deployment group create コマンドで bicepparam ファイルを使用する場合、パラメーターをオーバーライドすることはできません。
スタート パイプラインを次の 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
です。azureServiceConnection
とlocation
の値を更新します。using ステートメントを含む有効な
main.bicepparam
ファイルがリポジトリにあることを確認します。[保存] を選択します。 ビルド パイプラインが自動的に実行されます。 ビルド パイプラインの概要に戻り、状態を監視します。
リソースをクリーンアップする
Azure リソースが不要になったら、Azure CLI または Azure PowerShell を使用してクイックスタートのリソース グループを削除します。
az group delete --name exampleRG