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

URLのリライトに関して

laravelのアプリをサブディレクトリ(notサブドメイン)に配置しなくてはならないケースがあり、.htaccessと格闘したのでメモを。 このパターンはハマりが多いですね・・・ http://sk …

no image

linuxでのherokuのインストール&パスの通し方

linuxでのherokuのインストールやパスの通し方について 原則としてruby入ってないとダメっぽいです。(しかもruby1.8系だと2016年6月現在エラーが出ますので最新バージョンをインストー …

no image

nginxのデバッグ

今までいろいろと苦しめられてきた(汗)nginxのデバッグについて。 まず任意の文字や変数をログに出すことができます。 Contents1 変数の出力1.1 rewriteデバッグ2 小ネタ 変数の出 …

no image

vueの環境構築に関して(モジュールバンドラの比較やvue-cliコマンドなど)

vueをビルドする場合、一般的にはwebpackなどのモジュールバンドラを使うかと思います。少しまとめて置こうかと思います。 Contents1 モジュールバンドラ1.1 webpack1.2 lar …

no image

環境構築の手法について

2019年9月現在、PHPは7系(最新は7.3)を使うことが一般的ですが、たまにレガシー案件などでPHP5系を使ったりすることはあります。 まあ7系でも7.0じゃ動かないとか色々な制約あるんですけど・ …

アーカイブ