はじめに
前回の記事では、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は情報はまだ少ない印象ですが、慣れてしまえばとても使いやすいため、
積極的に使っていきたいです。