なんてことはない話です。

AWSのOpsworks上での操作において、あるプロジェクトでは運用上コメントを書いてボタンをポチする必要があるケースがあります。先日コメントを書き忘れる事案が発生したので、ユーザースクリプトでちょっと工夫しました。

これで回避できるのか?という感じもしますけどとりあえずはやってみましょう。

まず、ブラウザにTampermonkeyを入れます。ユーザースクリプトを登録したり自分で書いたりできるブラウザ拡張です。

Tampermonkeyをインストールしたらおもむろにスクリプトを書きます。

 1// ==UserScript==
 2// @name         name
 3// @namespace    http://tampermonkey.net/
 4// @version      0.1
 5// @description  try to take over the world!
 6// @author       You
 7// @match        https://console.aws.amazon.com/opsworks/*
 8// @grant        none
 9// ==/UserScript==
10
11(function() {
12    'use strict';
13
14    // Your code here...
15    setTimeout(function() {
16        $('button[data-action="deploy.app"]').prop("disabled", true);
17    }, 5000);
18
19    $(document).on('change', 'textarea#deployment_comment', function() {
20        $('button[data-action="deploy.app"]').prop("disabled", false);
21    })
22})();

今回は

  • ボタンをdisabledにする
  • コメントのテキストエリアを変更したらボタンがenabledになる

としました。

画面的にはこんな感じです。右下のボタンはページロード後に追加で表示されるため、表示後にdisabledにしてあげる必要があります。きちんとやるのは面倒だったので適当に5秒待ってから実施しています。

コメントを書かないと右下のボタンを押せません。厳密に言うと文字を入れてから消した場合にもボタンが押せちゃいますが、それはそれでOKとします。特定のプロジェクトにのみ必要な対応なのです。

ユーザースタイルとかユーザースクリプト、個人的にはあまり使わないですが、運用上気をつけないといけないことに対応する用途はいいかもですね。本番サイトに警告を出すみたいなことが柔軟できそうだし。