ようへいの日々精進XP

よかろうもん

2020 年 03 月 16 日 (月)

アクティビティ (今までの走行 (歩行) 距離)

https://pixe.la/v1/users/inokappa/graphs/fitbit-activity

Fitibit Charge2 のアクティビティから走行 (歩行) 距離を Fitbit Web API で取得して Pixela で草生やしている. 色が濃くなれば濃くなる程強度が高い (歩行, 走行距離が長い) ということで. 実装の詳細はこちら.

ジョギング

  • 完全休養
  • 終日, 背中の痛み
  • 通院, テーピングしてもらったりしたけど, やっぱり走ることを休んだ方がいいのかなーと思ったり

ギョーム

  • メンテナンスの手順を仕上げたり, ツールの実装と検証など
  • Amazon Elasticsearch Service への疎通が途切れ途切れになってしまうという謎の減少に遭遇, どのくらいの頻度で発生しているのか知りたくて仕込みを入れた

夕飯

  • 奥さん初挑戦のでゴンボの竜田揚げ風, 美味しかった!けど, 次回はシンプルに素揚げで塩でいきたい
  • 鮭のムニエル, 美味しかった!

2020 年 03 月 15 日 (日)

アクティビティ (今までの走行 (歩行) 距離)

https://pixe.la/v1/users/inokappa/graphs/fitbit-activity

Fitibit Charge2 のアクティビティから走行 (歩行) 距離を Fitbit Web API で取得して Pixela で草生やしている. 色が濃くなれば濃くなる程強度が高い (歩行, 走行距離が長い) ということで. 実装の詳細はこちら.

