Puppeteer + 何?

Puppeteer は Chrome を操作するライブラリなので E2E のテストで利用するには、テスト用フレームワークと組み合わせた方が便利そう。

何と組み合わせるかを悩んでいてたけれど、最終的に Jasmine に決めた。

理由は、Puppeteer のテストが Jasmine で書かれているので。

Puppeteerで自己署名証明書を使ったサイトのテストをする方法

ignoreHTTPSErrors: true を puppeteer.launch の引数に渡す。

const browser = await puppeteer.launch({
    ignoreHTTPSErrors: true,    // <= これ
    args: ['--no-sandbox', '--disable-setuid-sandbox']
});

正当な証明書を用意するハードルが下がって来ているけれど、いるときはいるんだよね。

これを試した時の Puppeteer のバージョンは v0.10.2。

vscode-fluentd

vscode-fluentdという Visual Studio Code の拡張機能を作った。

ここ最近はVimを離れてvscodeを使うことにしている。 fluentd の設定もちょくちょく書くことがあるのだが、vscode に fluentd のシンタックスハイライトがなかった。なので、作った。

形から入るタイプなので、シンタックスハイライトがあるとないとでは生産性が10倍は違うのでは!?

Amazon Elasticsearch Service 小ネタ

お断り

Amazon Elasticsearch Service に限った話ではないけれど。

elasticsearch-head を使う

elasticsearch-head はローカル環境のDockerで実行させる.

$ docker run --rm -p 9100:9100 mobz/elasticsearch-head:5

ブラウザで elasticsearch-head にアクセスする

$ open http://localhost:9100

テキストボックスに接続したい Elasticsearch のエンドポイントを入力し、Connect ボタンをクリック.

f:id:ymmtmsys:20170729143232p:plain

AWS の Elasticsearch はデフォルトで Access-Control-Allow-Origin:* を返してくるので, これだけでOK.

cluster health を green にする

クラスタ構成でない場合限定.

デフォルトで number_of_replicas は 1 になっている. クラスタ構成でない場合, レプリカを作るノードがないので cluster health が yellow になってしまう.

問題はないのだが, ちょっとソワソワするので number_of_replicas を 0 にして cluster health を green にする.

curl -XPUT https://{elasticsearch service}/\*/_settings -d'
{
    "index" : {
        "number_of_replicas" : 0
    }
}'

/*/ を入れないと {"Message":"Your request: '/_settings' is not allowed."} と言うエラーになった.

参考

JavaのDNSキャッシュのTTLが何秒になっているか

を調べるプログラム。

gist6fb0e42da6cb2aeb32da2cd2983f94b3

コンパイル時に以下のWarningが発生する。

NetworkaddressCacheTtl.java:5: warning: InetAddressCachePolicy is internal proprietary API and may be removed in a future release
        sun.net.InetAddressCachePolicy.get()
               ^

terraform と パラメータストア

terraform 0.9.7AWS パラメータストア(Amazon EC2 Systems Manager Parameter Store) がサポートされた。aws_ssm_parameter がそう。

簡単なものを試したのでメモしておく。

サンプル

parameter_store.tf でパラメータを設定する。elastic_beanstalk_env.tf でパラメータストアから値を取り出す(Elastic Beanstalkの環境変数にパラメータを設定するサンプル。関係のない場所は省略)。

AWS SSM parameter store sample

タグ付け

Amazon EC2 Systems Manager のパラメータストアで階層、タグ付け、および通知を追加サポート

ではタグが付けられると書かれているが、terraform はまだ対応してなさそう。