Bicep のしくみ
Bicep テンプレート言語と、それがテンプレート作成にもたらす利点についての理解を深めました。 リソースをプロビジョニングするための Bicep テンプレートの作成プロセスを開始する前に、Bicep のしくみについて詳しく学習する必要があります。
このユニットでは、Bicep が Azure Resource Manager とどのように連携するかを学習します。
Bicep デプロイ
前のユニットでは、Bicep が特定のシナリオつまり "ドメイン" 向けに設計されており、ドメイン固有の言語であることを学習しました。 Bicep は、Azure リソースのデプロイと構成を簡単に行えるように構築されています。
リソースまたは一連のリソースを Azure にデプロイする際に、Bicep テンプレートを Resource Manager に送信しますが、これには引き続き JSON テンプレートが必要です。 Bicep に組み込まれているツールによって、Bicep テンプレートが JSON テンプレートに変換されます。 このプロセスは Transpilation と呼ばれ、基本的には ARM テンプレートを中間言語として処理します。 この変換はデプロイの送信時に自動的に行われます。また、手動で行うこともできます。
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 の呼び出しが伴います。
bicep build
コマンドを使って、Resource Manager に送信された JSON テンプレートを表示できます。 次の例では、Bicep テンプレートが、対応する JSON テンプレートに変換されます。
bicep build main.bicep
JSON と Bicep の比較
Bicep は、よりシンプルな構文が用意されており、テンプレートを作成するときに使用されます。 次の 2 つのテンプレートの例をご覧ください。 画面の左側のテンプレートは、Bicep テンプレートです。 画面の右側のテンプレートは、JSON テンプレートです。
Bicep テンプレートに含まれるコードが少なくなることに注意してください。 構文は読みやすく、簡単に理解できます。右側の JSON テンプレートのように複雑な式が含まれていません。
Note
同等の JSON および Bicep のファイルを並べて表示するには、Bicep プレイグラウンドをご覧ください。