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

nginxインストール(サブディレクトリでcakePHPを使いたいとき)

以前nginxのインストールを行いましたが、理解が浅かったようで今回すげーはまりました(汗) ガチンコ塾でもいっていますが、覚え始めの時はコピペでもいいですが(最初から100%の理解は非現実的)、慣れ …

no image

シェルの基礎+ユーザー切り替え関連

雑誌を見ていたらシェルの特集があったので、ちょっとメモリます。 補強したいところのみ要点をチェック。 Contents0.1 実行パスについて0.2 ビルドインコマンド0.3 シェル変数・環境変数0. …

no image

簡易サーバー(http-serverなど)

一般的にwebアプリを構築する際にはApacheやnginxといったwebサーバーを立てることが多いのですが、ローカルの開発環境で入れるのが面倒で、もっと簡易的にサクッと入れられる仕組みが欲しかったり …

no image

webサーバーのログの見方

サーバー監視の基礎となるWebサーバーのログ(主にApache)の見方について少し書いてみようと思います。Apacheで解説しますが、nginxでもほぼおなじです。 Contents1 モジュール読み …

no image

AWSのVPCの設定に関して

AWSでEC2を立ち上げたことはありましたが、VPC(Virtual Private Cloud)は使ったことがなかったので、これを機に調査してみました。 Contents1 VPCとは?2 構成3 …