skillup

技術ブログ

サーバー・ネットワーク

Lambdaでの注意点

投稿日:2019年7月11日 更新日:

前に個人的な学習でLambdaを勉強しましたが、仕事で使う機会があり、気をつけるポイントを再度確認。

以前の学習リンク

Amazon SESでの受信→S3→Lambdaでのメール転送

デバッグがらみ

前回も説明しましたが、テストでeventのJSONを登録しておくと、簡単にテストが実行できてものすごい楽です。

ちなみに何か適当なJSON整形サービスを使って、整形しましょう。

ただcloudWatchなどのログにはかれるeventをデバッグした場合、JSONのキーが小文字なため、大文字に変換しないと正常なJSONと認められません。地味なハマりポイントです。

またBooleanをクオートで括らなくてはいけないですし、JSONはクオートがダブルクオートじゃないとうまく整形できないので注意しましょう。

Editorの整形機能などもうまく使いましょう。

ローカルでのLambda環境

ミニマムなサイズだったらいいですが、ある程度の規模になったらほとんどがLambdaのオンラインエディタでは開発しにくいと思います。そもそもライブラリが必要な場合、Lambdaでは直でインストールすることはできません。

デバッグをどうすればいいか、途方にくれていたところLambdaの環境自体をローカルで作れるようです。

あとはtest時に登録したものと同じjsonファイルを、event.jsonなどとしておいて、

と打てばテストできます。

参考リンク

AWS Lambda Pythonをローカル環境で実行&デプロイ

今回は使いませんでしたが、Lambda自体のデプロイもできるようです。

プログラム

ある程度の規模になったらオンラインのエディタではなく、ローカル開発開発環境でコードを書いてzipとしてあげると思います。またそもそも、ので、ローカルで作ってzipで固めてあげることになります。

その場合、ディレクトリの中に入りzipを使わないとフォルダができてしまい、実行ファイルを認識できません。

例 resizeDirという中で実行スクリプトとライブラリを入れている場合は

などとうつ必要があります。(フォルダ名はupload.zipでなくても別にいいと思います)

別件でPythonネタですが、pipでインストールする場合、
pip install ライブラリ名 -t .
とうつとカレントディレクトリのみのインストールになります。

イベント自体のトリガーの付与と削除

S3の場合、イベントを付与した場合、削除するのにLambdaの画面だけでトリガーを除いても、イベントは削除されません。

S3自体にトリガーが付与されているため、S3にログイン、プロパティからEventsにアクセスしてみてください。

Lambdaのトリガーが付いているはずなので、これを削除しましょう。

-サーバー・ネットワーク
-

執筆者:


comment

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

関連記事

no image

SAM(AWSのサーバーレスフレームワーク)について

LambdaやAPIGatewayをちょこちょこいじってますが、goなどを使っているとローカルでの開発時にはAPIなどと直接連携したりすることはできません。 またデプロイ自体が面倒で画面からポチポチや …

no image

一般的なサーバー監視コマンド

一般的な監視コマンドをメモします。 Contents1 ネットワーク状況1.1 ping1.2 traceroute ネットワーク状況 ping ネットワークの通信が正常かどうかをみる最も一般的なコマ …

no image

SQSのキュー登録とworkコマンドに関して

SQSでのキューの登録に関して以前やりましたが、再度扱うことがあったので、調査を。 リンク SQSについて Queueの登録と実際の処理に関して Contents1 キューの登録2 キューの監視 キュ …

no image

vimの基本的な使い方 設定ファイル、基本コマンド他

もう4年ぐらいの付き合いになる憎らしくもかわいいエディタvi(vim)について。 雑誌に特集があったのでこれを機にまとめてみました。シリーズものになるかも・・・ Contents1 Vi(vim)とは …

no image

sudoとsuについて

基本的なことの復習。 Contents1 su2 sudo2.1 wheel su Switch User。読んで字のごとくユーザーを切り替えるコマンドです。 su suzukiでユーザーsuzuki …