Azureのインフラストラクチャを構築する必要がありますか?ARMテンプレートを見て、「わー、複雑そう」と思ったことはありませんか?多くの人々がARMテンプレートの構築の難しさについて不満を述べたため、マイクロソフトはAzure Bicepという抽象化レイヤーを開発しました。
このチュートリアルでは、ゼロから始める方法を学びます。開発環境のセットアップから最初のBicepテンプレートのデプロイまで、すべてを学ぶことができます!
さあ、始めましょう!
前提条件
このチュートリアルは実践的なデモンストレーションです。一緒に進める場合は、以下のものを準備してください:
- Windows 10 – このチュートリアルのほとんどのデモは他のオペレーティングシステムでも動作しますが、すべてのデモはWindows 10を使用します。
- Visual Studio Code – このチュートリアルではv1.60.2を使用します。
- Azureリソースグループ(デプロイ先) – このチュートリアルでは、ATAというリソースグループを使用します。
Azure Bicepとは何ですか?
Bicepは、ARMテンプレートの構築を容易にする特定ドメインの言語です。Bicepは、ARMテンプレートの上にある抽象化レイヤーと考えることができます。ARMはJSONを使用し、特に大規模な展開には複雑になる可能性があります。
Microsoftは、この複雑さを軽減し、開発エクスペリエンスを向上させるためにBicepを作成することを決定しました。これは新しい言語ではなく、JSON ARMテンプレートの改良と考えてください。
Bicep開発環境のセットアップ
Bicepテンプレートの開発を開始するには、最良の結果を得るのに役立つ環境をセットアップする必要があります。そのためには、いくつかのツールが利用できます。まず、VS Code Bicep拡張機能、Bicep CLI、およびオプションでAzure PowerShellモジュールを含む必要な環境を設定しましょう。
VS Code Bicep拡張機能のインストール
VS CodeはBicepテンプレートを構築するための優れた開発ツールです。そのため、MicrosoftはVS Code拡張機能を提供しており、これによりBicepテンプレートの作成が容易になります。VS Codeの開発環境を構築するために、まずVS Codeを準備しましょう。
Visual Studio Codeを開き、拡張機能ボタンをクリックします。

検索バーに「bicep」と入力します。1つのBicep拡張機能が表示されるはずです。これが表示されたら、インストールをクリックします。しばらくすると、VS CodeにBicep拡張機能がインストールされます。

次のセクションでBicepテンプレートをコピー/貼り付けする手順がありますが、Bicepテンプレートをゼロから作成する必要がある場面もあるでしょう。VS CodeのBicep拡張機能は、特にそのIntellisense機能によってここで役立ちます。
.bicepの拡張子を持つファイルをVS Codeで開くと、VS Codeはショートカットを提供しようとします。たとえば、Bicepテンプレートでresource
キーワードを使用してAzureリソースを作成します。Bicep拡張機能がインストールされていると、VS Codeはこれを理解します。

提供されたメニューオプションのうちの1つを選択すると、毎回正確な構文を覚える必要なく、自動的に記入するためのテンプレートが作成されます。

ピリオド( .
)は、Bicepテンプレートを作成する際に便利なショートカットです。たとえば、propertiesセクションでこれを入力すると、ストレージアカウントの利用可能なすべてのプロパティが表示されます。

Bicep CLIのインストール
作成したら、BicepテンプレートをBicep CLIを介して呼び出す必要があります。Bicep CLIをインストールしようとする前に、既にインストールされていないかどうかを確認してください。インストールされているAzure CLIのバージョンによっては、すでにBicep CLIが含まれているかもしれません。確認するには、PowerShellコンソールまたはターミナルを開いてBicep CLIのバージョンを確認します。
Bicep CLIがインストールされている場合、以下のようにバージョンステートメントが表示されます。

Bicep CLIが見つからないというエラーメッセージが表示される場合は、install
サブコマンドを実行してBicep CLIをインストールします。
これで、Bicep CLIが正常にインストールされ、使用準備が整いました。以下に出力が表示されます。

