行く記憶の流れは絶えずして

戻ってこないのでメモするところ

cloudformationに必要なiamポリシーとか

試行錯誤でなんとかデプロイ達成。

まあ、ワイがIAMに始まりAWSを理解していないのがいけないのですが。

 

事の発端はgoバイナリをlambdaにデプロイしようと思ったこと。

2年前くらいにlambdaとApiGatewayをひいひい言いながら動かしたことがあるけど

それっきりで身についておらず苦労したことしか覚えてない。

 

というわけで何かないかググる。楽するために努力する。

と、cloudformationとかいうなんかすごそうなものを見つける。

少し前からあったらしいけど全然知らなかった。ので読む。

インフラをドキュメントで定義して管理しましょうね的なサービス。

そういえば弊社でもterraform使ってたような。

 

で使ってみることに。

①samを入れてinitする

②作りかけのgoを混ぜてtemplate.yamlをそれっぽく修正する

awsコンソールから必要な権限を準備する

④sam package --s3-bucket 中間生成物用S3 --output-template-file packaged.yaml

⑤sam deploy --template-file packaged.yaml --stack-name {stack}  --capabilities CAPABILITY_IAM

⑥失敗するとstackに情報が残るのでコンソールからチェックしたら消す

 aws cloudformation delete-stack --stack-name {stack}

⑥成功すると(iamと)lambdaとapigatewayができてる

みたいな流れ。

 

って書くと簡単そうだけど②③でひたすら詰まる。

仕事後の貴重な自由時間3日分くらい。

 

詰まったポイント:

・samを実行するlinux(今回はlightsail)のiamに権限が必要

 用意しておいたロールを使うときにはiam:GetRoleとiam:PassRoleが必要、

 専用の権限を同時に作成する場合は7つくらい必要(後述)

・lambdaに紐づけるロールを用意してやると"lambdaにふさわしくない権限"と弾かれる

 cloudwatch?lamdainvoke?昔の残骸を見ながら試すも無事死亡、あきらめる

 

で、cloudformationからのlambdaのiam生成に必要な権限はこちら(2019/08/23時点)

・iam:DetachRolePolicy
・iam:DeleteRolePolicy
・iam:DeleteRole
・iam:PutRolePolicy
・iam:AttachRolePolicy
・iam:GetRolePolicy

実はGetRoleも必要かも、試す気力がないです...

だいたいAdminでやるから意味のない情報かも。なぜワイはそうしなかったのか。

sam deployをする→failed→メッセージに"iam:~が必要です"と都度表示されるので

短気なワイは結構つらかった。

failedのときはrollbackしようとするのでそこでdeleteとかdetachが必要なのだけど、

その権限がないとrollbackに失敗するのでstackがしばらく残ってしまう。

stack1,stack2...とクソ命名をせざるを得なく、stack6で成功。

ググると2時間くらいほっといたら消えるらしい。

 

結局はlambdaにふさわしいロールの条件はわからず自動生成とした。

自動生成されたポリシーを見ると以下だった。

・AWSXrayWriteOnlyAccess
・AWSLambdaBasicExecutionRole

半分当たって半分外れ。Xrayって昔のlambdaのiamにいなかったぞ...

謎。知らなくても生きていけることはある。

 

template.yamlのメモ:

・outputはなくてもいい、awsのコンソールで値を見ることができる程度

 エンドポイントURLとか作成されたロールを見れると便利

・公式サンプルが一番ためになった

github.com・ブラウザで雛形からある程度のtemplate.yamlを作成できるところがあるらしい

 

ここまで苦労しかなかったけど、やっぱコマンドでいろいろリソースを定義して

紐づけられるってすごい。

あと、sam local start-apiでテストができてしまうのもすごい。

苦労しただけのことはあると思いたい。

 

ああ、次は作りこみだ...

ラズパイの温度計測をGoogle Sheets APIで記録

もはや本ブログのメインカテゴリが定まってないように見えますが、

私の感情が高ぶったことを書いてます(適当)

 

raspberry piで室温を計測したら思いのほか高温になってたことが発端。

朝の9時に外出、その日は晴れで最高気温は15時に32℃の湿度68%。

部屋はその間締め切り。17時帰宅でみなさん体験したことのあるあの熱気を計測。

すると36℃の75%でした。以外と高い。

 

じゃあ次はこれを時系列で記録しようと。

ラズパイなのでsqliteawsでもいいのですがちゃちゃっと表で見たいのでGoogleのSpreadSheetに挑戦。

結果、合計4時間くらい検索してやっと手ごたえを得る(読み出し成功)。

読めれば書くのはすぐでしょ、と気が抜けて達成感を得られたのでブログに。

 

