AWS Management Console では、上部によく使うプロダクトのカスタムショートカットメニューを設定できて便利です。ですがその設定はブラウザのクッキーに保存されているのみでIAMユーザに紐付けて保存などはしてくれない為、マルチプロファイルやシークレットウィンドウを駆使して複数アカウントのコンソールの同時利用とかをしているとウィンドウ毎にメニューがまちまちだったりリセットされて空だったりして毎回設定し直すのも微妙に不便です。
そこで一つのウィンドウで行った設定を Javascript スニペットとしてエクスポートして、コピペで他ウィンドウ上に復元出来るようにしてみました。とりあえずはデベロッパーコンソールに貼り付けての利用で間に合ってるけど、お好みでブックマークレットとかにしておいても良いと思います。
Export script
使い方は以下の通りです。
- マネージメントコンソールを開いた状態でデベロッパーコンソールを開き、下記コードをコピペして実行
- プロンプトが出てきて復元用コードスニペットが表示される
- メニューを復元したい別ウィンドウでマネージメントコンソールを開き、2.のコードをコピペして実行
export_custom_menu.js
!function(){
const name = 'noflush_awscnm';
const value = document.cookie.split(/;\s*/)
.map(kv=>kv.split(/=/))
.reduce((p,c)=>Object.assign(p,{[c[0]]:c[1]}), {})
[name];
const domain = 'console.aws.amazon.com';
const path = '/';
const maxAge = 365*24*3600
const cookie = `${name}=${value}; domain=${domain}; max-age=${maxAge}; path=${path}; secure`;
const snipet = `(document.cookie='${cookie}')&&location.reload()`;
window.prompt("Snipet of AWS Custom Menu", snipet);
}();
やってることは noflush_awscnm
という名前のクッキーを取得&セットしてるだけです。
ところで最近はブラウザでも普通に ES2016 でコードが書けて快適ですね。ちなみに僕は PC ではほぼ Chrome しか使ってないので上記コードが他ブラウザで動くかどうかの確認まではしてませんがあしからず。