クイック スタート: 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 プレビューの追加使用条件」を参照してください。
前提条件
有効な Azure サブスクリプションを持っている: Azure サブスクリプションを所有していない場合は、開始する前に無料アカウントを作成。
作成と展開のために Bicep ツールをインストールします。 このクイック スタートでは、作成用に Bicep 拡張機能を含む VS Code を使用し、デプロイ用に Azure CLI を使用します。 Azure PowerShell のサンプルも提供されています。 最低限必要な Bicep バージョンは v0.30.3 です。
セキュリティ グループを作成するアクセス許可を割り当てる Microsoft Entra ロール を持ちます。 ユーザーは既定でこのアクセス許可を持っています。 ただし、 管理者はこの既定値をオフにすることができます その場合は、少なくとも Groups Administrator ロールを割り当てる必要があります。
Microsoft Graph アプリケーション グループを追加する
VS Code を起動し、2 つの新しいファイル ( main.bicep と bicepconfig.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」と入力し続けます。
ヒント
VS Code に Intellisense オプションが表示されない場合は、 Prerequisites で指定されているとおりに Bicep 拡張機能がインストールされていることを確認してください。 この拡張機能をインストールしている場合は、Bicep ファイルを開いた後、Bicep 言語サービスが起動されるまで少し時間を置いてください。 右下隅の通知は、このサービスが起動中であることを示します。 その通知が消えたとき、このサービスが実行されています。
Microsoft.Graph/Groups を選択すると、使用可能な API バージョン (ベータ版または v1.0) が表示されます。 v1.0 が使用できないか、必要なリソース プロパティがベータ版でのみ使用できる場合を除き、常に v1.0 を選択してください。 このクイック スタートでは、v1.0 を使用します。
リソースの種類の一重引用符の後に = とスペースを追加します。 リソースにプロパティを追加するためのオプションが表示されます。 [required-properties] を選択します。
このオプションを選択すると、デプロイに必要なリソースの種類のすべてのプロパティが追加されます。 このオプションを選択すると、グループには次のプロパティがあります。
resource exampleGroup 'Microsoft.Graph/groups@v1.0' = {
displayName:
mailEnabled:
mailNickname:
securityEnabled:
uniqueName:
}
これらのプロパティの値を指定し、 mailEnabled を false
に、 securityEnabled を true
に設定します。 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 を選択します。
これで、 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'