APC 亀崎です。前回に続き、第3回になります。
複数リソースをデプロイする
Azure BicepはAzureリソースデプロイを宣言的に記述できるDSLです。Azureのリソースデプロイ用の定義ファイルARM(Azure Resource Management) Templateを拡張したものになります。
前回までのように1つのリソースをデプロイするだけならば、「ARM TemplateのJSONファイルよりはちょっとだけ見やすいかもしれない」程度の認識だったかもしれません。Bicepの本領発揮はもう少し複雑な定義をしたときです。
PostgreSQL関係リソースのデプロイ
前回に引き続きAzure Database for PostgreSQLをデプロイするユースケースを考えてみましょう。
PostgreSQLをデプロイする際、プライベートネットワークからのみアクセス可能にするといったことも一般的かと思います。この場合以下の内容を設定しなければなりません。
- VNet作成
- PostgreSQL作成
- PostgreSQL用プライベートエンドポイント作成
- 内部ネットワーク側アクセス用 Private DNSの用意
- Private DNSへエンドポイントアドレスレコードを追加
今回はこれらの項目を一括してデプロイする定義ファイルを作成します。 作成したファイルはGitHubにて公開しています。
リソースとモジュール
Azure Bicepではモジュールという仕組みがあり、別ファイルで定義した内容を呼び出すことができます。上記の例ではVNetやendpointといった個別の要素を独立したファイルで定義し、それをまとめた1つのファイルをAzコマンドで呼び出すことで一連のリソースをまとめてデプロイするようにしています。
- VNet作成
- PostgreSQL作成
- PostgreSQL用プライベートエンドポイント作成
- 内部ネットワーク側アクセス用 Private DNSの用意
- Private DNSへエンドポイントアドレスレコードを追加
deploy azure database for PostgreSQL with private…
前回あった resource
の代わりに module
という指定が見えると思います。これらが別ファイルを呼び出している部分です。postgresqlの定義は postgresql.bicep
ファイルに、VNetについては vnet.bicep
にと、それぞれわけて定義することで内容の見通しがよくなり、再利用もしやすくなります。またそれを module
でまとめていくことで一連のリソースをまとめてデプロイすることが可能になります。
今回のPostgreSQL リソースは以下のコマンドでデプロイできます。とても簡単ですね。
# Resource Group作成 az group create --name rg-sample --location japaneast # postgresql関連リソースデプロイ az deployment group create -f ./deploy.bicep -g rg-sample \ --parameters adminUser=<admin user name> adminPassword=<password>
今回はまず全体像をご紹介するところに留め、次回は個別の解説をしていきたいと思います。