skillup

技術ブログ

サーバー・ネットワーク

Lambdaでの注意点

投稿日:

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

以前の学習リンク

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

デバッグがらみ

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

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

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

ローカルでの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

zabbixについて 

現在、携わっているプロジェクトでサーバー監視をする必要性がでてきたので、監視ツールについていろいろ調べとります。 Contents1 サーバー監視とは2 サーバー監視ツールとは3 おおまかなイメージ4 …

no image

serverspecによるサーバー自動テスト

最近は管理しているサーバーが多いのと、構成管理ツール(Ansible)なんかをちょくちょく使ってますが、ちゃんと入っているかどうかを確認するのはそれなりに大変だったりします。 が、構成管理ツール自体も …

no image

S3 commandPoolについて

S3のcommandPoolに関して。 S3にファイルをアップロード、ダウンロードするときに、1つ1つファイルをアップロード、ダウンロードすることが一般的かと思いますが、ファイル数が多くなるとなかなか …

no image

phpenv5.3+php-fpm

レガシーなプロジェクトではいまだにPHP5.3なんかを使うケースがあったりします。 これがCentOS6だったらyumでphp5.3とかだったらいいんですが、サーバーはCentOS7だったりするとなか …

no image

form以外でのPOST送信(というかHTTP通信全般)

前回の記事に引き続きですが、APIを叩く側はformでデータを送るのではなく、コードの中にPOSTする処理を書きます。 選択肢としては curlコマンドを使う file_get_contentsを使う …