Bicep のしくみ

完了

Bicep テンプレート言語と、それがテンプレート作成にもたらす利点についての理解を深めました。 リソースをプロビジョニングするための Bicep テンプレートの作成プロセスを開始する前に、Bicep のしくみについて詳しく学習する必要があります。

このユニットでは、Bicep が Azure Resource Manager とどのように連携するかを学習します。

Bicep デプロイ

前のユニットでは、Bicep がドメイン固有言語であり、特定のシナリオ、つまり "ドメイン" 向けに設計されていることを学習しました。 Bicep は、Azure リソースのデプロイと構成を簡単に行えるように構築されています。

リソースまたは一連のリソースを Azure にデプロイする際に、Bicep テンプレートを Resource Manager に送信しますが、これには引き続き JSON テンプレートが必要です。 Bicep に組み込まれているツールによって、Bicep テンプレートが JSON テンプレートに変換されます。 このプロセスは Transpilation と呼ばれ、基本的には ARM テンプレートを中間言語として処理します。 この変換はデプロイの送信時に自動的に行われます。また、手動で行うこともできます。

Diagram that shows the workflow from a template author, a Bicep template, an emitted JSON template, and a deployment to Azure.

Note

Transpilation は、ある言語で記述されたソース コードを別の言語に変換するプロセスです。

Azure CLI と Azure PowerShell の最新バージョンには、Bicep のサポートが組み込まれています。 Bicep テンプレートと JSON テンプレートは、同じデプロイ コマンドを使用してデプロイできます。 たとえば、次のコマンドは、Bicep テンプレートを、storage-resource-group という名前のリソース グループにデプロイします。

az deployment group create \
  --template-file main.bicep \
  --resource-group storage-resource-group

このデプロイが送信されると、Resource Manager は Azure に何が既にデプロイされているかを確認します。 その後、デプロイしようとしているものが確認され、この状態を実現するための一連のステップが設定されます。 これらのアクティビティすべてに、Resource Manager API の呼び出しが伴います。

Resource Manager に送信された JSON テンプレートを表示するには、bicep build コマンドを使用します。 次の例では、Bicep テンプレートが、対応する JSON テンプレートに変換されます。

bicep build main.bicep

JSON と Bicep の比較

Bicep は、よりシンプルな構文が用意されており、テンプレートを作成するときに使用されます。 次の 2 つのテンプレートの例をご覧ください。 左側のテンプレートは、Bicep テンプレートです。 右側のテンプレートは、JSON テンプレートです。

Screenshot that compares Bicep code on the left and the corresponding JSON code on the right.

Bicep テンプレートに含まれるコードが少なくなることに注意してください。 構文は読みやすく、簡単に理解できます。右側の JSON テンプレートのように複雑な式が含まれていません。

Note

同等の JSON および Bicep のファイルを並べて表示するには、Bicep プレイグラウンドをご覧ください。