概要
AzureのIaCをするにあたって、Bicepにチャレンジしようと思って、環境構築周りの備忘録。
Bicep自体の説明は他所に譲ります(笑)。
環境
・MacBook Air
・Power Shell
・Azure PowerShell
・Visual Studio Code
手順
Power ShellにAzure PowerShellモジュールをインストール
私の環境はMacBookで、こちらに記載した手順でインストールしました。
MacにAzure PowerShellを入れる
Bicepツールのインストール
Bicepを使うための環境構築手順は、Microsoft Learnの以下のページに記載があります。
Bicep ツールのインストール
Azure PowerShellを使う場合のBicepツールのインストールについては、Microsoft Learnに手順が記載されています。
Bicep ツールのインストール - Azure PowerShell
私の環境はMacBookなので、シェル上で以下のコマンドを実行して、Bicepツールをインストールしました。
> brew tap azure/bicep
> brew install bicep
Visual Studio CodeにBicepの拡張機能をインストールする
拡張機能のマーケットプレイスで、Bicepを検索し、インストールをクリックします。
インストールが完了すると、「ようこそ」タブが開き、チュートリアルが表示されます。
「Create Bicep file」をクリックします。
任意のフォルダに、拡張子「bicep」のファイルを作るようにします。
ここではデフォルトのmain.bicepを作ってみました。
リソースグループの作成
Microsoft Learnに、Bicepでリソースグループを作成する手順が記載されています。
→ Bicep を使用してリソース グループを作成する
一旦、ここに記載されているコードをそのままコピペします。
targetScope='subscription'
param resourceGroupName string
param resourceGroupLocation string
resource newRG 'Microsoft.Resources/resourceGroups@2024-11-01' = {
name: resourceGroupName
location: resourceGroupLocation
}
スコープ
1行目の「targetScope」で、どこのレベルへのデプロイかを決めるようです。
targetScope='resourceGroup' ・・・ リソースグループ内へのデプロイ(デフォルト)
targetScope='subscription' ・・・ サブスクリプション内へのデプロイ
他にも、管理グループへのデプロイやテナントへのデプロイが設定できますが、説明は割愛。
参考:デプロイ スコープについて
パラメータ
3〜4行目の、先頭に「param」と書かれた行は、(そのまんまですが)パラメーターの定義する行です。
パラメーターは、ここで代入もできるようですが、Bicepファイルを実行するときの引数でも指定できるようです。
→ 後ほど説明
リソース
6〜9行目の記載で、作成するリソース(ここではリソースグループ)を指定しています。
リソースの記述の仕方はこんな感じだそうです。
resource <symbolic-name> '<full-type-name>@<api-version>' = {
<resource-properties>
}
Microsoft Learnの説明は以下のページです。
リソースの Bicep を使った宣言
symbolic-nameは変数名みたいなものでしょうかね。
full-tyoe-nameが作成するリソース、api-versionがリソースを作成するときに使用するAPIのバージョンです。
full-type-nameと、使用できるバージョン番号は、以下のページを開いて、左側のツリーから検索することができます。
Bicep、ARM テンプレート、Terraform AzAPI プロバイダーを使用してリソースを定義する
resource-propertiesにも様々指定することが可能です。
今回のBicepファイルでは、リソースグループ名とロケーションを指定しています。
api-versionの変更
ここでは、リソースグループのAPIバージョンを最新のものに変えておこうと思います。
Visual Studio Codeで、@以降の文字列を削除し、再度@を入力すると、
インテリセンスで使用できるapi-versionが表示されます。
ここまででBicepファイルの作成作業は一旦終了。
Bicepファイルの実行
Power Shell(Azure PowerShell モジュール導入済み)を使って、Bicepファイルでリソースグループを作成したいと思います。
Power Shellを起動し、カレントディレクトリをBicepファイルのあるフォルダに移動します。
以下のコマンドを実行します。
> Connect-AzAccount
> New-AzSubscriptionDeployment -location japanwest -TemplateFile main.bicep -resourceGroupName demoResourceGroup -resourceGroupLocation japanwest
1つ目のコマンド(Connect-AzAccount)は、Azureへの接続コマンドです。
ブラウザが起動してくるので、Azureポータルへのログインを行なってください。
特段サブスクリプションの指定をしていないので、既定のサブスクリプションでBicepが実行されるのかな?
Azureポータルで、ちゃんとリソースグループが作成されたかを確認。
次回は、リソースグループの中にApp Serviceなどのリソースを作成するところまで、まとめてBicepで書く方法を調べる・・・予定。