AWS LambdaのPython版をいまさらながら使ってみた
ので、導入の時に迷った点を残しておく。
- pythonで用意するエントリポイントのファイル名や関数名は自由 (ただし、Configuration#Handlerで"ファイル名.エントリポイント関数名" で指定する必要がある)
- エントリポイントの関数の第一引数は基本dict形式でイベントが飛んでくる。 第二引数はLambdaの実行メタ情報などを記録したContext
- エントリポイントが返すreturnの値は特に利用しない (実行テストの結果に使われるため、どのような状態で終わったかの文字列を書いておいても良さそう)
- AWSリソースを扱うときのライブラリはboto3がデフォルトで使える
- ログ関連のIAM Roleを作って、それに自分が使うサービスのパーミッションを与えると楽
- 外部ライブラリを使いたければzipでアップロードするときに中に含める。 "pip install hoge -t ."
- 固定の設定ファイルなどもzip内においておけば、読み込むことは可能
- cronの設定はUNIXとは異なる形式で5個ではない。
実際に使ってみると、zipファイル圧縮でアップロードする、boto3が使えるといった点でかなりそのままローカルで書いたPythonをそのまま使えたイメージ。