msfukuiの日記

おおまさのみみはそらのみみ。

このご飯の充実ぶりを見よ!

東京ではコロナの感染者の方が増えてきていて、職場のあるビルでも、もういつ感染者が出てもおかしくない感じになっています。

感染者が出ると、職場のあるビルは全館閉鎖となり一週間以上立ち入り禁止になるみたいですが、そうなると運用チームとしてはリモートのみで保守することになり、代替手段は準備しているとはいえ、普段のパフォーマンスは出せない、という状況でなかなか厳しい。

仕事変わってからの環境はこの三ヶ月何かと厳しいですが、できる限りの準備をし、できることを考えてやり続けるしかない、という気持ちです。

ということで先週のご飯いってみよう!

f:id:msfukui:20200719184758j:plain
駅前の新しいビルに入っているレストラン街の坦々ワンタン麺。エビワンタンも追加で頼んで幸せな気持ちに。これはしばらくローテーション入りしそう。

月曜のお昼は先週に引き続き穴子天丼だったので、夜はラーメンな気持ちで新しく開拓してみた。これまで意識してなかったけど、食べるところ本当にたくさんある。

f:id:msfukui:20200719185216j:plain
水曜日のお昼の肉汁うどん。ゴリラの有名そうなお店でしたが、ボリュームすごくてお昼からお腹いっぱい。うどんはともかく肉汁がゆず入りだしで、お肉、天かすも入っていて、人気なのも納得でした。たまに思い出してまた食べたくなりそう。

f:id:msfukui:20200719185553j:plain
水曜の夜は雨だったので、駅前で何度か入ったことのある豚骨ラーメン屋さんに。豚バラチャーシュー麺、毎度豚バラがちょっとしつこいのに頼んでしまう。替え玉をお願いしました。

f:id:msfukui:20200719185755j:plain
同じお店のもつ味噌串。味は想像通りでしっかりしてて、本当はお酒に合うんだろうな。

f:id:msfukui:20200719185916j:plain
同じお店のとり天。衣がさくさくしててほんのり甘くて、お肉も柔らかい。こちらもお酒のおつまみなんだろうなー。ゆっくり味わっていただきました。

f:id:msfukui:20200717123018j:plain
職場ほど近い「あみ熊」さんの穴子天丼。有名なお店みたいで、お店の中に有名人の色紙があったり、天ぷらしっかり上げてる感じの雰囲気が漂ってた。1,300円とちょっと高めだったけどさすが美味しい!お昼から奮発してしまった。

f:id:msfukui:20200719190402j:plain
夜はお仕事が一応なんとか閉まったので、浜松町まで足を伸ばして、前から気になっていた交差点沿いのカレー坦々麺のお店に。パーコーカレー坦々麺、(いい意味で)もう見たままの想像通りの味で幸せだった。あまり辛すぎないのもよかった。

f:id:msfukui:20200719190650j:plain
同じお店の味玉ごはん。味玉もご飯にかかっている出汁もほんのり甘くて、麺を食べる際のいいアクセントになった。すごい。

同じ会社のグループ内の人とのオンラインでの会話にも少しずつ慣れてきて、雑談roomなるチャットルームで、お昼ごはんどこ行ってます? って投げかけてみたら、思いの外会話が伸びて嬉しかったです。お店情報も聞けたのでご飯もっと充実させたい!

リングフィット報告も書きたいけれど、実施がまだ一回っきりなので、落ち着いたら書ける様に頑張る。。

会社のグループ内で Git の説明会をするなどしました。

今週の出勤日は月・水・金で、徐々に頻度が上がっているのですが、東京の今の状況を見ていると仕事の一山が超える再来週以降はまた出勤日が減っていきそうな感じ。

職場の雰囲気にようやく少し慣れ、お昼休みに少し勤務先から遠出する心の余裕が出てきたので、少し違うものを食べてみることにしました。

f:id:msfukui:20200711180907j:plain
上天丼。お昼休みに贅沢だなあ。。やっぱりアクセントの野菜天がすごくよかった。

