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

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

重要

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

前提条件

  • Azure サブスクリプション: Azure サブスクリプションを所有していない場合は、開始する前に無料アカウントを作成

  • Bicep ツールのインストール: Bicep 開発用に環境を設定するには、「 Bicep ツールのインストールを参照してください。

    • このクイック スタートでは、作成に Visual Studio (VS) コードを使用します。 そのため、VS Code と Bicep 拡張機能をインストールします。
    • デプロイの場合は、Azure CLI または Azure PowerShell をインストールできます。
    • また、作成用に Visual Studio と Bicep 拡張機能をインストールすることもできます。この拡張機能は、同じ作成エクスペリエンスを提供します。
    • Azure Powershell を使用している場合は、VS Code 拡張機能と Azure CLI または Bicep CLI 用の Bicep バージョン v0.27.1 以降があることを確認します。
  • Microsoft Entra ロール: セキュリティ グループを作成するためのアクセス許可が必要です。 ユーザーは既定でこのアクセス許可を持っています。 ただし、 管理者はこの既定値をオフにすることができます その場合は、少なくとも User Administrator ロールを割り当てる必要があります。

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

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

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

{
    "experimentalFeaturesEnabled": {
        "extensibility": true
    }
}

main.bicepに「provider microsoftGraph」と入力して、Bicep コンパイラに Microsoft Graph 型が含まれていることがわかります。 次の行で、 resource キーワードを使用してリソースを定義します。 resource exampleGroup入力し、スペースを追加します。

provider microsoftGraph

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 ファイルは次のようになります。

provider microsoftGraph

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 ファイルをデプロイします。

az group create --name exampleRG --location eastus

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 リソースを削除するコマンドを示します。

az group delete --name exampleRG

az rest --method delete --url https://graph.microsoft.com/v1.0/groups(uniqueName=%27myExampleGroup%27)

次のステップ