はじめに
前回の記事では、Bicep実行環境の準備と、Bicepを用いたリソースグループの作成を行いました。
本記事では、前回作成したリソースグループにストレージアカウントとAzureファイル共有を作成していきます。
前提条件
前回の記事を参照し、Bicepの実行環境の準備とリソースグループが作成されていることを前提とします。
ストレージアカウント作成
Bicepファイルの作成
今回は「storageaccount.bicep」というファイルを用意して、Visual Studio Codeで開きます。
ターゲットスコープの追加
ターゲットスコープは、デフォルトでは「resourceGroup」に設定されます。
今回はリソースグループレベルでのデプロイのため明示的な指定は必要ありませんが、
ソースを一目見ただけでリソースグループへのデプロイだと分かるようにするため、ファイルの先頭に以下を記載します。
targetScope = 'resourceGroup'
ストレージアカウントスぺニットの追加
ファイル内で「storage」と入力し、ストレージアカウントのリソーススぺニットを選択します。

前回の記事同様、パラメーターを追加しました。

ストレージアカウント名は3~24文字である必要があるため、パラメーターで文字数を指定しています。
@minLength(3) @maxLength(24) param StorageAccountName string = 'demobicepstorageaccount'
Azureファイル共有スぺニットの追加
今回はAzureファイル共有も作成するため、Azureファイル共有のリソーススぺニットを追加します。
Bicep拡張機能のオートコンプリートでは見つからなかったため、
以下URLを参考にしてリソーススぺニットを追加していきます。
リソーススぺニットを2つ追加しました。

依存関係の指定
Azureファイル共有とストレージアカウントには依存関係があるため、依存関係を指定する必要があります。
BicepはARM Templateと比べて依存関係の記載が非常に分かりやすいです。
リソースが依存関係にある場合、parentプロパティを使用することで、依存関係を指定することができます。 learn.microsoft.com
以下のように修正しました。

dependsOnプロパティも使用することができますが、公式では基本的にparentプロパティの使用が推奨されています。 learn.microsoft.com
これでBicepファイルは完成です!(長いため、折りたたみ表示しています)
storageaccount.bicep
targetScope = 'resourceGroup'
// パラメーターを定義
@minLength(3)
@maxLength(24)
param StorageAccountName string = 'demobicepstorageaccount' // ストレージアカウント名
param Location string = resourceGroup().location // ストレージアカウントの場所
param StorageAccountSKU string = 'Standard_LRS' // ストレージアカウントのSKU
@minLength(3)
@maxLength(63)
param ShareName string = 'demo-bicep-files' //Azureファイル共有名
resource storageaccount 'Microsoft.Storage/storageAccounts@2021-02-01' = {
name: StorageAccountName
location: Location
kind: 'StorageV2'
sku: {
name: StorageAccountSKU
}
}
resource fileservice 'Microsoft.Storage/storageAccounts/fileServices@2022-05-01' = {
name: 'default'
parent: storageaccount
}
resource share 'Microsoft.Storage/storageAccounts/fileServices/shares@2022-05-01' = {
name: ShareName
parent: fileservice
}
余談ですが、BicepファイルはARM Templateと異なり、コメントを追加することができます。便利ですね。
param ShareName string = 'demo-bicep-files' //Azureファイル共有名
パラメーターファイルの作成
BicepはARM Template同様パラメーターファイルを指定してデプロイすることができるため、 今回はパラメーターファイルも作成します。 learn.microsoft.com
Visual Studio CodeのBicep拡張機能でパラメーターファイルの生成ができるようなので、実際に生成してみます。

生成してみましたが、"parameters": {}の中身が空でした…

parametersの中身にパラメーターを追加していきます。 作成したパラメーターファイルは以下の通りです。
{
"$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentParameters.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"StorageAccountName": {
"value": "demobicepstorageaccount"
},
"Location": {
"value": "japaneast"
},
"StorageAccountSKU": {
"value": "Standard_LRS"
},
"ShareName": {
"value": "demo-bicep-files"
}
}
}
Bicepファイルとパラメーターファイルが完成したので、デプロイしていきます!
デプロイ
まずはAzureにログインします。
az login
今回はリソースグループレベルでのデプロイとなるため、前回とはコマンドが異なります。
以下のコマンドでデプロイします。
az deployment group create --resource-group <リソースグループ名> --template-file <Bicepファイル名> --parameters <パラメータファイル名>

しばらく待つと、JSONが表示されました。デプロイ完了です!

まとめ
今回はBicepを使用して、ストレージアカウントとAzureファイル共有を作成しました。
これまでBicepを使用してみた所管ですが、
ARM Templateの知識が多少あれば、Bicepも抵抗なく始めることができると思いました。
Bicepは情報はまだ少ない印象ですが、慣れてしまえばとても使いやすいため、
積極的に使っていきたいです。