ほりひログ

所属組織の製品 (Azure とか) に関連する内容が多めだけど、個人の見解であって、所属組織を代表する公式情報ではないです。

Azure Portal Plusにコピー機能を付けた

Microsoft Build 2024が終わって、まとめ記事が上がってくるタイミングだと思うけど、Buildとは全く関係ないエントリー。

やりきった感いっぱいで放置気味だったChrome拡張Azure Portal Plusに機能を追加してみた。
chromewebstore.google.com
# リリース申請したら思いの外早く公開されてしまったので、慌てて書いた。

リソース関連の情報をコピーする機能で、リソース名の横にコピーボタンを追加した。
これをクリックすると、コピーする書式を選べる。

以下、コピーできる書式をご紹介。

Resource name

開いているリソースの名前をそのままコピーする。

リソース名だけをコピーするなら、実際のところ名前のところをダブルクリックして選択状態にしてCtrl+cを押せばよくて、正直全く困ってないんだけど、一番シンプルだし付けてみた。

そしてあまり知らなかったけど、実は元々ポータルには ... (More content actions) というところにある Copy titile to clipboard というメニューであって、ここからコピーができた(が使ったことがなかった)。

# もともとのメニュー

これをそのままにしておいてもよかったけど、コピー機能は集約した方がいいかなと思って、このリソース名だけのコピーを追加して元々あった方を非表示にしてる。


# コピー機能有効時のメニュー

元のコピーを使っている人はメニューが変わるので戸惑うかもしれない。
「戻してほしい」ってフィードバックが多ければ考えよう。

Resource Id

次はリソースID。
開いているリソースのIDをコピーする。

これも普段はアドレスバーをコピーして、前と後ろのいらないところを削って使ってた。
まぁ、できないことはないけど、ちょっと面倒だった。

もしかしたらもっと楽にリソースIDだけをコピー方法があるかもしれないけど、知らないので作った次第。

コピー時の書式は当然リソースIDの形式。

/subscriptions/{subId}/resourceGroups/{rgName}/providers/{rpName}/{resource_type}/{resourceName}

サブリソースの場合、単独で開けるものが見当たらないのでは試してない。

Resource name and group as Azure CLI option

Azure CLIのオプションの形式で、開いているリソースの名前とリソースグループ名でコピーする。

自分が一番欲しかったのがこのコピー書式で、これ以外はほぼおまけというくらいメインの書式。

これまでは、リソース名とリソースグループ名をそれぞれ、コピーしてターミナルにペーストして、それぞれの前にオプションを付けて、、、とツラかった。
どうしても我慢できなかったので、カッとなって実装した。

コピー時の書式は以下の通り。

--name {resource_name} --resource-group {resource_group_name}

あえて -nとか-gとかは使ってない。

Resource name and group as Azure PowerShell option

Azure CLI用だけ作るとPowerShell方面からそっぽ向かれそうなので、Azure PowerShellのオプション形式のコピーも作ってみた。

正直なところ、滅多にAzure PowerShell(というかPowerShell自体)を使わないので、書式がこれであってるだろうかも怪しい。

-Name {resource_name} -ResourceGroup {resource_group_name}

こっちも短縮形は使ってないけど、それはそもそも短縮形を知らないから。

Resource Template (JSON)

最後はJSON形式のARMテンプレートのコピー。

ポータルの画面右上のJSON ViewのリンクかJSONの表示ができて、そこからコピーができるのは知っているけど、操作がシンプルになるのはいいこと。

コピー時の書式はARMテンプレートがそのまま。

{
  "name": "{resource_name}",
  "id": "/subscriptions/{subscription_id}/resourceGroups/{resource_group_name}/providers/{resource_provider_name}/{resource_type}/{resource_name}",
  "type": "{resource_provider_name}",

    :
}

実際のところ、ARMテンプレート自体をコピーして何に使うかはあまり見えてないので、あまり出番はないかもしれない。
けど、これを実装するにあたってService WorkerでARMのAPIを実行する仕組みができたので、今後ARMのAPIを使った機能ができるかもしれない。

制限事項

サブスクリプションやリソースグループを開いている時はこのコピーボタンは出ない。


にしても、ポップアップだけで設定画面を賄うのは、作るのも使うのも辛くなってきたな。