首页 > 解决方案 > 尝试触发 Post Confirmation Lambda 触发器在 var aws = require('aws-sdk'); 中显示错误

问题描述

这是我在用户验证他的电子邮件时在 s3 存储桶中创建文件夹的代码,然后 POST 确认 lambda 触发函数以在 s3 存储桶中创建文件夹。

作为 AWS lambda 的新手,代码显示错误,下面是我的代码。

const aws = require('aws-sdk');
const s3 = new aws.S3();
exports.handler = function(event, context) {
if (event.request.userAttributes.email) {
    put0bjectToS3('documenthandle', event.request.userAttributes.email + "/");
    console.log(" should have posted");
}
else {
    context.done(null, event);
}    
};    
function putObjectToS3(bucket, key){
console.log("got to put0bjectToS3 code");
var params = {
    Bucket : bucket,
    Key : key
};    

console.log("got past params");
s3.putObject(params, function(err, data) {
    console.log("got to put code");
    if (err) console.log("some error happened");
    else {
        console.log(" successful") ;
        context.done(null, event) ;

    }
});

它显示像这样的错误

Response:
{
"errorMessage": "Syntax error in module 'lambda_function': invalid syntax (lambda_function.py, line           1)",
"errorType": "Runtime.UserCodeSyntaxError",
"stackTrace": [
"  File \"/var/task/lambda_function.py\" Line 1\n    const AWS = require('aws-sdk');\n"
]
}

请给我一个解决方案,并给我关于代码的任何建议。

标签: amazon-web-servicesamazon-s3aws-lambdaamazon-cognitoaws-serverless

解决方案


您能否确认您的 Lambda 函数正在使用哪个运行时?函数代码是用 node.js 编写的,但 Lambda 报告说它需要一个 Python 函数。 Lambda 运行时

(有关详细信息,请参阅可用的 Lambda 运行时)


推荐阅读