f:id:msfukui:20200711181036j:plain
同じお店の穴子天丼。個人的な好みは上天丼よりこちらの方が上だった。お味噌汁もしっかりしてておいしい。

書き忘れていて先々週の木曜日ですが、自分もちゃんとわかっているとは言い難いのだけど、会社の同じグループ内のみなさんに Git の説明をする場を作って話してみました。

msfukui.github.io

名前を聞いたことがあるくらい、研修で少し触ったくらい、、ということだったので、インフラ運用や監視の運用管理という今の仕事の文脈を踏まえた上で、1時間ほどで、簡単な説明と最初の方のセットアップをその場でハンズオンっぽく実施してもらった。

感想をお聞きしてみると、思ったよりも楽しんでもらえたみたいだったので一安心。ただ、時間配分はもうちょっと考えた方がよかった。その場で試しながら実施すると、最低限の理解には少なくともあと2回は必要かなという感触。オンラインだと画面共有を切り替えると状況をすぐ見られるので、指摘もしやすいし、少人数だと対面での実施よりもスムーズだと思った。

ちゃんと自学自習するなら、いまだと公式マニュアルとか Web のコンテンツとか、Progate とかドットインストールとか、素晴らしい資料がいっぱいそろっているけれど、説明会の目的はそれだけじゃないから、題材を変えながら少しずつこつこつと続けられるといいなって思ってる。

仕事の方は、周りの人には他人事のように一山超えてからが大変だよーって散々脅されてて、今の状況見てると確かに、、という気持ちでいっぱい。当たり前だけど、運用ってS-inしてからが本番で、ずっと続くんだよね。知らないことだらけで怖いけど何が起こるか楽しみでもある。死なない程度に死んで覚える感じで。

今週のお外ご飯

外食したご飯をあげるだけのおじさん。今週の出社日は月・水・金でした。

f:id:msfukui:20200704205503j:plain
久しぶりに木耳と卵と豚肉の炒め物。職場から少し離れたところの中華料理屋さんにチャレンジ。味付けが少し濃かったけどかなり好みに近い味で美味しい。
f:id:msfukui:20200704205758j:plain
月曜日の夜ご飯。吉野家さんのとろろ単品+肉肉定食ご飯大盛り。とろろご飯、控えめに言って本当に最高!
f:id:msfukui:20200704210014j:plain
水曜日はいろいろあってお昼ご飯を抜いてしまったので、夜ご飯をちょっとリッチめに混ぜカレーうどん。うどんを食べた後にご飯を投入して混ぜて食べるの最高だった。
f:id:msfukui:20200704210248j:plain
金曜日のお昼にちょっとまた行動範囲を広げてみた。路地に少し入ったところの中華料理屋さんの木耳と豚肉と卵の炒め物。味付けとても好みに近くてよかった。人参が入っていて、僕は少し苦手ではあるけれど、アクセントにはよくて好みが分かれるところかも。
f:id:msfukui:20200704211705j:plain
金曜日の夜は濃厚とんこつつけ麺。右上にはとり天。安定の美味しさ。でもさすがにボリューム積み過ぎでした。
今の仕事が佳境を迎えているのだけど、主にコミュニケーションロスの問題でうまくいかないことが多発していて、視界不良の状況になってきた。死なない程度にできるだけできるかぎりのことはする気持ちだけど、山を超えてもいろいろとまだ仕事が残りそうな感じ。

今週の進捗

今週の出社日は水曜日でした。体重は順調に増加中です。

お昼ご飯。キクラゲと豚肉のたまご炒めじゃなかった。

f:id:msfukui:20200620173402j:plain
職場近くの別の中華料理屋さんの「エビとトマトとたまご炒め」。ボリューム多めで、とろみが程よくかかっていて、トマトの酸味が爽やかでよかった。エビがもう少し多いともっと嬉しかった。

帰宅途中でも晩ご飯をいただきました。

