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をそのまま使えたイメージ。