
@see
もくじ
実際の利用はServerless Frameworkを利用します
パッケージとかをzipでまとめたり、GUIで定義が大変!
Serverless Frameworkを利用することで賢く利用できます。
ローカルでの開発
exports.handlerの引数3兄弟
event(object)
- パラメータ
- ヘッダ
- HTTPリクエスト情報
context(object)
- 実行時の環境情報
callback(function)
- 引数に渡される関数
eventとcontextを出力してみよう
event.json
event
{
"key1": "value1",
"key2": "value2",
"key3": "value3"
}
index.js
exports.handler = async (event, context) => {
// TODO implement
const response = {
event: event, // event情報
context: context, // context情報
statusCode: 200,
body: JSON.stringify('Hello from Lambda!'),
body2: JSON.stringify({
mei: 'yuu',
sei: 'kanehiro'
})
};
return response;
};
response
Response:
{
"event": {
"key1": "value1",
"key2": "value2",
"key3": "value3"
},
"context": {
"callbackWaitsForEmptyEventLoop": true,
"functionVersion": "$LATEST",
"functionName": "TestFunc",
"memoryLimitInMB": "128",
"logGroupName": "/aws/lambda/TestFunc",
"logStreamName": "2019/10/18/[$LATEST]33e2b238e100432f97e0396ebf062cb9",
"invokedFunctionArn": "arn:aws:lambda:ap-northeast-1:xxxxxxxx:function:TestFunc",
"awsRequestId": "XXXXXXXX-de55-4384-bb27-728ebcb3ca8e"
},
"statusCode": 200,
"body": "\"Hello from Lambda!\"",
"body2": "{\"mei\":\"yuu\",\"sei\":\"kanehiro\"}"
}
その2 値を渡して出力させよう
event.json
{
"mei": "優",
"sei": "金広",
"like": "蕎麦",
"job": "よろずや"
}
index.js
exports.handler = async function(event, context, callback) {
var data = event;
const response = {
sei: data.sei,
mei: data.mei,
like: data.like,
job: data.job
}
return response;
};
response
Response:
{
"sei": "金広",
"mei": "優",
"like": "蕎麦",
"job": "よろずや"
}
event.jsonの値によって分岐, callback
event.json
{
"mei": "優",
"sei": "金広",
"like": "蕎麦",
"job": "よろずや"
}
index.js
exports.handler = async function(event, context, callback) {
var mei = event.mei;
if(mei) {
callback(null, mei + 'さん!');
} else {
callback(null, '誰?');
}
};
response
Response: "優さん!"
meiの値を削除してみる。
event.json
{
- "mei": "優",
"sei": "金広",
"like": "蕎麦",
"job": "よろずや"
}
Response: "誰?"




