Azure Portal の操作時の HTTP リクエストをブラウザを使ってみてみる

こんにちは、駆け出しアーキテクトのやまぱんです。
最近 Azure の IaC 、bicep や ARM Template を触ることがあります。
そこでハマった時などAzure Portal 操作時の HTTP リクエストを F12(開発者ツール)を使って見比べることがあります。
今回はその方法について、ストレージ アカウントの作成を例にしてまとめてみます。

なにか間違ってる点や補足などなどあればコメントもらえれば嬉しいです！

## やること
Azure Portal でストレージ アカウントの作成する際のHTTPリクエストを Edge でみてみましょう！
そして ARM Template と比較してみます。


## 事前準備
* 行う操作：ストレージ アカウントのデプロイ
* ブラウザ：Microsoft Edge 
 (Google Chromeなど他のブラウザでも同様のことは大体同じ方法でできます。)
参考：下記サイトで Chrome や Firefox でのやり方が記載されています。
https://programmer-life.work/html_css/html-request

## Azure Portal でストレージ アカウントの作成する際のHTTPリクエストを Edge でみてみる
### ストレージ アカウント作成画面までいく
* Azure Portal → 検索窓で 「ストレージ アカウント」 → 「作成」
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2982508/556fd6cf-4768-09c3-6962-36736a45194a.png)

道なりに下記画面まで行きます。
この際、**[作成]はまだ押しません**
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2982508/398b216e-79c0-e7d1-b348-b7da442a4a35.png)

### 【今回のキモ】開発者ツールを準備
**F12を押して開発者ツールを立ち上げて**、[ネットワークタブ] で レコーディングマーク(赤くなってる)ことを確認します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2982508/cef54ad6-2f89-ea25-301e-0f047ce6b6ef.png)

### ストレージ アカウントを [作成]
準備ができたら、[作成] をクリックしてストレージ アカウントを作成します。

* デプロイ直後
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2982508/3e7190b2-1dc2-466c-b3a9-b0eb0ba5143f.png)

* デプロイ完了後
なにやらいろいろでてるのが確認できます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2982508/a10c4cf0-c1fd-cd95-6dcf-d16332e8d894.png)

### 実際のHTTPリクエストを確認する
今回のメインです。
さっき何やら作成された項目のうち上の方のやつをクリックして比較的分量の多いやつを選択します。
右クリックして [値のコピー] をして VScode などのテキストエディタで確認することができます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2982508/4f969acb-3f94-84ff-e016-ef066864fe6e.png)

値のコピーをして VScode などのテキストエディタで開きましょう。
json　形式なので、VScode の json 拡張機能で整形(json format)すると見やすいのでおすすめです。


または HAR ファイルとしてエクスポートすることも可能です。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2982508/34113aaf-fe53-de48-bc62-65d6a387c021.png)
HAR ファイルについては深くは触れませんが、HARファイルを見るツールがあったり、そのまま vscode で見ることも可能です。


## デプロイ時のTemplate ファイルと実際のリクエストを比較する
今回のメイン２です。
### デプロイ時のテンプレートとパラメータファイルをダウンロードする
下記はデプロイ前にダウンロードした画面ショットです。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2982508/afe513ab-9929-ef96-e74a-3afbfe6974c0.png)

デプロイ後からでも、Azure Portal  → リソースグループ → デプロイ → 該当の操作を選択 → 「テンプレート」ブレードからもダウンロード可能です。

### 比較してみる
先ほど実際の リクエストを vscodeで開き json format して、Azure Portal からダウンロードテンプレートファイル、パラメータファイルと比較してみます。

左がAzure Portal からダウンロードしたもので、右が実際の通信のリクエストです。

画面ショットを参考までにのせます。
リクエストの中にそのままテンプレートファイルやパラメータファイルの情報が入ってることが分かります。ほぼ ARM Template そのまま。

* 上部にはパラメータファイルの内容があります。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2982508/5b375783-3b63-9ca2-a65b-9057cc18bc91.png)

* 後半にはテンプレートファイルの内容があります。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2982508/64de824d-7f0a-5c97-afe9-6a44a601970b.png)


## 何が嬉しいんだってばよ
ARM Template や bicep などを触ってるときになぜかうまくいかなくて、「パラメータの設定おかしいかなー」とか思った時に実際 Azure Portal での操作時の通信を確認、比較してTROUBLE SHOOTING のヒントになったりします。

## 参考
*マイクロソフトの公式 Docs 
https://learn.microsoft.com/ja-jp/azure/azure-portal/capture-browser-trace

* 開発者ツールでできること一覧がまとまっています

https://weseek.co.jp/tech/4176/#Network

* その他

https://www.tsukimi.net/chrome-developer-tools_post.html

https://programmer-life.work/html_css/html-request

## あとがき
本筋とは全く関係ないですが、F12を押して開発者ツールを使うとSNSなどでたまに出回ってくる、銀行残高数億円みたいな画面ショットも簡単につくることができます。

例えば、、、

* 夢・・・100億円ゲットだぜ！！
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2982508/f0c6d6b8-4c0c-598f-d53e-904c8d6fef40.png)

* 実際は・・・こんなことしてます
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2982508/a1e4fdf4-69f0-55d5-8de6-31193dd22115.png)