はじめに
Microsoftのチュートリアルに沿ってBicepの使用感を確かめていく記事です。
Bicepとは
Microsoft Learnの説明が以下。
AzureリソースをInfrastructure as Codeで実現する際にARMテンプレートだとJSONで記載されているので操作が困難。そこをより簡単に実現するための手段がBicepだと私は理解しました。
Bicep は、Azure リソースを宣言によってデプロイするための言語です。 Bicep を使用して、Azure リソースの構成およびデプロイ方法を定義できます。 テンプレートと呼ばれる Bicep ファイル内にリソースを定義し、テンプレートを Azure Resource Manager に送信します。 リソース マネージャーは、テンプレート内の各リソースをユーザーに代わってデプロイする役割を担います。
ストレージアカウントを含むBicepテンプレートを作成する
Bicepテンプレートの作成
main.bicepという名前でコードを保存。
resource storageAccount 'Microsoft.Storage/storageAccounts@2022-09-01' = {
name: 'toylaunchstorage'
location: 'westus3'
sku: {
name: 'Standard_LRS'
}
kind: 'StorageV2'
properties: {
accessTier: 'Hot'
}
}
設定値 | 説明 |
---|---|
resource | リソースを定義することをBicepに指示する |
storageAccount | リソースシンボリック |
Microsoft.Storage/storageAccounts@2022-09-01 | リソースの種類とAPIバージョン |
name | リソース名 |
location | リソースの場所 |
sku | 価格レベル |
kind | ストレージの種類 |
properties | その他詳細 |
- StorageAccountのリソース名は一意である必要があります。
- locationを上記のようにハードコーディングするとワーニングがでます。以下のようにするのが推奨のようです。
param location string = resourceGroup().location
resource stg 'Microsoft.Storage/storageAccounts@2021-02-01' = {
location: location
}
Azure Cloud Shellを使用してデプロイを実行
以下のコマンドで既定のサブスクリプションを設定しておく。
$context = Get-AzSubscription -SubscriptionId {Your subscription ID}
Set-AzContext $context
以下のコマンドでリソースグループを設定
Set-AzDefault -ResourceGroupName [sandbox resource group name]
以下のコマンドでテンプレートをAzureにデプロイ
New-AzResourceGroupDeployment -TemplateFile main.bicep -resourceGroupName [Resource group name]