Bicep は、宣言型の構文を使用して Azure リソースをデプロイするドメイン固有言語です。 開発者は Bicep ファイル内で、Azure にデプロイするインフラストラクチャを定義します。その後、このファイルを使用して、開発ライフサイクル全体にわたってそのインフラストラクチャを繰り返しデプロイすることができます。 リソースは一貫した方法でデプロイされます。
Bicep の特徴は、簡潔な構文、信頼性の高いタイプ セーフ、コード再利用のサポートです。 Bicep は、Azure の コードとしてのインフラストラクチャ ソリューションに最適な作成エクスペリエンスを提供します。
Warnung
Microsoft カスタマー サポートは 、Bicep の試験的機能の使用に起因する問題に対するサポートを提供していません。ご自身の責任で使用してください。
Bicep の利点
Bicep には次の利点があります。
すべてのリソースの種類とすべての API バージョンをサポート: Bicep は、Azure サービスのすべてのプレビュー版と GA バージョンを即座にサポートします。 リソース プロバイダーが新しいリソースの種類と API バージョンを導入するとすぐに、Bicep ファイルでそれらを使用できます。 新しいサービスを使用する前に、ツールが更新されるのを待つ必要はありません。
単純な構文: 同等の JSON テンプレートと比較すると、Bicep ファイルはより簡潔で読みやすくなっています。 Bicep を使用するには、プログラミング言語に関するの事前知識は必要ありません。 Bicep 構文は宣言型であり、デプロイするリソースとリソース プロパティを指定します。
次の例は、Bicep ファイルと、同等の JSON テンプレートの違いを示しています。 どちらの例でも、1 個のストレージ アカウントをデプロイします。
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 個のファイルを開発するだけで済みます。更新のたびにそれを表すファイルを個別に開発する必要はありません。 たとえば、次のファイルは 1 個のストレージ アカウントを作成します。 このテンプレートをデプロイするときに、指定されたプロパティを持つストレージ アカウントが既に存在する場合は、変更は行われません。
オーケストレーション: 複雑な順序付け操作について心配する必要はありません。 Azure Resource Manager は、相互に依存するリソースのデプロイを調整して、正しい順序で作成されるようにします。 可能な場合、Resource Manager によって複数のリソースが並列デプロイされるので、順次デプロイより早くデプロイを完了できます。 複数ではなく 1 個の命令コマンドを使用して、ファイルをデプロイすることができます。
モジュール性: モジュールを使用して Bicep コードをセグメント化できるので、各部分が管理しやすくなります。 モジュールはコードの再利用に役立ち、開発がシンプルになります。 1 個のモジュールで、一連の関連するリソースがデプロイされます。 これらのリソースをデプロイする必要が生じたときは、1 個のモジュールを Bicep ファイルに追加します。
Azure サービスとの統合: Bicep は Azure のサービス (Azure Policy、テンプレート スペック、Azure Blueprints など) と統合されています。
変更のプレビュー: Bicep ファイルをデプロイする前に、What-If 操作を使用して変更のプレビューを目にすることができます。 What-If 操作を使用すると、どのリソースが作成、更新、または削除されるか、およびどのリソース プロパティが変更されるかがわかります。 環境の現在の状態も確認されるので、この状態を管理する必要はなくなります。
管理する状態または状態ファイルがない: Azure では、すべての状態が格納されます。 他の人と共同作業するときに、自分が行う更新が想定どおりに処理されることを確信できます。
コストとオープン ソースなし: Bicep は無料であるため、Premium 機能の料金は発生しません。 Microsoft サポートによるサポートの対象です。
概要
Bicep を使用して作業を開始するには:
ツールをインストールします。 詳細については、「 Bicep 開発環境とデプロイ環境を設定する」を参照するか、 VS Code devcontainer/Codespaces リポジトリ を使用して事前構成済みの作成環境を取得します。
** クイック スタートを完了します。
既存の Resource Manager テンプレートを Bicep に逆コンパイルするには、「 JSON Azure Resource Manager テンプレートを Bicep に逆コンパイルする」を参照してください。 Bicep プレイグラウンド を使用すると、Bicep と、それと同等の JSON をサイド バイ サイドで表示できます。
Bicep ファイルで使用できるリソースについては、Bicep リソース リファレンスを参照してください。
Bicep の例については、Bicep GitHub リポジトリを参照してください。
言語について
Bicep は、アプリケーションを作成するための一般的なプログラミング言語としては意図されていません。 Bicep ファイルは Azure のリソースとリソース プロパティを宣言するものであり、これらを作成するために一連のプログラミング コマンドを入力する必要はありません。
Bicep の作業状態を確認するには、Bicep プロジェクトのリポジトリを参照してください。
Bicep について学習するには、次のビデオをご覧ください。
JSON の代わりに Bicep を使用して、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 テンプレート」と入力し、[Go] を選択します。
[問題が発生しているのは、どのサービスですか?] で、[監視 + 管理] の下にある [ポータル] を選択し、[次へ] を選択します。&
サブスクリプションを選択し、 [次へ] を選択します。
[ARM テンプレートに関する問題] を選択し、[次へ] を選択します。
Bicep への協力
Bicep はオープンソース プロジェクトです。 つまり、Bicep の開発に貢献し、より広範な Bicep コミュニティに参加できます。 コントリビューションの種類は次のとおりです。
- Azure クイック スタート テンプレート。 Bicep ファイルと ARM テンプレートの例を Azure クイック スタート テンプレート リポジトリに投稿できます。 詳細については、 Azure クイック スタート テンプレートの投稿ガイドを参照してください。
- ドキュメント。 Bicep のドキュメントも投稿に公開されています。 詳細については、 共同作成者ガイドの概要を参照してください。
- スニペット。 コミュニティが恩恵を受けると思うお気に入りのスニペットはありますか? Visual Studio Code 拡張機能のスニペットのコレクションに追加できます。 詳細については、「 Bicep への貢献」を参照してください。
- コードの変更。 開発者で、Bicep 言語またはツールで確認したいアイデアがある場合は、pull request を投稿できます。 詳細については、「 Bicep への貢献」を参照してください。
次のステップ
- 開始するには、「 クイック スタート: Visual Studio Code を使用して Bicep ファイルを作成する」を参照してください。
- 一般的な質問に対する回答については、「Bicep に関してよく寄せられる質問」を参照してください。