【Bicep入門 #2】リソースグループをBicepで展開する
この記事の内容
- BicepでAzureリソースグループを作成する方法を解説します
- リソースグループ展開には「スコープ」の設定が重要であることを説明します
targetScope = 'subscription'の指定が必要な理由を解説しますaz deployment sub createコマンドを使ったデプロイ手順を紹介します- Azureポータルでデプロイ結果を確認する方法を解説します
Bicepファイルの作成
BicepでAzureリソースグループを作成するには、まず専用のBicepファイルを用意します。
リソースグループを定義する場合、Bicepファイルには以下のようにリソースを記述します。
resource rg 'Microsoft.Resources/resourceGroups@<APIバージョン>' = {
name: 't2miya-rg'
location: 'japaneast'
}
名前(name)と場所(location)が必須パラメーターになります。
スコープの設定が重要
リソースグループは、通常のリソースとスコープが異なる点に注意が必要です。
Bicepファイルにリソースグループを定義しただけでデプロイしようとすると、以下のようなエラーが表示されます。
これは、リソースグループ自体を作成するためにはサブスクリプションレベルのスコープで操作する必要があるためです。デフォルトのスコープはリソースグループになっているため、そのままでは展開できません。
targetScope の設定
この問題を解決するには、Bicepファイルの先頭に targetScope を指定します。
targetScope = 'subscription'
resource rg 'Microsoft.Resources/resourceGroups@<APIバージョン>' = {
name: 't2miya-rg'
location: 'japaneast'
}
targetScope には以下のいずれかを指定できます。
| 値 | 説明 |
|---|---|
resourceGroup | リソースグループスコープ(デフォルト) |
subscription | サブスクリプションスコープ |
managementGroup | 管理グループスコープ |
tenant | テナントスコープ |
リソースグループを作成するには subscription を指定します。これによりエラーが解消され、サブスクリプションを対象にリソースグループを作成するという意図が正しく伝わります。
デプロイコマンドの実行
テンプレートファイルが準備できたら、デプロイを実行します。リソースグループの展開はサブスクリプションレベルの操作になるため、az deployment group create ではなく az deployment sub create を使用します。
az deployment sub create \
--location japaneast \
--template-file <Bicepファイル名>.bicep
サブスクリプションレベルのデプロイでは --location パラメーターが必須です。指定しない場合はエラーになりますので注意してください。
コマンドを実行するとデプロイが開始されます。
デプロイ結果の確認
デプロイが完了したら、Azureポータルで確認できます。サブスクリプションのデプロイ一覧を確認すると、実行したデプロイが表示されています。
また、リソースグループの一覧を確認すると、Microsoft.Resources/resourceGroups として新しいリソースグループが作成されていることが確認できます。
まとめ
BicepでAzureリソースグループを作成する場合は、通常のリソース展開と異なりスコープの設定が重要なポイントになります。Bicepファイルの先頭に targetScope = 'subscription' を記述することで、サブスクリプションレベルの展開が可能になります。また、デプロイコマンドも az deployment sub create を使用し、--location パラメーターを忘れずに指定することが必要です。この仕組みを理解してしまえば、Bicepでのリソースグループ管理はとてもシンプルに進められます。