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

シェル基礎2

シェルコマンド使い始めて数年たちますが、いまだに知らないことはおおいですし、早く知っとけばよかった的なこともたくさんあります。 そんな小ネタ集を alias よく使うコマンドを別名で登録することができ …

no image

jenkinsでのSSH鍵認証&herokuからのソース取得

jenkinsでGitからソースを取得するときに鍵認証をかけている場合はそれ用の設定が必要になります。 基本的な考え方ですが、userがjenkinsだったときに、ssh鍵認証やherokuでどのよう …

no image

URLのリライトに関して

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

no image

シンボリックリンクについて

えー見ることは多かったんですが、自分で使うことはなかったシンボリックリンクについて。 Contents1 シンボリックとは?2 使い方 シンボリックとは? 簡単にいうとショートカットみたいなものです。 …

no image

mod_rewriteでの注意点

久々にhtaccessでのmod_rewriteをやりまして少しハマった(忘れていたのでポイントを) このネタではタグつけて結構書いてますね・・ http://skill-up-engineering …

アーカイブ