f:id:msfukui:20200620173818j:plain
帰宅途中にあるたぶん有名なラーメン屋さんの濃厚魚介豚骨ラーメン。大盛なのに値段変わらないのいいな。肉が多めなのは中年にはちょっと厳しかったけど、こってりが久しぶりでおいしかった!

駅前の本屋さんも再開していて、出勤の都度、帰宅のたびに寄るのだけど、技術書の品揃えが個人的にはいまいちに見えてしまっていて、これはもう Amazon さんかヨドバシさんにお願いしないとだめかもと思い始めている。

今は素振りで SRE 本を少しずつ読んでいるのだけど、関連する新しい翻訳本が出たと知ったので、早めに買っておきたい。

www.oreilly.co.jp

他にも気になる本がいくつかあって、でも積まれているものもたくさんあって、Macbook も新しいのを買ったのでそのセットアップも必要だったり、テトリス作りたかったり、GolangCLI 書きたかったり、FF7 やりたかったり、やりたいことが無限にあるの、人生が比較的楽しい。

進捗

進捗ありました。

いずれも今の職場近くの中華料理屋さんでした。

毎週水曜日を出勤日にしているのだけれど、出勤日を作ると、在宅勤務のありがたみがわかってとてもよい。これで小中学校と保育園が完全復活となっていただけると、さらに幸福度が上がるのだけれど、なかなかに難しい。

引き続き頑張ってお店を開拓していきたいと思います。

Lambda + CloudWatch Events + KMS で AWS コンソールへのサインインイベントを Slack に通知する(2020年春版)

今更ではあるのですが、最近、少しずつ AWS を個人で触っています。

クラウドワークスさんの約3年半前の以下の記事を今のタイミングで実装した際に、いくつか変更が必要なところがあったので、自分向けの備忘録として残しておこうと思います。

engineer.crowdworks.jp

そもそも、今だと目的を達成するためだけであればもっとシンプルな実装方法がある気はしますが、そこはあえて気にしない。

変更した選択条件

  • AWS Lambda は Python3 を選択

  • AWS CLI はバージョン2をセットアップ

[ ~]$ aws --version
aws-cli/2.0.8 Python/3.7.4 Darwin/17.7.0 botocore/2.0.0dev12

その他 AWS マネジメントコンソールの入力フォームにもいくつか違っている箇所はありましたが、戸惑うところはあまりなかったので、省略します。

AWS Lambda で curl は叩けなくなった

AWS Lambda から curl コマンドを叩くと command not found になる感じでした。

stackoverflow.com

AWS Lambda の環境に curl コマンドが含まれなくなったみたいです。

ということで、curl を実行している箇所(import の箇所と、notify メソッドの中身)を urllib.request で書き換えます。

具体的には、ここの箇所を、

import json
import commands
import urllib

...

def notify(message, channel, web_hook_url):
    payload = {
        "text": message,
        "channel": channel,
        "username": "AWSアカウントモニターBot",
        "icon_emoji": ":ghost:"
    }
    escaped_payload = urllib.quote_plus(json.dumps(payload).encode('utf-8'))
    curl_command = 'curl -s -X POST -d "payload=%s" %s' % (escaped_payload, web_hook_url)
    return commands.getoutput(curl_command)

こんな感じに書き換えます。

import json
import urllib.request
import urllib.parse

...


def notify(message, channel, web_hook_url):
    payload = {
        "text": message,
        "channel": channel,
        "username": "AWSアカウントモニターBot",
        "icon_emoji": ":ghost:"
    }
    encoded_payload = urllib.parse.urlencode({'payload': payload}).encode('utf-8')
    with urllib.request.urlopen(url=web_hook_url, data=encoded_payload) as f:
        return f.read().decode('utf-8')

AWS CLI で KMS で秘密情報を暗号化しようとすると Invalid base64 エラーになる

AWS CLI で KMS で Slack の Incoming Webhooks の文字列を暗号化しようとすると、こんな感じでエラーになります。

