艦これメモ+開発メモ+その他若干

ゲーム「艦隊これくしょん」の自分用メモとそれに基づいた簡単な記事、開発関連の自分用メモ、旅行時のメモなど

AWS lambdaの学習メモ01

AWS lambda で python3.6を使う必要が出たので、AWSの公式チュートリアル(nodejsを使うもの)を参考に、ちょっとチュートリアルこなしてみました。そのさいの環境構築や、コマンドラインで指定すべき値をどこから取得するか、などのメモです。
この文書は チュートリアル: Amazon S3 で AWS Lambda を使用する - AWS Lambda を補足するメモなので、単体で読んでもあまり意味がないと思います。

やりたいこと

AWS lambda を python3.6で使ってみる。
そのさい、ローカルで仮想環境を用意し、仮想環境上で試験した上で zip に固めて lambda 関数にアップするところまでの手順をまとめる。

仮想環境を用意するメモ

手元の環境は MacOS X Sierra
/usr/bin/python に python2.7、/usr/local/bin/python3 に python3.6 が導入済みです。

今回はpython3の機能で仮想環境を作ります。

AWSチュートリアル: Amazon S3 で AWS Lambda を使用する - AWS Lambdapython でこなす場合、サンプル Amazon Simple Storage Service 関数コード - AWS Lambda を参考にすることになります。
チュートリアルを行うために、python3.6の仮想環境を用意しました。
AWS公式ドキュメントでは virtualenv を使うよう求めていますけど、今回はお手軽な違う手法をとりました。
(pythonの仮装環境、pyenvとかvirtualenvとか複数ある上にバージョンによってはpython3そのものに組み込まれてたり別途 pip install しないといけなかったり、異なるpython実装系 - 例えば PyPy とか)を使うためには手順の制約があったり、面倒臭いですね)

$ python3 -m venv lambda_training_1
$ cd venv_lambda_traing_1
$ source bin/activate

次に、公式チュートリアルで求められているライブラリを仮装環境に導入します。

$ pip install Pillow
$ pip install boto3

いちおうこれで必要な仮装環境(と公式チュートリアルを行うにあたって求められるライブラリの導入)は済みました。

lambdaにアップするパッケージの生成とアップのメモ

こんなかんじでライブラリこみのzipをまず生成。

$ cd $VIRTUAL_ENV/lib/python3.6/site-packages
$ zip -r9 . /path/of/zipfile.zip

lambda用のpythonのコードが書かれたファイルを足す。

$ zip -g /path/of/sourcefile.py /path/of/zipfile.zip

zipファイルをアップロード。

$ aws lambda  create-function --function-name CreateThumbnail --zip-file fileb://zipfile.zip --handler handler --runtime python3.6 --role arn:aws:iam::9999999999:role/lambda-s3-role --timeout 10 --memory-size 1024 --profile huge

ここで runtime の選択肢はGUIからlambda関数を作ろうとした時の選択肢を参照。
role指定ですが、AMIの画面に移動して「ロール」から使いたいロールの詳細画面に移動すると、「ロールAPN」という項目が見つかると思います。大抵は arn:aws:iam::xxxxxxxxxxx:yyyyyy みたいな形の文字列です。これを指定します。GUIからlambda関数を作る際に指定するロールはエイリアスで、実態はこのarn:ナントカの方です。
timeoutとmemory-sizeは、まぁ、見てわかると思うので割愛。

もし、構成済みのlambdaの設定を変えたい場合は、こんなかんじ。

$ aws lambda update-function-configuration --function-name name_of_lambda_function --timeout 30

もし zip を上書きしたい場合は、こんなかんじ。

$ aws lambda  update-function-code --function-name CreateThumbnail --zip-file fileb://CreateThumbnail.zip 

トラブルシュート

profile指定時にリージョン設定しろとか言われた場合

aws configure または aws configure --profile hoge で上書きする。
これを実行しても ~/.aws/credential は特に変わってないように見えて、こっそりリージョンとかmodeとかそのへんが更新されてたりするよ。

macで環境構築時に pip install 中に six がどうこう言われて失敗する

virtualenvとか使う場合、たまに発生します。--ignore-installed six で無理やり無視します。

$ sudo pip install virtualenvwrapper --ignore-installed six

すげーどうでもいいけど、はてなのエディタ、aws って入れたら誤字判定されて was に書き換えられたりするので、すげー使いにくい。
自分責任の誤字は許容するから勝手に内容変えないでほしい。

GUIでXMLを更新してAndroidのレイアウトを組むのではなく完全手動でやってみた

純度100%のサーバ屋が手慰みにAndroidStudioを少しいじってみて、「これGUIXML更新してレイアウト組むより手動で組んだ方が楽じゃね?」って思って試しにやってみたコードのメモ。
多分、手でAndroidJavaのコード書いてる人にとっては常識なんだろうと思うけど、習熟段階でのメモなので、まぁ許してください。

続きを読む

Javaでたまに使うコードのメモ

すごい久しぶりにJavaを書こうとしたら一瞬具体的なコードがなかなか出てこなくて焦ったので、備忘録としてサンプルをメモ。

  • 自分(jar)内のリソースにアクセスする
  • シェルコマンド実行して終了を待ってSTDOUTの出力を取得する
  • デスクトップのキャプチャを取る
  • マウスイベントを送ってみる
続きを読む

入院時に得た知見、持ち物など

2018/11/01深夜に救急車で運ばれ2018/11/05 09:30まで入院していたので、入院するにあたって得た知見とかを書きます。
入院時点では自分としては微妙に頭の回転があがんないなー程度で歩いて帰れそうなレベルだったんですが、血液検査の結果1日入院して点滴打って様子を見る→1日後の血液検査の結果回復が認められなかったため退院許可が出ず→点滴して経過観察しつつ計5日間の入院、となりました。
はじめての本格的な入院で、持ち物とかで気づいたことが多いので、その記録と次回(ないといいなぁ)に向けたメモとして書きました。

  • 持参したもの
  • 病院からレンタル/購入できたもの
  • 特に役立ったもの
  • 役に立たなかったもの
  • 用意しとけばよかったと後悔したもの
  • 入院中の生活
  • 入院の経緯とか入院中に気づいた事
    • 救急車を呼ぶ前に#7119に電話した
    • 救急と救急病棟
    • 一般病棟の看護師さん
    • ナースコール
  • 費用とか
続きを読む