🐱
既存のApp ServiceをBicepでテンプレート化してみたメモ
Azure App Service を使って作成したサービスを Bicep でテンプレート化したいと思った時に、Bicep ファイルを 1 から書くのは嫌だったので色々読んでみたところ、ARM テンプレートのエクスポート → Bicep ファイルへのデコンパイルができるらしいのでやってみた際のメモ
ARM テンプレートのデコンパイル機能
手順
以下手順で Bicep ファイルでのテンプレート化が可能
- 既存リソースから ARM テンプレートのエクスポート
- エクスポートされた ARM テンプレートを Bicep ファイルにデコンパイル
- Bicep ファイルの修正
ARM テンプレートのエクスポート
Azure CLI、Azure Portal どちらからでもエクスポート可能だが、bicep もどうせ CLI で実行するしテンプレート化するリソースグループ名指定すればいいだけなので Azure CLI がおすすめ
Azure CLI の場合
下記コマンドで簡単にエクスポート可能
az group export --name <resouce-group-name> > <filename>.json
Azure Portal の場合
任意のリソース管理画面に飛んでサイドメニューの下の方を見ると「テンプレートのエクスポート」があるのでそこからエクスポート可能
ARM テンプレートのデコンパイル
出力された json ファイルから下記コマンドで Bicep ファイルを出力する
az bicep decompile --file <filename>.json
アプリケーション設定
App Service のリソースをエクスポートしデコンパイルした際、アプリケーション設定がエクスポートされていなかった。
Bicep ファイルの App Service の項目にアプリケーション設定を追加する。
resource website 'Microsoft.Web/sites@2022-03-01' = {
//省略
properties: {
//省略
appSettings: [
{
name: 'Name'
value: 'Value'
}
]
}
}
参考
Azure のクイックスタートテンプレートのリポジトリにさまざまなケースの Bicep ファイルが公開されているのでとても参考になる。
Discussion