1. はじめに

1-1 ご挨拶

初めまして、井村と申します。
今更ですが Azure リソースをデプロイするドメイン固有言語 (DSL) であるBicepが使いやすいそうです。その為、mslearnを用いて勉強をしてみました。本番環境と開発環境へAzureサービスをリリースする際に、Azureサービスのスペックを切り替えるBicepテンプレートを作成します。

1-2 対象読者

  • Azureに興味がある
  • Bicepに興味がある

1-3 成果物

Bicepテンプレートを作成し、成果物としては下図の通りストレージアカウントを作成します。ポイントは2点です。
・リソースグループと同様のロケーションで作成
・本番環境はゾーン冗長、開発環境はローカル冗長で作成

【Azure】Bicepを用いて環境を切り替えながらストレージアカウントをデプロイする

※事前にAzureアカウントは作成済みです。Azure CLI、Bicepはインストール済みです。

2. 構築

それでは、構築始めます。リソースグループはAzure CLIで作成します。

2-1 リソースグループの作成

bash
# Azureへログイン
az login

#変数宣言
myResourceGroupDev=dev-rg
myResourceGroupPro=pro-rg

locationDev=japanwest
locationPro=japaneast

# 開発環境リソースグループの作成
az group create -l $locationDev -n $myResourceGroupDev

# 本番環境リソースグループの作成
az group create -l $locationPro -n $myResourceGroupPro

上記を実行して東日本リージョン(本番環境)、西日本リージョン(開発環境)それぞれにリソースグループを作成します。
続いてストレージアカウントを作成するBicepテンプレートになります。

2-2 Bicepテンプレートの作成

以下がBicepテンプレートになります。Bicepテンプレートを作成するときは、Visual Studio CodeにBicep拡張機能をインストールして作成するのが便利です。

【Azure】Bicepを用いて環境を切り替えながらストレージアカウントをデプロイする

上記Bicepテンプレート少し解説します。
2行目のallowedで本番環境なら'pro'、開発環境なら'dev'を選択します。Bicepテンプレートをデプロイする際に指定します。
9行目の'resourceGroup()'関数にてリソースグループのロケーションを取得します。
15行目はif文みたいなものです。2行目で'pro'を指定した場合、'Standard_ZRS'が選択されます。これがゾーン冗長になります。
18行目以下がストレージアカウントの設定になります。上記指定したパラメータ、変数を代入しています。

コピーされる方は以下にテンプレートを折りたたんでいます。

元のBicepテンプレート


@description('Bash実行時に本番環境または開発環境を選択する')
@allowed([
  'pro'
  'dev'
])
param environmentType string

@description('リージョンはリソースグループに依存する')
param location string = resourceGroup().location

@description('ストレージアカウントの名前。 環境 + st + tkimura')
param storageAccountName string = '${environmentType}sttkimura'

@description('本番環境はゾーン冗長、開発環境はローカル冗長')
var storageAccountSkuName = (environmentType == 'pro') ? 'Standard_ZRS' : 'Standard_LRS'

@description('ストレージアカウント生成')
resource storageAccount 'Microsoft.Storage/storageAccounts@2022-05-01' = {
  name: storageAccountName
  location: location
  sku: {
    name: storageAccountSkuName
  }
  kind: 'StorageV2'
  properties: {
    accessTier: 'Hot'
  }
}


2-3 ストレージアカウントをデプロイ

以下コマンドをbashで実行します。

bash
# Azureへログイン
az login

#変数宣言
myResourceGroupDev=dev-rg
myResourceGroupPro=pro-rg

# 開発環境でのストレージアカウント作成
az deployment group create --resource-group $myResourceGroupDev --template-file main.bicep --parameters environmentType=dev

# 本番環境でのストレージアカウント作成
az deployment group create --resource-group $myResourceGroupPro --template-file main.bicep --parameters environmentType=pro

上記コマンドにて'--parameters'の引数はBicepテンプレートで2行目で指定する'pro'か'dev'に該当します。

3. 確認

3-1 開発環境のリソースグループ

【Azure】Bicepを用いて環境を切り替えながらストレージアカウントをデプロイする

場所は西日本リージョンで作成されてますね。

3-2 開発環境のストレージアカウント

【Azure】Bicepを用いて環境を切り替えながらストレージアカウントをデプロイする

場所は西日本リージョン、レプリケーションはローカル冗長(LRS)で作成されてますね。

3-3 本番環境のリソースグループ

【Azure】Bicepを用いて環境を切り替えながらストレージアカウントをデプロイする

場所は東日本リージョンで作成されてますね。

3-4 本番環境のストレージアカウント

【Azure】Bicepを用いて環境を切り替えながらストレージアカウントをデプロイする

場所は東日本リージョン、レプリケーションはゾーン冗長(ZRS)で作成されてますね。

4. おわりに

本記事を最後まで読んで頂きましてありがとうございます。
初めてBicepを触りましたが、ARMテンプレートをごりごり操作するより、
だいぶ使いやすい印象でした。しばらく勉強しようと思います。

5. 参考記事


原创声明:本文系作者授权爱码网发表,未经许可,不得转载;

原文地址:https://www.likecs.com/show-308626650.html

相关文章:

  • 2021-05-10
  • 2021-09-21
  • 2021-09-04
  • 2021-09-21
  • 2021-10-27
  • 2021-08-12
  • 2021-09-19
猜你喜欢
  • 2020-07-12
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-08-10
  • 2021-07-27
  • 2021-08-19
相关资源
相似解决方案