[ ~]$ aws kms encrypt --region us-east-1 --output text --query CiphertextBlob --key-id alias/lambda_encryption --plaintext //hooks.slack.com/services/********/xxxxxxxx/xxxxxxxx

Invalid base64: "//hooks.slack.com/services/********/xxxxxxxx/xxxxxxxx"

以下の AWS CLI の注意事項にありますが、セキュリティ上の懸念点の解消のためか、バージョン2から plaintext で渡す文字列は、デフォルトで base64 エンコードしてあげる必要があるみたいです。

docs.aws.amazon.com

base64 エンコードした文字列を指定するのもいいのですが、以下のように fileb://〜 でバイナリの形で標準入力から渡してあげると簡単です。

[ ~]$ aws kms encrypt --region us-east-1 --output text --query CiphertextBlob --key-id alias/lambda_encryption --plaintext fileb://<(echo "//hooks.slack.com/services/********/xxxxxxxx/xxxxxxxx")
AQICAHic78b********YsIjaYI=

Python3 なので str と bytes はそのままでは連結できない

KMS で暗号化した Slack の Incoming Webhooks の文字列を AWS Lambda 内で復号する際、以下のコードが示されていますが、そのままだと 'https:' と復号した文字列を連結する箇所で TypeError: can only concatenate str (not "bytes") to str で怒られます。

def get_web_hook_url(web_hook_url_encrypted):
    return 'https:' + decrypt(web_hook_url_encrypted)

def decrypt(encrypted):
    import boto3
    import base64
    return boto3.client('kms').decrypt(CiphertextBlob=base64.b64decode(encrypted))['Plaintext']

復号した文字列の型は str ではなく bytes のため怒られています。そのままでは連結できないため decode で str に変換して連結します。

def get_web_hook_url(web_hook_url_encrypted):
    return 'https:' + decrypt(web_hook_url_encrypted)

def decrypt(encrypted):
    import boto3
    import base64
    return (boto3.client('kms').decrypt(CiphertextBlob=base64.b64decode(encrypted))['Plaintext']).decode('utf-8')

まとめ

ということで、少し変更するだけで、とりあえず動かすことができました。しあわせです。

豚肉と卵と木耳の炒め物(と今後)について

一昨年からなんとなくはまっていて、お昼時に新しい中華料理屋さんを見つけては食べてる。 前職だと、最後の半年くらいはほぼお弁当だったので、あんまり機会がなかったのだけど、食べるたびに幸せな気分になる。

f:id:msfukui:20190829123156j:plainf:id:msfukui:20190815123039j:plain
青物横丁の「餃子広場」さん。濃いめの味付けで好き。

f:id:msfukui:20190821193552j:plain
品川シーサイドオーバルガーデン内にある「阿里城」さん。たけのこのシャキシャキ感と塩味がよかった。

f:id:msfukui:20190826193615j:plain
品川シーサイドのイオンさんの中にある「陳麻家」さん。塩胡椒の味付けはちょっと好みじゃなかったけど、ご飯多めでおいしい。準備不足とかで辛い麻婆豆腐をおまけしてもらったことがあって、店員さんが親切だった。

f:id:msfukui:20200412121721j:plain
仕事が変わってからの職場のすぐお隣にある中華料理屋さん。(名前忘れてしまった。あとで調べて書こう。)お野菜大きめで食べ応えがあった。

f:id:msfukui:20200412121748j:plain
新しい職場から駅までの帰り道にある中華料理屋さん。(やっぱり名前忘れてしまった)比較的好みのオイスター風?味付けでおいしい。卵はちょっと少なめ。

最後のは、新型コロナ(COVID-19)の緊急事態宣言の影響で明日から在宅勤務になるから、ということで最後の晩餐風だったけど、お店に他にお客さんはいなくて今後が大変そうだった。

しばらく経って、あれこれ落ち着いて、またこんなことができるといいけど、もうそういう風にはならないんだろうな、と漠然と思ってる。