次の方法で共有


クイック スタート: Microsoft Graph リソースを使用して最初の Bicep ファイルを作成してデプロイする

このクイック スタートでは、Microsoft Graph リソースと Azure リソースをそれぞれ表す Microsoft Entra セキュリティ グループとマネージド サービス ID (MSI) を宣言する Bicep ファイルを作成します。 その後、グループの所有者として MSI を追加します。 また、Bicep 拡張機能に備わっているタイプ セーフ、構文の検証、オートコンプリートによって、開発がどのように簡略化されるかについても説明します。 最後に、サインインしているユーザーを使用して Bicep ファイルをデプロイします。

重要

このクイック スタート記事では、非推奨となり、2025 年 1 月 24 日に廃止される組み込み型の代わりに動的な型参照を使用します。 提供終了日まで、 extension microsoftGraphで示される組み込み型は、新しい動的型と共存します。 既存の Bicep ファイルのいずれかが組み込み型を使用している場合は、 動的な型の使用に切り替えて 今後の Bicep ファイルのデプロイの問題を回避します。

重要

Microsoft Graph Bicep は現在プレビュー段階です。 ベータ版、プレビュー版、または一般提供としてまだリリースされていない Azure の機能に適用される法律条項については、「Microsoft Azure プレビューの追加使用条件」を参照してください。

前提条件

Microsoft Graph アプリケーション グループを追加する