やったことは以下。

Google Sheet APIの有効化。

 これはいくつかの記事から読み取れて難なく終わる。

②サンプルコード

 公式の英語ドキュメント(もちろんほぼ読めない)から頑張って探す。

 ラズパイはpythonで書いたのでpythonのやつ

developers.google.com③サンプルコードで読み込んでるcredential.jsonを頑張って作る

 ここで1.5時間くらい試行錯誤

 GCP?は始めてなんだ、すまない。

f:id:taketsuru:20190729230848p:plain

まずはOAuthクライアントIDの作成

f:id:taketsuru:20190729230947p:plain

その他を選択、名前は適当

f:id:taketsuru:20190729231014p:plain

作成を押すと完了ポップアップが出るが無視、右端の下矢印からjsonをダウンロード

 このクライアントID(~googleusercontent.com)をスプレッドシートの共有で

 追加しておく(スプレッドシートの画面右上、googleアカウントの招待と同じ)

④サンプルコードにcredential.jsonを食わせる

 2.5時間くらい試行錯誤

 コードはとりあえず動く。

f:id:taketsuru:20190729231531p:plain

応答が返ってくるもここからどうすればいいのか

OAuthってよく分からないけどgoogleの画面にいって許可ボタン押すやつかな...とか

考えながらこのURLをssh元PCのブラウザで開く。

すると曖昧な記憶通りの画面(googleアカウントログイン→アクセスを許可しますか?)が

開くが、最後のリダイレクトでこける。

URLをみるとhttp://localhost:38573とかになってる。

なんじゃこりゃ、こんなポート開けた覚えないぞとなりながら夕食。

ネットサーフィンしてから戻ってきて改めて考えなおす。

そもそもこのURLを表示してるコードを見てみるか。

google-auth-oauthlib.readthedocs.io

見てみた。

run_local_server()ってやつらしい。

pythonの組み込みサーバーを起動してるっぽい...?

一つの方法としてはサンプルコードの35行目のrun_local_server()コール時に

raspiのipと開いてるポート渡してPCからアクセスでもいいと思う。

だがソースをみているとrun_local_server()の上にrun_console()っていうのがあって

こっちなら早いんじゃないのrun_local_server()と入れ替えて試してみた。

f:id:taketsuru:20190729232820p:plain

なんか挙動が違う

最終行にEnter the authorization codeとかある!とりあえずURLにアクセスすると、

さっきまでの最後でこけてたリダイレクトがなくなってトークン?が出てきた

f:id:taketsuru:20190729233135p:plain

やったぜ。

で、こいつをさっきのEnter...に貼り付けると動いた!

同じ階層にtoken.pickleができてるのが成功の証。

 

さて、今からspreadsheet書き込みなわけですがどれだけかかることやら。

 

追記:

なんとかできた。15分単位でcronで回してる。

形になるとやっぱうれしいし達成感がある。

本来ならグラフ埋め込みにしたいけどキャプチャで勘弁。

f:id:taketsuru:20190731081325p:plain

湿度はY軸分けたい

 

突然のマザボ交換

備忘録なので写真ばかりです。

 

何かの拍子にPCの電源が入らなくなる夢を見たので。

金曜夜にビックカメラでryzen3 2200Gとmsiマザボamazonでメモリを購入。

全部で30000円くらい、日曜昼にそれぞれ届く。

f:id:taketsuru:20190421221330j:plain

 

ryzen

f:id:taketsuru:20190421221423j:plain

f:id:taketsuru:20190421221439j:plain

ファン付きでグリスまで塗ってある。親切

f:id:taketsuru:20190421221514j:plain

マザボ

f:id:taketsuru:20190421221534j:plain

ryzenつける

f:id:taketsuru:20190421221648j:plain

f:id:taketsuru:20190421221717j:plain

もともとマザーについてた部品がファンに干渉する

四角いファンがついてくるryzen用らしい、外す

f:id:taketsuru:20190421221740j:plain

設置

f:id:taketsuru:20190421221902j:plain

入れ替え前の写真

f:id:taketsuru:20190421221959j:plain

f:id:taketsuru:20190421222039j:plain

f:id:taketsuru:20190421222114j:plain

f:id:taketsuru:20190421222135j:plain

コネクタ外していくと一つだけばらけた、めっちゃあせる

一番右側のやつ

 

f:id:taketsuru:20190421222239j:plain

外側に見える部分がペラッペラで筐体に付けるときに変に曲がりそう

f:id:taketsuru:20190421222338j:plain

入れ替える

ATXMicroATXなのでやや余る

f:id:taketsuru:20190421222503j:plain

ばらけたやつもマザボの説明書に扱いが書いてあった

