次の方法で共有


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、構文検証です。

    リアルタイムでの Bicep ファイルのオーサリングの画面キャプチャ

    Visual Studio 用 Bicep 拡張機能を使用して Visual Studio で Bicep ファイルを作成することもできます。

  • 反復可能な結果: インフラストラクチャを開発ライフサイクル全体で何度もデプロイする場合に、リソースが常に同じようにデプロイされることを確信できます。 Bicep ファイルはべき等です。つまり、同じファイルを何度でもデプロイして同じリソースの種類を同じ状態で作成できます。 開発するファイルは 1 つだけで、これで望ましい状態を表すので、更新のたびにそれを表すファイルを個別に開発する必要はありません。 たとえば、次のファイルはストレージ アカウントを作成します。 このテンプレートをデプロイするときに、指定されたプロパティを持つストレージ アカウントが既に存在する場合は、変更は行われません。

    param ___location string = resourceGroup().___location
    
    resource mystore 'Microsoft.Storage/storageAccounts@2023-05-01' = {
      name: 'mystorageaccount'
      ___location: ___location
      sku: {
        name: 'Standard_LRS'
      }
      kind: 'StorageV2'
    }
    

  • オーケストレーション:複雑な順序付けのことを心配する必要はありません。 Azure Resource Manager は、相互に依存するリソースのデプロイを調整して、正しい順序で作成されるようにします。 可能であれば、Resource Manager によってリソースが並列デプロイされるので、直列デプロイよりも速くデプロイを完了できます。 ファイルのデプロイに使用する命令コマンドは複数ではなく 1 つです。

    Bicep ファイルでのデプロイと、テンプレートを使用しないコードとしてのインフラストラクチャとを比較するダイアグラム。

  • モジュール性: モジュールを使用して Bicep コードがセグメント化されるので、各部分が管理しやすくなります。 モジュールはコードの再利用に役立ち、開発がシンプルになります。 1 つのモジュールで、一連の関連するリソースがデプロイされます。 これらのリソースのデプロイが必要になったときは、モジュールを Bicep ファイルに追加します。

  • Azure サービスとの統合: Bicep は Azure のサービス (Azure Policy、テンプレート スペック、Azure Blueprints など) と統合されています。

  • 変更のプレビュー: Bicep ファイルをデプロイする前に、what-if 操作を使用して変更のプレビューを見ることができます。 what-if 操作を使用すると、どのリソースが作成、更新、または削除されるか、およびどのリソース プロパティが変更されるかがわかります。 環境の現在の状態の確認も行われるので、この状態を管理する必要はなくなります。

  • 管理する状態または状態ファイルがない: Azure では、すべての状態が格納されます。 他の人と共同作業するときに、自分が行う更新が想定どおりに処理されることを確信できます。

  • コストとオープン ソースなし: Bicep は無料であるため、Premium 機能の料金は発生しません。 Microsoft サポートがサポートしています。

作業の開始

Bicep を使用して作業を開始するには:

  1. ツールをインストールします。 詳細については、「 Bicep 開発環境とデプロイ環境を設定する」を参照するか、 VS Code devcontainer/Codespaces リポジトリ を使用して事前構成済みの作成環境を取得します。

  2. クイックスタートBicep に関する Learn モジュールの手順を完了します

既存の Resource Manager テンプレートを Bicep に逆コンパイルするには、「 JSON Azure Resource Manager テンプレートを 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) テンプレートに関連する問題のサポート チケットを開くための手順を次に示します。

  1. Azure Portalを開きます。

  2. 右上隅にある [サポートとトラブルシューティング] アイコンを選択します。

  3. [問題の簡単な説明を入力してください] に「ARM テンプレート」と入力し、[進む] を選択します。

  4. [問題が発生しているサービスはどれですか?] で、[監視と管理] の下にある [ポータル] を選択し、[次へ] を選択します。

  5. サブスクリプションを選択し、 [次へ] を選択します。

  6. [ARM テンプレートに関する問題] を選択し、[次へ] を選択します。

    ARM テンプレートのサポートを要求しているスクリーンショット。

Bicep への協力

Bicep はオープンソース プロジェクトです。 つまり、Bicep の開発に貢献し、より広範な Bicep コミュニティに参加できます。 コントリビューションの種類は次のとおりです。

  • Azure クイック スタート テンプレート。 Bicep ファイルと ARM テンプレートの例を Azure クイック スタート テンプレート リポジトリに投稿できます。 詳細については、 Azure クイック スタート テンプレートの投稿ガイドを参照してください。
  • ドキュメンテーション。 Bicep のドキュメントも投稿に公開されています。 詳細については、 共同作成者ガイドの概要を参照してください。
  • スニペット。 コミュニティが恩恵を受けると思うお気に入りのスニペットはありますか? Visual Studio Code 拡張機能のスニペットのコレクションに追加できます。 詳細については、「 Bicep への貢献」を参照してください。
  • コードの変更。 開発者で、Bicep 言語またはツールで確認したいアイデアがある場合は、pull request を投稿できます。 詳細については、「 Bicep への貢献」を参照してください。

次のステップ