Bicep とは
Bicep は、宣言型の構文を使用して Azure リソースをデプロイするドメイン固有言語です。 Bicep ファイル内で、Azure にデプロイするインフラストラクチャを定義します。このファイルを使用して、開発ライフサイクル全体にわたってそのインフラストラクチャを繰り返しデプロイできます。 リソースは一貫した方法でデプロイされます。
Bicep の特徴は簡潔な構文、信頼性の高いタイプ セーフ性、コードの再利用のサポートです。 Bicep により、Azure のコードとしてのインフラストラクチャ ソリューションに最適な作成エクスペリエンスをオファーします。
Bicep の利点
Bicep には次の利点があります。
すべてのリソースの種類と API バージョンのサポート: Bicep では、Azure サービスのすべてのプレビュー版と GA バージョンがすぐにサポートされます。 リソース プロバイダーが新しいリソースの種類と API バージョンを導入するとすぐに、Bicep ファイルでそれらを使用できます。 ツールが更新されるまで待つ必要はなく、その新しいサービスを使用できます。
単純な構文: 同等の JSON テンプレートと比較すると、Bicep ファイルはより簡潔で読みやすくなっています。 Bicep は、プログラミング言語の事前知識を必要としません。 Bicep 構文は宣言型であり、デプロイするリソースとリソース プロパティを指定します。
次の例は、Bicep ファイルと、同等の JSON テンプレートの違いを示しています。 どちらの例でも、ストレージ アカウントをデプロイします。
param location string = resourceGroup().location param storageAccountName string = 'toylaunch${uniqueString(resourceGroup().id)}' resource storageAccount 'Microsoft.Storage/storageAccounts@2023-05-01' = { name: storageAccountName location: location sku: { name: 'Standard_LRS' } kind: 'StorageV2' properties: { accessTier: 'Hot' } }
作成エクスペリエンス: VS Code の Bicep 拡張機能を使用して Bicep ファイルを作成すると、ファーストクラスの作成エクスペリエンスが得られます。 このエディターの特徴は、豊富なタイプ セーフ性、IntelliSense、構文検証です。
Visual Studio 用 Bicep 拡張機能を使用して Visual Studio で Bicep ファイルを作成することもできます。
反復可能な結果: インフラストラクチャを開発ライフサイクル全体で何度もデプロイする場合に、リソースが常に同じようにデプロイされることを確信できます。 Bicep ファイルはべき等です。つまり、同じファイルを何度でもデプロイして同じリソースの種類を同じ状態で作成できます。 開発するファイルは 1 つだけで、これで望ましい状態を表すので、更新のたびにそれを表すファイルを個別に開発する必要はありません。 たとえば、次のファイルはストレージ アカウントを作成します。 このテンプレートをデプロイするときに、指定されたプロパティを持つストレージ アカウントが既に存在する場合は、変更は行われません。
オーケストレーション:複雑な順序付けのことを心配する必要はありません。 相互に依存するリソースが正しい順序で作成されるように、そのデプロイが Resource Manager によってオーケストレーションされます。 可能であれば、Resource Manager によってリソースが並列デプロイされるので、直列デプロイよりも速くデプロイを完了できます。 ファイルのデプロイに使用する命令コマンドは複数ではなく 1 つです。
モジュール性: モジュールを使用して Bicep コードがセグメント化されるので、各部分が管理しやすくなります。 モジュールはコードの再利用に役立ち、開発がシンプルになります。 1 つのモジュールで、一連の関連するリソースがデプロイされます。 これらのリソースのデプロイが必要になったときは、モジュールを Bicep ファイルに追加します。
Azure サービスとの統合: Bicep は Azure のサービス (Azure Policy、テンプレート スペック、Azure Blueprints など) と統合されています。
変更のプレビュー: Bicep ファイルをデプロイする前に、what-if 操作を使用して変更のプレビューを見ることができます。 what-if 操作を使用すると、どのリソースが作成、更新、または削除されるか、およびどのリソース プロパティが変更されるかがわかります。 環境の現在の状態の確認も行われるので、この状態を管理する必要はなくなります。
状態または状態ファイルの管理は不要: Azure によってすべての状態が保存されます。 他の人と共同作業するときに、自分が行う更新が想定どおりに処理されることを確信できます。
費用ゼロでオープンソース: Bicep は無料であるため、プレミアム機能の料金支払いは必要ありません。 Microsoft サポートがサポートしています。
作業の開始
Bicep を使用して作業を開始するには:
- ツールをインストールします。 詳細については、Bicep 開発とデプロイの環境のセットアップに関するページを参照してください。または、VS Code devcontainer/Codespaces リポジトリを使用して事前構成済みのオーサリング環境を取得してください。
- クイックスタートと Bicep に関する Learn モジュールの手順を完了します。
既存の Resource Manager テンプレートを Bicep に逆コンパイルするには、ARM テンプレート JSON を Bicep に逆コンパイルすることに関するページを参照してください。 Bicep Playground を使用すると、Bicep と、それと同等の JSON を並べて見ることができます。
Bicep ファイルで使用できるリソースについては、Bicep リソース リファレンスを参照してください。
Bicep の例については、Bicep GitHub リポジトリを参照してください。
言語について
Bicep は、アプリケーションを作成するための一般的なプログラミング言語としては意図されていません。 Bicep ファイルは Azure のリソースとリソース プロパティを宣言するものであり、これらを作成するための一連のプログラミング コマンドを書く必要はありません。
Bicep の作業状態を確認するには、Bicep プロジェクトのリポジトリを参照してください。
Bicep について学習するには、次のビデオをご覧ください。
Bicep は、JSON の代わりに Resource Manager テンプレートの開発に使用できます。 Resource Manager テンプレートを作成するための JSON 構文は長くなることがあり、複雑な式が必要になります。 Bicep 構文では、その複雑さが軽減され、開発エクスペリエンスが向上します。 Bicep は Resource Manager JSON テンプレートに対する透過的な抽象化であり、JSON テンプレートでできることはすべて維持されます。 デプロイ時に、Bicep CLI によって Bicep ファイルが Resource Manager JSON テンプレートに変換されます。
Resource Manager テンプレート内で有効なリソースの種類、API バージョン、およびプロパティは、Bicep ファイルでも有効です。
Bicep の構文は、それと同等の JSON に比べてわかりやすく簡潔です。 ブラケット表現 [...]
は使用しません。 代わりに、関数の呼び出しと値の取得をパラメーターと変数から直接行います。 展開された各リソースにシンボリック名を与えます。それにより、テンプレートでそのリソースを参照しやすくなります。
構文の完全な比較については、「テンプレートにおける JSON と Bicep の比較」参照してください。
Bicep では、リソース間の依存関係が自動的に管理されます。 リソースのシンボル名が別のリソース宣言で使用されている場合に dependsOn
を設定しないようにすることができます。
Bicep ファイルの構造は、JSON テンプレートよりも柔軟です。 ファイル内の任意の場所で、パラメーター、変数、および出力を宣言できます。 JSON では、テンプレートの対応するセクション内で、すべてのパラメーター、変数、および出力を宣言する必要があります。
サポートを受ける
Azure Resource Manager (ARM) テンプレートに関連する問題のサポート チケットを開くための手順を次に示します。
Azure Portalを開きます。
右上隅にある [サポートとトラブルシューティング] アイコンを選択します。
[問題の簡単な説明を入力してください] に「ARM テンプレート」と入力し、[進む] を選択します。
[問題が発生しているサービスはどれですか?] で、[監視と管理] の下にある [ポータル] を選択し、[次へ] を選択します。
サブスクリプションを選択し、 [次へ] を選択します。
[ARM テンプレートに関する問題] を選択し、[次へ] を選択します。
次のステップ
使用を開始するには、クイックスタートを参照してください。
一般的な質問に対する回答については、「Bicep に関してよく寄せられる質問」を参照してください。