VS Code を起動し、2 つの新しいファイル ( main.bicepbicepconfig.json を同じフォルダーに作成します。

次に、Bicep ファイルで Microsoft Graph リソースを宣言できるようにするには、Bicep プレビュー機能を有効にして、 bicepconfig.jsonを構成して Microsoft Graph Bicep の種類のバージョンを指定する必要があります。

このサンプルでは、v1.0 リソースを使用し、わかりやすい拡張名 "microsoftGraphV1" を宣言して、Microsoft アーティファクト レジストリbr:mcr.microsoft.com/bicep/extensions/microsoftgraph/v1.0:0.1.8-preview型バージョンを参照します。

{
    "experimentalFeaturesEnabled": {
        "extensibility": true
    },
    // specify an alias for the version of the v1.0 dynamic types package you want to use
    "extensions": {
      "microsoftGraphV1": "br:mcr.microsoft.com/bicep/extensions/microsoftgraph/v1.0:0.1.8-preview"
    }
}

また、同じ Bicep ファイルでベータ版と v1.0 から Microsoft Graph リソースを宣言するには、Microsoft アーティファクト レジストリからベータ版のバージョンへの参照を追加します。

main.bicepで、「extension microsoftGraphV1」と入力します。ここで、microsoftGraphV1は、Microsoft アーティファクト レジストリ内の動的な型パッケージを参照するためのわかりやすい名前です。 extension ステートメントを使用すると、Bicep コンパイラは、bicepconfig.jsonで定義した Microsoft Graph 型が含まれていることがわかります。 次の行で、 resource キーワードを使用してリソースを定義します。 resource exampleGroup入力し、スペースを追加します。

extension microsoftGraphV1

resource exampleGroup

シンボリック名の後にスペースを追加すると、リソースの種類の一覧が表示されます。 使用可能なオプションから Microsoft.Graph/Groups を選択できるようになるまで、「group」と入力し続けます。

リソースの種類として Microsoft Graph グループを選択するスクリーンショット。

ヒント

VS Code に Intellisense オプションが表示されない場合は、 Prerequisites で指定されているとおりに Bicep 拡張機能がインストールされていることを確認してください。 この拡張機能をインストールしている場合は、Bicep ファイルを開いた後、Bicep 言語サービスが起動されるまで少し時間を置いてください。 右下隅の通知は、このサービスが起動中であることを示します。 その通知が消えたとき、このサービスが実行されています。

Microsoft.Graph/Groups を選択すると、使用可能な API バージョン (ベータ版または v1.0) が表示されます。 v1.0 が使用できないか、必要なリソース プロパティがベータ版でのみ使用できる場合を除き、常に v1.0 を選択してください。 このクイック スタートでは、v1.0 を使用します。

リソースの種類に対する API バージョン選択を示すスクリーンショット。

リソースの種類の一重引用符の後に = とスペースを追加します。 リソースにプロパティを追加するためのオプションが表示されます。 [required-properties] を選択します。

必要なプロパティを追加しているスクリーンショット。

このオプションを選択すると、デプロイに必要なリソースの種類のすべてのプロパティが追加されます。 このオプションを選択すると、グループには次のプロパティがあります。

resource exampleGroup 'Microsoft.Graph/groups@v1.0' = {
  displayName: 
  mailEnabled: 
  mailNickname: 
  securityEnabled: 
  uniqueName: 
}

これらのプロパティの値を指定し、 mailEnabledfalse に、 securityEnabledtrue に設定します。 uniqueName は、このグループ リソースの不変のクライアント指定キーを表します。

マネージド ID リソースを追加する

Bicep 拡張機能を備えた VS Code は、マネージド ID を作成するスニペットなどの定義済みのスニペットを提供することで、開発を簡略化します。 main.bicep で、「 man」と入力し、一覧から res-managed-identity を選択し、[Tab] または [Enter] キーを押します。

リソース スニペットの追加のスクリーンショット。

注: Resource スニペット Microsoft Graph リソースなどの拡張可能なリソースは現在サポートされていません。

これで、Bicep ファイルには次のコードが追加されました。

resource managedIdentity 'Microsoft.ManagedIdentity/userAssignedIdentities@2018-11-30' = {
  name: 'name'
  location: location
}

不足しているパラメーター定義エラーを修正するには、locationパラメーター定義を追加します。 拡張機能の定義の下に、 param location string = resourceGroup().locationを追加します。 ここで使用する関数の詳細については、「 resourceGroup()」を参照してください。 マネージド ID の名前を name から exampleManagedIdentity に変更します。

マネージド ID をグループ リソースの所有者にする

exampleGroup リソースで、uniqueNameの下に新しい行を作成し、「ow」と入力します。所有者唯一の一致するプロパティ オプションとして表示され、[Tab] または [Enter] キーを押します。

所有者プロパティの追加のスクリーンショット。

owners プロパティは配列です。 そのため、[]を追加し、intellisense を使用してマネージド ID のプリンシパル ID を参照します。mを入力し、managedIdentity (マネージド ID のシンボリック名) を選択し、.を入力してプロパティを選択、別の.を入力し、principalId を選択します

マネージド ID を参照しているスクリーンショット。

これで、 main.bicep ファイルは次のようになります。

extension microsoftGraphV1

param location string = resourceGroup().location

resource exampleGroup 'Microsoft.Graph/groups@v1.0' = {
  displayName: 'My example group'
  mailEnabled: false
  mailNickname: 'my-example-group'
  securityEnabled: true
  uniqueName: 'myExampleGroup'
  owners: [managedIdentity.properties.principalId]
}

resource managedIdentity 'Microsoft.ManagedIdentity/userAssignedIdentities@2018-11-30' = {
  name: 'exampleManagedIdentity'
  location: location
}

サインインしているユーザーを使用して Bicep ファイルをデプロイする

次の例を使用して、Azure CLI または Azure PowerShell にサインインして、Bicep ファイルをデプロイします。 このドキュメントの Azure CLI の例では、Bash コンソールを使用します。

## Sign in to Azure CLI
az login

## Create a resource group
az group create --name exampleRG --location eastus

## Deploy the Bicep file
az deployment group create --resource-group exampleRG --template-file main.bicep

デプロイが完了すると、デプロイが成功したことを示すメッセージが表示されます。

Note

レプリケーションの遅延により、Microsoft Entra グループの所有者としてマネージド サービス ID (MSI) を追加すると、デプロイが失敗する可能性があります。 少し待ってから、同じ Bicep ファイルをもう一度デプロイします。

リソースをクリーンアップする

Azure リソースが不要になったら、Azure CLI か Azure PowerShell のどちらかのモジュールを使用してクイックスタート リソース グループを削除します。

Note

リソース グループは Azure の概念であり、Microsoft Graph リソースには影響しません。 Microsoft Graph リソースは、Microsoft Graph への追加要求でクリーンアップする必要があります。 このためには、Azure CLI または Azure PowerShell、 Microsoft Graph CLI、または Microsoft Graph PowerShell を使用できます。

次の例では、Azure CLI と Azure PowerShell を使用して、最初に Azure リソースを削除し、次に Microsoft Graph リソースを削除するコマンドを示します。

## Delete the resource group
az group delete --name exampleRG

## Delete the Microsoft Graph group
az rest --method delete --url 'https://graph.microsoft.com/v1.0/groups%28uniqueName=%27myExampleGroup%27%29'

次のステップ