グラウンド線が白いのは違和感だがそういうものか

f:id:taketsuru:20190421222641j:plain

f:id:taketsuru:20190421222715j:plain

 

電 源 投 入

写真めっちゃぼやけてるし間抜けな映り込みがあるし

ryzen3です、メモリ16GB認識しました、設定どうします?的な表示

うまくいったらしい、F1を押してBIOS

f:id:taketsuru:20190421222808j:plain

最近のBIOSってめっちゃグラフィカルなのね

いろいろふらついて再起動

メモリクロックは3200MHzまでいけるらしいけどこれからです

f:id:taketsuru:20190421222949j:plain

やったぜ。

f:id:taketsuru:20190421223218j:plain

f:id:taketsuru:20190421223248j:plain

マザボ添付のCDからドライバを更新

f:id:taketsuru:20190421223316j:plain

なぜにgoogle drive?と思ってスクロールしたら

norton先生とか入れたら闘争が始まるのでNG

ドライバCDだから即インストールしそうで危なかった

f:id:taketsuru:20190421223405j:plain

 

なんかパチ組みですんなり動きました。

Windowsクリーンインストールとかしないと動かないとかあったけど、

パッケージ版なので今回は問題なし。

 

変更前後(一応ですが左から右)

CPU core i5 550 ryzen3 2200G
メモリ DDR3-2666 4GB*2 DDR4-3200 8GB*2

 BTOデスクトップとして購入したのが2008年?

それからOSをSSDに入れたりグラボと電源交換したりで今に至る感じ。

 

ブラウジングとかしてるだけでも唸ってた状態は改善しました。

重いことはさせてないつもりなので壊れてからでもよかったのか?と。

その辺の判断は難しいのでやめますか、無事動いてよかったってことで。

水の半分をウイスキーにしたカレーうどん

結論から言うと、煮切れてなかったので酔っぱらった...

 

材料

・普通のカレーのレシピ

業務スーパーのうどん一玉

・リンゴを一年くらい漬けたウイスキー

 

作り方

・普通に材料を切って普通にカレーを作る

 ただし、私は短気なので10分くらいしか煮込まなかった

・ルーのレシピ2皿分の水250mlに対し130mlくらいウイスキーにする

・ついでに漬けてたリンゴも入れる

・煮えてきたと思ったらうどんを入れる

・ルーを溶かして終わり

 

思ったことを書くコーナー

 よくクックパッドとかでウイスキー使ったらうまくなるとか見て、ついでに例の古漬けウイスキー使えたらなと思って分量気にせず勢いでやってしまった。

 ウイスキーはガラス容器で冷蔵庫に眠っていたが、蓋を開けた時点でむせる。

 リンゴが思った以上に茶色(ウイスキー色)で期待と恐怖が半々。ビール瓶のような色。

 ウイスキーとリンゴ入れて蓋して煮込んで、様子見で蓋開けるとアルコールでむせる。

130ml、多いかなと思ったら煮詰まるのがめっちゃ早くてあせる。

後で考えると46%(質量か体積かわからないけど体積と仮定して)、60mlがアルコールだからなぁ。水を適量足す。

 で、蒸気でむせないくらいになったらうどん、ルーを入れて適当に完成。

 

 盛り付けたらリンゴが目に付いたのでリンゴから食べる。むせる。中に思いっきりしみててストレートでちびちびやる感じ。

で、むせたから水を飲む。チェイサーみたいなもんだよね。

 そんなリンゴ1/4玉分と格闘しながらどうにか食べきる。最後に汁を飲む。むせる。

H2O < C2H5OHだからか?沈んでいたらしい。

 

 で、酒にあまり強くないのでめでたく酔っぱらったところです。

 使い切れてないので明日はシチューに入れるんだ…長めに煮込めば何とかなるでしょ(酔っ払い)

エアコン冷房の消費電力=コストについて

最近は有休消化で家にこもることが多いが、危険な暑さとやらで

エアコンには大変お世話になっております。24時間稼働してます。

 

で、旅とかで一日中エアコンをつけてない日もあり。

冷蔵庫が不安だけどなんてことはなかった。

 

メインカード紛失(すぐ見つかる)でカード払いの番号変更ついでに

エアコン24時間稼働の日とそうでない日を比較してみた。

24時間稼働の日はPC使ってたけどまあ気にしない。

厳密に行くなら複数日付の平均だけどまあ気にしない。

 

前提

  • 2018年7月関東地方
  • 木造30年アパート、16平米、スレート葺、レオパではない
  • 2階建2階、南の面で別世帯と接している
  • 北向き
  • エアコンの設定は29度微風
  • 常時稼働している家電は冷蔵庫(2015年くらい製、冷蔵100L、冷凍50L)
  • 20A契約
  • つけっぱなしの日、そうでない日、20時からつけっぱなしの3パターン

