Bicepを試してみた-リソースグループ作成編-

はじめに

以前から気になっていた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を参考にしてデプロイしていきます。

learn.microsoft.com

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リソースを作成してみたいと思います!

執筆担当者プロフィール
近藤 結梨香

近藤 結梨香(日本ビジネスシステムズ株式会社)

業務では主にAzureに携わっています。映画好きで良く映画館に籠っています。

担当記事一覧