ARM テンプレートと Bicep の記事の続編です
今回は, 前回の記事で紹介したサンプルを使ってデプロイ方法の比較をしてみたいと思います
前回の記事はこちら
ARM テンプレートとBicep 01 – クラウドを勉強し隊
目次での比較
公開情報で整理されているデプロイ方法を比較します
ARM テンプレートも Bicep も 参照するファイル (Json または Bicep) が必要です
そして, それらのファイルをデプロイするツールを比較します
ARM テンプレートのデプロイ方法
ARM テンプレートのデプロイ方法は公開情報の目次を見ると以下の方法があるようです
- Azure Portal
- Azure CLI
- Azure PowerShell
- Python
- REST API
- Cloud Shell
- Azure デプロイボタン

※上記の公開情報のスクショにはありませんが, CI/CD のソリューションも連携可能です
Bicep のデプロイ方法
Bicep のデプロイ方法は公開情報の目次を見ると以下の方法があるようです
- Visual Studio Code
- Azure CLI
- Azure PowerShell
- Cloud Shell

※上記の公開情報のスクショにはありませんが, CI/CD のソリューションも連携可能です
Cloud Shell を使った場合の比較
ARM テンプレートと Bicep の両方で利用可能な方法で, 比較的導入が簡単な CloudShell でためしてみます
(この記事をスマホを使って書いているという裏事情もあります 😅)
ARM テンプレートのデプロイ
デプロイに利用するテンプレートは前回の記事で紹介したストレージ アカウントのものにします
|
|
今回は Cloud Shell から参照できる場所にファイルを置いてデプロイを実行します
どこでもいいんですが Github に置いておきました
https://github.com/NakayamaKento/Azure_ARM_template/tree/main/Blog/arm_bicep_02
次に Azure Portal を開いて, Cloud Shell を PowerShell で立ち上げます
そして以下のコマンドを実行します
|
|
ローカルフォルダに保存されている ARM テンプレートを実行する際は以下のようになります
|
|
1行目で “ARMGroup” という名前のリソースグループの作成をします
2行目で ARM テンプレートに沿ってリソースをデプロイします
実際に実行した結果が以下のスクリーンショットです
画面上部で ARMGroup というリソースグループ内にストレージアカウントが1つできているのが確認できます

画面下部の Cloud Shell の実行結果を抜き出して,
DeploymentName というパラメータを見てみます
これは 今回のデプロイを表す名前です
もし, 同じ名前で異なる ARM テンプレートがデプロイされると今回の内容が上書きされます
場合によってはリソースが削除される場合があります
そのためこの DeployName は日付などを入れたりして, 誤って上書きされないようにします
もし渡さなければ ARM テンプレートのファイル名が使われます
|
|
Bicep のデプロイ
デプロイに利用するテンプレートは ARM テンプレートと同様に, 前回の記事で紹介したストレージ アカウントのものにします
|
|
Bicep も Cloud Shell から参照できる場所にファイルを置いてデプロイを実行します
執筆時点だと Cloud Shell を使って Bicep を実行するためには Cloud Shell のローカルフォルダに Bicep ファイルを保存しておく必要があります
使用するファイルは Github に ARM テンプレートとは別のレポジトリを作成して置いておきました
https://github.com/NakayamaKento/Azure_ARM_template/tree/main/Blog/arm_bicep_02
次に Azure Portal を開いて, Cloud Shell を PowerShell で立ち上げます
そして以下のコマンドを実行します
|
|
1行目で “BicepGroup” という名前のリソースグループの作成をします
2行目で Github からリポジトリをクローンします
3行目で Bicep ファイルのあるフォルダまで移動しています
そして 4行目で Bicep に沿ってリソースをデプロイします
実際に実行した結果が以下のスクリーンショットです
画面上部で BicepGroup というリソースグループ内にストレージアカウントが1つできているのが確認できます

DeploymentName のくだりは ARM テンプレートと同じです
|
|
まとめ
ARM テンプレートと Bicep のデプロイの違いを確認しました
ARM テンプレートはデプロイ可能なツールが多く,リモートに保存されているファイルを実行できます
一方 Bicep は実行できるツール ARM テンプレートと比較をすると少ないですが, 困るほどではないかなと思いました
どちらかというとツールの多さではなく, ローカルに保存されているファイルしか参照できないことが不便だなという印象です
デプロイ名などは共通する部分があるので, 片方を理解しておくともう片方の理解も捗りそうです
参考
- Cloud Shell を使用したテンプレートのデプロイ - Azure Resource Manager | Microsoft Learn
- PowerShell とテンプレートを使用してリソースをデプロイする - Azure Resource Manager | Microsoft Learn
- Cloud Shell を使用した Bicep ファイルのデプロイ - Azure Resource Manager | Microsoft Learn
- PowerShell と Bicep を使用してリソースをデプロイする - Azure Resource Manager | Microsoft Learn