«前の日記(2014-07-11 (Fri)) 最新 次の日記(2014-07-17 (Thu))» 編集

雑記帳


2014-07-15 (Tue) [長年日記]

[AWS] DB Parameter Groupの設定をコピーするワンライナー

2014-10-16追記
CopyDBParameterGroup APIが増えたので、そちらを使いましょう。

DB Parameter Groupでユーザによる設定を変更したものを、別のDB Parameter Groupにコピーしたかったのだが、AWS CLIのドキュメントを読んでいて、ワンライナーで簡単にコピー出来そうだと思って試行錯誤したら出来た。

% aws rds describe-db-parameters --db-parameter-group-name param1 | \
  jq '[.Parameters[]|select(.Source == "user") + {"ApplyMethod": "immediate"}]' | \
  tr -d '\n' | \
  xargs -I{} aws rds modify-db-parameter-group --db-parameter-group-name param2 --parameters '{}'

今回は行ごとに解説してみる。

1行目
コピー元となるDB Parameter Group (param1) の設定を取得している。
2行目
その結果からjqを使って、ユーザによって変更されたもののみをフィルタして取得し、その結果それぞれについて、"ApplyMethod": "immediate"という項目を追加している。
3行目
JSONに含まれる改行を全て削除している。
4行目
コピー先となるDB Parameter Group (param2) にmodify-db-parameter-groupを実行する。xargsを使って--parametersオプションに、jqで加工したJSONを渡している。

describe-db-parametresで、ユーザによって変更されたパラメータの一覧をJSONで取得し、その内容をまるごとmodify-db-parameter-groupに渡しているということになる。ただし、そのまま渡してもだめで、ApplyMethodの追加が必要となるので、それをjqで行なっている。

[Evernote] Evernote for Mac 5.6 Previewではノートのリンクがevernote://...からhttp://...に変更になった

Mac 5.5以前のEvernoteで「ノートリンクをコピー」を実行すると、evernote://で始まるリンクが取得できた。これはMacの中で開くと、ローカルにインストールしているEvernoteアプリでノートが開くので便利である。OmniFocusのメモによく貼って使っている。

これが、5.6からは、http://で始まるリンクとなり、ブラウザでwww.evernote.comが開くように変更されている。こっちのほうが汎用性が高いのだが、オフラインでアプリのノートが開けるほうが嬉しかったので、自分としては困ったことになってしまった。

これに対する対策はあって、ノートリンクをコピーした後に、Evernoteのノートにリンクをペーストすると、evernote://で始まるURIになるので、そのURIをコピーして別のアプリケーションに貼り付ける事ができる。

しかし、手順としては面倒なので、evernote://のリンクが一発で取得できるようにして欲しい。