本地测试Lambda

在之前的章节中,我们使用sam local invoke来本地调用Lambda。这一节我们将讨论如何传入参数并调试


之前测试的时候,hello-world/app.js中没有用到event参数。本节我们先新增一行,将event输入一起在结果中返回:

exports.lambdaHandler = async (event, context) => {
    try {
        // const ret = await axios(url);
        response = {
            'event': event,    // 新增该行
            'statusCode': 200,
            'body': JSON.stringify({
                message: 'hello world updated',
                // location: ret.data.trim()
            })
        }
    } 

重新build项目:

sam build

使用文件传参

在创建项目时,已经为我们生成好了events/event.json, 使用这个文件传入测试参数:

sam local invoke -e events/event.json

image-20220307080400986

使用stdin传参

echo '{"message": "Hey, are you there?" }' | sam local invoke --event - "HelloWorldFunction"

image-20220307080622471


参考:

https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/serverless-sam-cli-using-invoke.html