結果

  • つけっぱなし:6kWくらい≒120円くらい
  • そうでない日:1kWくらい≒20円くらい
  • 引きこもりはコスト的に正義、2Lペットボトル買ってきてもドトールくらいのコスト
  • 私の場合は頭が痛くなってくるのでたまに散歩が必要

 つけっぱなし詳細

  • 朝は0.1kWh、12の0.4kWhまで線形に上昇
  • ピークが12時から18時、常に0.4kWhくらい
  • その後23時まで0.2kWh、朝まで0.1kWh以下
  • 20時帰宅からエアコンの場合、0.4kWhで2時間のあとはつけっぱなしと同じ

そうでない日詳細

  • 常に0.04kWh近辺
  • 時間による有意差は見当たらない
  • 冷蔵庫しゅごい

考察

  • 一番ケチれる外出は朝~20時、次点で昼~20時
  • ×働け〇ピークタイムは共用空間で過ごすのが効率が良い
  • つけっぱなしでも100円の差だったのが意外
  • 熱中症で判断力を失って衝動買いするよりエアコンつけましょう

もやもやが言葉になった

現職で抱えているもやもやについて整理がついたというか。

言葉になったので愚痴ついでに書き溜め。

 

火種を消すより火事にしたほうが評価される

問題が大きくなることでまず釣り橋効果が生まれます。次に連帯感。

それらはコミュ力が優れていればさらに強まります。

事前に詰めると煙たがられます。細かい面倒なやつだと。

仕事能力よりコミュ力

よく言われてるやつです。人を評価するのも人ですからね。

火種を火事にした後、笑顔と共に助力を求めるまでセット。

人を使うのが上手なのは大事ですが火種を消せばその必要もないわけで。

相続までの暇潰し

ちょっと言葉が悪いですが。現職では火種を火事にする人間は親が地主の場合が多い。

何故火種を火事にするか、気を抜いてもあてがあるからでは、と言う邪推。

中小企業の弊社の大企業のような縦割り

前工程の人間が作ったものに肉付けするのが私の仕事です。

ただ、肉付けしづらいデザインだったり既存実装とあまりに離れていたりします。

直してもらおうにも担当はすでに別の仕事なので部署間の調整が必要とか。

予算の大半を前工程に取られて責任は我々後工程というよくあるやつです。

前工程の人間の作業中に意見できれば良いのですが今の仕事をしろといわれる始末。

これについては甘えもあるとは自覚しています。

 

人間は同じ時間を過ごすのが長いほど信頼される、評価されるかと思います。

コミュ力の高い人間は火事にしたり時間のかかる作業をしたりして同じ時間を増やし

好感度をあげていくのでしょう。

時間がかかればコスト増ですが、上司=評価する人間とも好感度を上げているので

お目こぼしをいただき、コスト増=利益減少の原因は正されないという流れかと。

会社は利益を求める存在かと考えていましたが正されないのはそういう社風としか。

弊社そのものが上役の相続までの暇潰しかもしれませんね。

 

私はコミュ力がない人間です。上記はコミュ力のある人間への僻みも含まれています。

加えて相続するものもなければあてにするつもりもありません。

 

つまるところ、価値観や背景の違う人間が多数派、権力者だからということに

落ち着きました。いってみれば当たり前というか。

転職の候補選びでこれは探りようがないからつらいですね。

 

言葉にしたところで多少すっきりした気がします。

また明日から他人の不始末を消す仕事に戻りますかね。

Android再設定にあたりわかったこと

こちらからの続きです。

taketsuru.hatenablog.jp

まあいい機会と思い再設定で分かったことをつらつらと。

・暗号化すると画面ロックはPINかパスワードだけになる

 端末がAndroid4.2だからかな?めんどい

googleアカウントを設定するとgmailに確認メールが入る。

 確認しないとgoogle playストアのダウンロードが始まらない。

・当然ながらインストールしたアプリは初期状態。

 各アプリで丸亀アプリのように天ぷらリセマラができます(超めんどい)

felicaのデータは残ってました。

 モバイルsuicaは2:00~4:00はメンテなのでこの時間ではダメ。

 おサイフケータイアプリの一覧にヨドバシは表示されなかったけど、

 ヨドバシアプリをインストールしログインしたら復元。

スマホでゲームをしていなかったのでデータ面での実害は小さいかも。

 ヨドバシもだけど、ポイント系アプリはサーバーで管理してるだろうし。

・苦労して削除したプリインアプリが戻ってる、まじめんどい。

 

ひとまずこのくらい。また思い出したら追記します。