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 Lambda を python でこなす場合、サンプル 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 に書き換えられたりするので、すげー使いにくい。
自分責任の誤字は許容するから勝手に内容変えないでほしい。
AndroidのLayout
暇なんだけど業務無関係な事をするわけにもいかないので、Android Studio いじってみてます。
で、ちょっと入門書読んでみて「すげーAWTやSwingに似てるなー…」と思ったんだけど、AWTやSwingやSWTとは差を感じるので、とりあえず差異と概要に関する自分用メモ。
入院時に得た知見、持ち物など
2018/11/01深夜に救急車で運ばれ2018/11/05 09:30まで入院していたので、入院するにあたって得た知見とかを書きます。
入院時点では自分としては微妙に頭の回転があがんないなー程度で歩いて帰れそうなレベルだったんですが、血液検査の結果1日入院して点滴打って様子を見る→1日後の血液検査の結果回復が認められなかったため退院許可が出ず→点滴して経過観察しつつ計5日間の入院、となりました。
はじめての本格的な入院で、持ち物とかで気づいたことが多いので、その記録と次回(ないといいなぁ)に向けたメモとして書きました。
- 持参したもの
- 病院からレンタル/購入できたもの
- 特に役立ったもの
- 役に立たなかったもの
- ノートPC
- iPad mini
- S字フック
- 用意しとけばよかったと後悔したもの
- 入院中の生活
- 入院の経緯とか入院中に気づいた事
- 救急車を呼ぶ前に#7119に電話した
- 救急と救急病棟
- 一般病棟の看護師さん
- ナースコール
- 費用とか