AWS Lambda currently supports the following Node.js runtimes: Node.js runtime v4.3 (runtime = nodejs4.3)
callback(); // Indicates success but no information returned to the caller. callback(null); // Indicates success but no information returned to the caller. callback(null, "success"); // Indicates success with information returned to the caller. callback(error); // Indicates error with error information returned to the caller.
以下のようにlambdaスクリプトと外部モジュールディレクトリを指定してzip化します。 $ zip -r myfunc.zip index.js node_modules
event: 実際に渡ってくるイベントのデータ(S3のアップデートとかKinesisのレコードとか)。 context: Lambda functionの呼び出しコンテキスト。
ということで、何をやってきたかをまとめてみると、以下のようなステップを実現してみようぜという話でした。 ローカルで開発 npm testでユニットテストやLintを走らせる npm buildでパッケージ(Lambda用のzipファイル)のビルド npm initLambdaでLambda用の設定ファイルを作る npm publishでLambdaにアップロード
一番の変更点はasync/awaitパターンが使えるようになったことでしょう。
nvironment variables の Key と Value にそれぞれ TZ・Asia/Tokyo と入力すれば良いみたいです。
本日のアップデートにより、LambdaでNode.js v10が利用できるようになりました。 現在主流であろうNode.js v8も今年中にはEOLを迎える予定です。
2019/4/30に予定されているNode.js 6.xのEOLに伴い、AWS Lambdaでの - Node.js 6.10のランタイムを指定しての新規作成は、2019/4/30で終了 - Node.js 6.10のランタイムを指定した関数の更新は、2019/5/30で終了 - 但し、既存のNode.js 6.10のランタイムを指定した関数の呼び出しは引き続き可能
AWS Lambdaが、待望のNode.js v8.10をサポートしたので紹介します。
Node.js v4.3 2016/04/07 現在の主流。 Node.js v6.10 2017/03/22 New!
contextオブジェクトの仕様変更
小さい機能単位で Lambda ファンクション作って、それを呼ぶ感じで作っていくとやりやすい。
Amazon DynamoDB Streams (以下 DynamoDB Streams) とは、先日発表された DynamoDB の新機能です。この機能を有効にすることで、DynamoDB の テーブルに対するすべての更新(Put, Update, Delete)が直近の24時間保持され、API 経由でアクセスできるようになります。
DynamoDB の更新 Stream をイベントソースとして Lambda で一回だけ通知してくれるように改良する話を書く.
TwitterのストリームデータをKinesisを経由してDynamoDBに保存します。 DynamoDB Streamにデータを流し、ブラウザでストリームデータを可視化する。
Lambda を利用することで、自分にサーバを持たずにボットを運用することができます(いわゆるサーバレス)。
これを使えば、HTTPヘッダーの情報がそのままLambdaに伝わるのでは!?
今回はeventの中身を見たかったのでeventをbodyとして出力するようにしました。
POSTの場合、bodyの中身はオブジェクトではなくStringで渡される
この設定をしておけば、下記ようなフォームのPOSTリクエストが、良い感じにJSONにマッピングされてLambda functionを呼び出すことができます。
LambdaだけならAWS CLIで十分簡単に操作出来るのでMakefileを用意してみました。
$ aws lambda create-function \ --region us-west-2 \ --function-name helloworld \ --zip-file fileb://file-path/helloworld.zip \ --role role-arn \ --handler helloworld.handler \ --runtime nodejs6.10 \ --profile adminuser