AWS

AWS Lambda node.js編

AWS

@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:
"誰?"

 

 

 

 

 

Amazonおすすめ

iPad 9世代 2021年最新作

iPad 9世代出たから買い替え。安いぞ!🐱 初めてならiPad。Kindleを外で見るならiPad mini。ほとんどの人には通常のiPadをおすすめします><

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)