代替のインストール方法として、Bicep Windows Installerを使用してもBicep CLIをインストールできます。
ストレージアカウントをデプロイするためのBicepテンプレートの作成
あなたはBicepを使用していくつかの複雑なAzureリソースをデプロイできますが、まずはゆっくり始めましょう。最初のBicepテンプレートとして、単純なAzureストレージアカウントを作成し、次のセクションでAzure CLIとPowerShellの両方を使用してデプロイできるようにします。
1. VS Codeを開き、main.bicepという新しいファイルを作成します。ここで示されているようにファイルの名前を正確に指定する必要はありませんが、テンプレートをmainと呼び、.bicep拡張子を使用するのが一般的です。
2. 下記のBicepテンプレートコードをファイルにコピーして保存します。このテンプレートにはBicepテンプレートを構成するさまざまな属性が含まれています。
最初に、すべてのBicepテンプレートに共通するいくつかの属性が表示されます:
- リソース識別子(
resource myStorage
) – Bicepに新しいリソースmyStorage
を作成するよう指示します。この名前はBicepテンプレート内の特定のリソースを識別します。これはAzureで作成されるリソースの名前ではありません。 Microsoft.Storage/storageAccounts@2019-06-01
– リソースプロバイダMicrosoft.Storage
、リソースタイプstorageAccounts
、および使用するAPIバージョン(2019-06-01)
で構成されたタイプを定義します。name
– Azureで表示されるリソースの名前(Azureリソースのルールと制限に注意してください)location
– リソースを作成するAzureリージョン。
storageAccounts
リソースタイプに固有の属性も見ることができます:
SKU
– プロパティname
で定義されたストレージアカウント SKU (Standard_LRS
)。kind
– ストレージアカウントのタイプ (StorageV2)。properties
– この例ではaccessTier
のような独自のセクションを持たないリソース固有のプロパティです。これらのプロパティは、ARM テンプレート で見つけることができるものと同じです。
PowerShell を使用した Bicep テンプレートのデプロイ
前述のように、Bicep テンプレートをデプロイする方法は 2 つあります。Azure CLI と Azure PowerShell モジュールを使用する方法です。まず、PowerShell を使用して Bicep テンプレートをデプロイします。
このセクションを開始する前に、Azure PowerShell モジュールがインストールされており、Azure に認証されていることを確認してください。
デプロイするAzureリソースは、Bicepテンプレートを使用することは、ARMテンプレートを展開することと同じです。Microsoftは基本的に、New-AzResourceGroupDeployment
などの既存のPowerShell ARM cmdletにBicep言語のサポートを追加しました。
PowerShellコンソールで、New-AzResourceGroupDeployment
コマンドレットを使用して、Bicepテンプレートのパスと展開先のResourceGroupName
を指定して新しいリソースグループデプロイを呼び出します。ARMテンプレートとまったく同じようにBicepテンプレートを使用できることに気付くでしょう。
デプロイが成功した場合、PowerShellセッションでProvisioningStateプロパティが成功と表示される以下の出力が表示されるはずです。以上です!

リソースが正常に作成されたか確認するには、Azure Portalにログインし、リソースグループに移動して、そのリソースグループ内に新しく作成されたストレージアカウントが表示されます。

デモとしてストレージアカウントを作成している場合は、削除するのを忘れないでください!ResourceName
はBicepテンプレートで提供されたname
と一致していることに注意してください。
次に、以下の出力が表示されます。

Azure CLIを使用してBicepテンプレートをデプロイする
このチュートリアルを締めくくるために、さっき構築したBicepテンプレートをAzure CLIでデプロイする方法について説明します。
確認してください Azure CLI v2.2.0+ がインストールされ、サインインされていることを、このセクションを始める前に。
PowerShellまたは他のターミナルを開いた状態で、az deployment group create
コマンドを使用してARMデプロイメントを実行します。このコマンドは、PowerShellと同様にARMデプロイメントを実行します。必ずresource-group
と、前もって作成したBicepテンプレートをtemplate-file
パラメータで指定してデプロイしてください。
provisioningStateがSucceededと表示されたら、以下に示すように、ARMはBicepテンプレートを読み取り、その中のすべての指示を実行しました!


az resource delete -g ATA -n ata2021bicepdiskstorage --resource-type "Microsoft.Storage/storageAccounts"
を使用してリソースをクリーンアップすることを忘れないでください。
結論
これで、Azure Bicepの開発環境を作成し、Azureでリソースを作成しました。次のステップは何でしょうか?おそらく、Bicepに関するMicrosoft Learnが提供するものを見てみることですか?
同僚にBicepが組織のお手伝いになる方法をデモンストレーションすることはいかがでしょうか?