ジョギング

  • 山王公園を 35 分程
  • 昨日, 頑張り過ぎたのか背中に強い痛み (走れるようになって以来, 最も痛い
  • 困ったな...

ギョーム

  • おやすみ

奥さん誕生祭

ささやかだけど, パスタを作った. とても美味しそうに食べてくれたので嬉しかった. 生まれてきてくれて有難う, 自分の奥さんになってくれて有難う.

mocha とか chai を利用して HTTP リダイレクトの設定が意図した通りにリダイレクトされるかチェックする

tl;dr

ギョームで利用している PaaS の仕様変更で HTTP リダイレクト設定を変更する必要があり, 設定変更後にもちゃんと意図した通りにリダイレクトを行われるかをテストする必要が出てきました. ということで, curl + 目視チェックは 1900 年代に置いてきたので, テストフレームワークを利用して機械的にチェックする仕組みを考えて作ってみましたのでメモです.

参考

以下のサイトを最大限参考にさせて頂きました.

polidog.jp

以前に mocha とか chai を少しだけ触ったことがあったので, 今回も mocha, chai を利用することにしました.

inokara.hateblo.jp

その他, 以下のような mocha エクステンションを利用することで, 意図した通りに動作させることが出来ました.

github.com

仕組み (?)

こういうのを

どういう呼び方したら良いかわかりませんが, とりあえず仕組みと呼ばせていただきます.

作ったもの

github.com

使い方

README まんまですが, redirects.txt というファイルを以下のような内容で作成しておきます.

# PATH TARGET STATUS_CODE
/yahoo/ https://yahoo.co.jp/ 301
/google/ https://google.com/ 301
/ore/ https://oreno.tools/ 301

# はコメントとしてご利用下さい. 各列の間はスペースで区切ります.

後は, 以下のように docker-compose run するだけです.

$ docker-compose run --rm -e BASE_URL=http://10.0.102.10:19190 checker yarn run mocha

リポジトリには, 簡易的なサーバーを用意しているので, 動作の雰囲気を確認することが可能です. 上記の実行例では, 簡易的なサーバーに対してリクエスト投げています. 以下のように出力されます.

$ docker-compose run --rm -e BASE_URL=http://10.0.102.10:19190 checker yarn run mocha
yarn run v1.22.0
$ /work/node_modules/.bin/mocha


  redirect 301 checks
    ✓ Testing code of http://10.0.102.10:19190/yahoo/
    ✓ Testing code of http://10.0.102.10:19190/google/
    ✓ Testing code of http://10.0.102.10:19190/ore/

  redirected site 200 checks
    ✓ Testing code of http://10.0.102.10:19190/yahoo/ (234ms)
    ✓ Testing code of http://10.0.102.10:19190/google/ (207ms)
    ✓ Testing code of http://10.0.102.10:19190/ore/ (143ms)


  6 passing (631ms)

Done in 2.40s.

応用 (と言う程ではないけど

実際に動いているサービスのリダイレクト設定をチェックしたい場合には, redirects.txt を作成した上で, BASE_URLを実際に動いているサービスに指定するだけです.

$ docker-compose run --rm -e BASE_URL=https://your-service.domain checker yarn run mocha

(個人的に) 苦労したところ

ループ内で request が動かない

動かないというわけではないんですが, 意図したように動かずに苦労しました.

以下のような redirects.txt を用いた場合...

# PATH TARGET STATUS_CODE
/yahoo/ https://yahoo.co.jp/ 301
/google/ https://google.com/ 301
/ore/ https://oreno.tools/ 301

最後の一行しか request で動いていないように見えて... 以下は, 当初, 参考にさせて頂いた記事から拝借したコードです.

describe('redirect 301 checks', function() {
  let data;
  for (data of target_urls(file)) {
    it('should return 301: ' + data.uri, function(done) {
      request.get({
        followRedirect: false,
        uri: data.uri
      }, function(err, res, body) {
        expect(res.statusCode).to.equal(Number(data.statusCode));
        done();
      });
    });
  }
});

試行錯誤した結果, request をループで順序どおりに実行させるには一手間必要というところまでは解ったので, 今回は it.each という Mocha のエクステンションを利用することにしました. 以下, it.each で書き換えたコードです.

describe('redirect 301 checks', function(){
  it.each(URLs, 'should return 301: %s', ['uri'], function(element, done){
    request.get({
      followRedirect: false,
      uri: element.uri,
    }, function(err, res, body) {
      expect(res.statusCode).to.equal(Number(element.statusCode));
      done();
    });
  });
});

しかし, なぜ, ループ内で request が順序どおりに動作しないのかが明確に理解出来ていないのが残念です. 引き続き, 修行が必要です.

以上

素敵なリダイレクト生活をお送り下さい.

2020 年 03 月 14 日 (土)

アクティビティ (今までの走行 (歩行) 距離)

https://pixe.la/v1/users/inokappa/graphs/fitbit-activity

Fitibit Charge2 のアクティビティから走行 (歩行) 距離を Fitbit Web API で取得して Pixela で草生やしている. 色が濃くなれば濃くなる程強度が高い (歩行, 走行距離が長い) ということで. 実装の詳細はこちら.

ジョギング

  • 博多 -> 薬院 -> 赤坂 -> 大濠公園 -> 天神 -> 博多 で 15 キロ, 76 分程
  • 一生懸命走っているつもりだけど, あんまりラップタイムが上がらないしキツイしなんだかなあ

ギョーム

  • おやすみ

奥さん誕生日前夜祭

誕生日にかこつけて普段食べれないお寿司やら, 少しお高めのお酒を用意して自宅で前夜祭.

2020 年 03 月 13 日 (金)

アクティビティ (今までの走行 (歩行) 距離)

https://pixe.la/v1/users/inokappa/graphs/fitbit-activity

Fitibit Charge2 のアクティビティから走行 (歩行) 距離を Fitbit Web API で取得して Pixela で草生やしている. 色が濃くなれば濃くなる程強度が高い (歩行, 走行距離が長い) ということで. 実装の詳細はこちら.

ジョギング

  • お昼休みを利用して山王公園を 9 キロほど, 約 45 分弱
  • 背中の痛みが強い
  • 右膝にも痛み
  • 通院, 左右の臀部に筋力差が大きいという指摘... ほうほう, 左足の方が靴の減りが早い理由がなんとなく判った気がする

ギョーム

  • 引き続き, 自宅作業
  • ウィークリーレポート書いたり
  • データベースメンテナンスの日程調整, 手順書書いたり, ツール作ったり諸々
  • リダイレクトが意図した通りに遷移するのか検証する為の仕込み

夕飯

  • 奥さん特製のエビマヨはめっちゃ美味しかった

2020 年 03 月 12 日 (木)

アクティビティ (今までの走行 (歩行) 距離)

https://pixe.la/v1/users/inokappa/graphs/fitbit-activity

Fitibit Charge2 のアクティビティから走行 (歩行) 距離を Fitbit Web API で取得して Pixela で草生やしている. 色が濃くなれば濃くなる程強度が高い (歩行, 走行距離が長い) ということで. 実装の詳細はこちら.

ジョギング

  • お昼休みを利用して山王公園を 9 キロほど, 約 45 分弱
  • 引き続き, 背中も痛いけど, 右ひざにも痛い
  • ホントに踏んだり蹴ったり感

ギョーム

  • 引き続き, 自宅作業
  • 引き続き, Aurora の検証, クラスタ操作ツールの検証とか
  • ツールを出来るだけ使って, マネジメントコンソールを操作するオペレーションは出来るだけ行わない予定

夕飯

  • 奥さんお得意の肉じゃが Day 2, 揚餃子にしたりしてとても美味しかった

2020 年 03 月 11 日 (水)

アクティビティ (今までの走行 (歩行) 距離)

https://pixe.la/v1/users/inokappa/graphs/fitbit-activity

Fitibit Charge2 のアクティビティから走行 (歩行) 距離を Fitbit Web API で取得して Pixela で草生やしている. 色が濃くなれば濃くなる程強度が高い (歩行, 走行距離が長い) ということで. 実装の詳細はこちら.

ジョギング

  • お昼休みを利用して山王公園を 9 キロほど, 約 50 分弱
  • 背中も痛いけど, 右足股関節周りに痛み, 右ひざにも痛み
  • 踏んだり蹴ったり感

3.11

終日, 9 年前のこの時間は何やってたかな, 14 時 45 分はバタバタしてて逃したけど, 空に向かって手をあわせた. テレビでもずっと震災のことを触れていたけど, 今後もずーっと触れ続けるのがメディアの責任だし, 忘れないことが我々の義務だと思う.

ギョーム

  • 引き続き, 自宅作業
  • Aurora の検証, クラスタ操作ツールの検証とか
  • S3 のライフサイクル検証やら, RDS のイベント通知やら
  • 打ち合わせやら...
  • 時間が足りてない感じ

夕飯

  • 奥さんお得意の肉じゃが
  • 今日は醤油を変えたのか薄味だったので, 明日になったらしみて丁度良い感じになっているんじゃないかと期待

2020 年 03 月 10 日 (火)

アクティビティ (今までの走行 (歩行) 距離)

https://pixe.la/v1/users/inokappa/graphs/fitbit-activity

Fitibit Charge2 のアクティビティから走行 (歩行) 距離を Fitbit Web API で取得して Pixela で草生やしている. 色が濃くなれば濃くなる程強度が高い (歩行, 走行距離が長い) ということで. 実装の詳細はこちら.

ジョギング

  • おやすみ
  • ここ最近では最も背中に痛み
  • 病院で教えてもらったトレーニングを少し

ギョーム

  • Elasticsearch の構成変更やら
  • AWS からのメンテナンス通知の確認やら
  • AWS CDK でインフラ作ったり, アプリケーションのデプロイ設定など
  • オフィスのネットワーク周りのサポートやったり

夕飯

  • たらのソテー, ポン酢で食べると美味しかった

【俺の一行チップス】CloudFront で AWS CLI を利用して CNAME からディストリビューション ID を取得したい

やりたいこと

やったこと

以下のように AWS CLI を書いた.

$ aws cloudfront list-distributions --query "DistributionList.Items[?Aliases.Items!=null] | [?contains(Aliases.Items, 'oreno.tools')].Id | [0]" --output=text

上記の例では, oreno.tools というドメインが CNAME に設定されている CloudFront ディストリビューション ID が返却される. 実際に叩いてみると以下のように出力される.

$ aws cloudfront list-distributions --query "DistributionList.Items[?Aliases.Items!=null] | [?contains(Aliases.Items, 'oreno.tools')].Id | [0]" --output=text
ABCD12345EFGH

以上

メモでした.

2020 年 03 月 09 日 (月)

アクティビティ (今までの走行 (歩行) 距離)

https://pixe.la/v1/users/inokappa/graphs/fitbit-activity

Fitibit Charge2 のアクティビティから走行 (歩行) 距離を Fitbit Web API で取得して Pixela で草生やしている. 色が濃くなれば濃くなる程強度が高い (歩行, 走行距離が長い) ということで. 実装の詳細はこちら.

ジョギング

  • お昼休みを利用して 40 分程軽く8 キロ弱
  • 引き続き, 背中が痛くなってキツくなる...
  • 通院, ストレッチや筋トレ等を施術してもらう, こんなにも自分の体が硬いのか... と切なくなりつつも勉強になる

ギョーム

夕飯

  • 奥さん特製の和風ハンバーグ, かぼちゃのスープ
  • 文句無しで美味しい