はじめに

完了

一部の Azure リソースはリソース グループの外部にデプロイされ、代わりに、サブスクリプション、管理グループ、またはテナント全体など、さまざまな "スコープ" にデプロイされます。 Bicep を使うと、これらの各スコープで Azure リソースを作成および構成できます。また、Azure リソースのポートフォリオ全体でコードとしてのインフラストラクチャを使う恩恵が受けられます。

シナリオ例

あなたは、玩具の企業において Azure インフラストラクチャをデプロイおよび構成する責任を負うものとします。 社内の研究開発チームは、Teddybear プロジェクトという極秘プロジェクトの一環として、新しいおもちゃを設計しています。 チームからあなたに対して、プロジェクトの情報が会社の他のメンバーに誤って公開されないように、専用の Azure サブスクリプションを作成することが依頼されています。

研究開発チームは、このサブスクリプション内で仮想マシンを使用する予定ですが、コスト削減のため、そのサブスクリプション内で特定の仮想マシン SKU のみを作成できるようにする支援があなたに求められています。 また、サブスクリプション内で仮想ネットワークを作成するための支援も求められています。なぜなら、最終的に、そのネットワークからあなたが管理しているメインの企業ネットワークに接続する必要があるからです。

これらのコンポーネントが Azure サブスクリプション内でどのように適合するかを示した図を次に示します。

Diagram that shows an Azure subscription, a policy, and a resource group containing a virtual network.

あなたは、研究開発チームは最近多額の資金を獲得したため、今後はさらに多くの秘密プロジェクトを抱える可能性があることを把握しています。 そこで、そのような特別なプロジェクトがあるごとに再利用可能なテンプレートを作成することにしました。

学習内容

このモジュールでは、Azure リソースをデプロイできるさまざまなスコープと、リソース グループの外部にデプロイされる一般的なリソースについて説明します。 サブスクリプションとリソース グループにデプロイする Bicep ファイルを作成します。 また、管理グループにデプロイする Bicep ファイルも作成します。 この過程で、次のような Bicep の機能について学習します。

  • targetScope キーワードを使用して Bicep ファイルのスコープを設定する。
  • モジュールと scope キーワードを使用して、1 つのデプロイ内でさまざまなスコープにリソースをデプロイする。
  • resourceGroup()subscription()managementGroup()tenant() 関数を使用して、特定のスコープをターゲットにする。

主な目標

このモジュールを完了すると、Bicep テンプレートを作成して、サブスクリプション、管理グループ、およびテナントの各スコープにデプロイできるようになります。 また、Bicep ファイルを作成して使用し、1 回のデプロイで複数のスコープにデプロイできるようになります。

前提条件

次のことを理解している必要があります。

  • 基本的な Bicep テンプレートの作成とデプロイ。
  • Azure (Azure portal、サブスクリプション、リソース グループ、リソース定義など)
  • 子リソースと拡張リソース。

Note

このモジュールでは、拡張リソースに関する知識を基にして説明します。 復習が必要な場合は、「Bicep を使用して子リソースと拡張リソースをデプロイする」を参照してください。

モジュールの演習を進めるには、次のものが必要です。

  • サブスクリプションレベルのリソースを作成できる Azure アカウント。 演習の 1 つ (省略可能) については、管理グループとポリシーを作成できる必要があります。

    ヒント

    現在の Azure アカウントでこれらの要件を満たすことができない場合は、無料試用版を取得し、新しい Azure サブスクリプションとテナントを作成することができます。

  • Visual Studio Code がローカルにインストールされていること。
  • Visual Studio Code 用の Bicep 拡張機能がローカルにインストールされていること。
  • 次のいずれか:
    • 最新の Azure CLI ツールがローカルにインストールされていること。
    • 最新バージョンの Azure PowerShell がローカルにインストールされていること。