はじめに
以前から気になっていたBicepを使用してリソースグループを作成してみようと思います。
Infrastructure as Code(IaC)とは
Infrastructure as Code(以下IaCと表記)は、直訳すると「コードとしてのインフラ」という意味になります。
IaCとは、インフラ環境の構築や運用を、コードを用いて行うことです。
IaCを導入することで、大量のサーバーを素早く構築したり、
手動作業で発生しがちな人為的なミスを減らすことができます。
Bicepとは
Bicepとは、AzureにおけるIaCを実現するための機能の1つです。
Bicepバージョン0.3以降は、Microsoftが公式でサポートしています。
learn.microsoft.com
AzureにおけるIaCの代表的な機能にARM templateがありますが、
ARM templateは冗長かつ複雑なJSON構文の作成が必要になります。
筆者もARM templateで構築をした際、JSONが複雑になってしまい苦労した経験があります。
BicepはARM templateと比べるとより簡潔で読みやすくなっており、開発がし易くなっています。
また、Bicepのデプロイ時にARM templateに変換されるため、ARM templateの機能が失われることはありません。
Bicep実行環境の準備
Bicep CLIのインストール
Bicep CLIはAzure CLIまたはAzure Powershellで使用することができます。 learn.microsoft.com
本記事では、Azure CLIを使用します。
Bicep CLIを使用するためにはAzure CLI 2.20.0 以降のインストールが必要です。
必要に応じてAzure CLIのインストールまたはアップグレードをしましょう。
learn.microsoft.com
自分のローカルPCでPowershellを起動し、Bicep CLIのバージョン確認をします。
az bicep version
筆者のPCでは以下のバージョンが表示されました。
Azure CLI 2.20.0以降がインストールされている場合はBicep CLIが自動でインストールされているようです。
インストールされておらずエラーメッセージが出た場合は、以下のコマンドを実行してBicep CLIをインストールします。
az bicep install
Visual Studio Codeのインストール
Visual Studio CodeにはBicep拡張機能が用意されているため、 エディタはVisual Studio Codeを使用します。 詳細なインストール方法は本記事では省きますが、 インストールしていない場合は以下のURLからインストールしましょう。 azure.microsoft.com
Bicep拡張機能のインストール
Bicep拡張機能では、リソースオートコンプリートやBicep構文の検証などを行ってくれるようです。
Visual Studio Codeを起動し、Bicep拡張機能をインストールしましょう。
リソースグループの作成
Bicep実行環境が用意できたので、実際にBicepファイルを作成して、 リソースグループを作成してみます。
リソースグループはサブスクリプションレベルでのデプロイになるため、以下のURLを参考にしてデプロイしていきます。
Bicepファイルの作成
「main.bicep」というファイルを用意して、Visual Studio Codeで開きます。
ファイル内で「rg」と入力すると、Bicep拡張機能のオートコンプリートで
事前に定義されたリソーススぺニットが表示されるため、今回はリソースグループのスぺニットを選択します。
選択するとコードが表示されました。
これだけではデプロイできないため、ターゲットスコープとパラメーターを追加していきます。
ターゲットスコープの追加
ターゲットスコープは、デフォルトでは「resourceGroup」に設定されます。
今回はサブスクリプションレベルでのデプロイを行うため、明示的に指定が必要です。
main.bicepの先頭に「targetScope = 'subscription'」を追記します。
パラメーターの追加
リソースグループと、リソースグループの場所を指定するパラメーターを追加します。
'name'をresourceGroupNameに、locationをLocationに変更します。
これで、リソースグループを作成するBicepファイルが完成しました!
targetScope = 'subscription' param resourceGroupName string = 'test-bicep-rg' param Location string = 'japaneast' resource resourceGroup 'Microsoft.Resources/resourceGroups@2021-04-01' = { name: resourceGroupName location: Location }
デプロイ
Bicepファイルが完成したので、Azure CLIコマンドでデプロイします。
まずはAzureにログインします。
az login
サブスクリプションレベルでデプロイする場合は、以下のコマンドを使用します。
az deployment sub create --location <デプロイデータを格納する場所> --template-file <Bicepファイル名>
デプロイコマンドを実行すると、「Running..」と表示されます。
しばらく待つとJSONが表示され、デプロイ完了です!
Azureポータルで確認してみると、無事に作成されていました。
まとめ
今回はBicepを使用して、リソースグループを作成しました。
次回の記事では、リソースグループレベルのAzureリソースを作成してみたいと思います!