我的任务是使用lambda向DynamoDB添加新的Cognito用户。我已经得到了一个现有的AWS Cognito用户池。到目前为止,我已经编写了一个lambda函数&用demo数据测试它,以便它可以将数据保存到Dynamodb中。但在测试时,它不会将我的数据保存到数据库中。为了获得指导,我一直在跟踪这篇文章。在这篇文章中说,在测试之后,我的DynamoDB表应该被填充。
const aws = require('aws-sdk');
const ddb = new aws.DynamoDB.DocumentClient({region: 'us-east-2'});
exports.handler = async (event, context) => {
console.log(event);
let date = new Date();
const tableName = 'User';
const region = 'us-west-2';
console.log("table=" + tableName + " -- region=" + region);
aws.config.update({region});
let ddbParams = {
Item: {
'user_name': {S: event.request.userAttributes.user_name},
'first_name': {S: event.request.userAttributes.first_name},
'last_name': {S: event.request.userAttributes.last_name},
'email_address': {S: event.request.userAttributes.email_address},
'mobile_phone': {S: event.request.userAttributes.mobile_phone},
'password': {S: event.request.userAttributes.password},
'referred_by': {S: event.request.userAttributes.referred_by},
'createdAt': {S: date.toISOString()}
},
TableName: tableName
};
try {
await ddb.putItem(ddbParams).promise()
console.log("Success");
} catch (err) {
console.log("Error", err);
}
console.log("Success: Everything executed correctly");
context.done(null, event);
};
{
"userName": "Proteeti Prova",
"request": {
"userAttributes": {
"user_name": "Proteeti13",
"first_name": "Proteeti",
"last_name": "Prova",
"email_address": "proteeti13@gmail.com",
"mobile_phone": "7777777",
"password": "ironman",
"referred_by": "tony stark"
}
},
"response": {}
}
日志输出
START.Emit(/var/runtime/node_modules/AWS-SDK/lib/request.js:688:14)在请求时。Transition(/var/runtime/node_modules/AWS-SDK/lib/request.js:22:10)在AcceptorStateMachine.runto(/var/runtime/node_modules/AWS-SDK/lib/state_machine.js:14:12)在请求时/var/runtime/node_modules/AWS-SDK/lib/state_machine.js:26:10.在请求时(/var/runtime/node_modules/AWS-SDK/lib/state_machine.js:38:9)在请求时modules/aws-sdk/lib/request.js:690:12)在request.calllisteners(/var/runtime/node_modules/aws-sdk/lib/sequential_executor.js:116:18)消息:“reque未找到sted资源“,代码:”ResourceNotFoundException“,时间:2020-10-23T07:59:49.233Z,
RequestId:'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx',
StatusCode:400,可重试:false,retrydelay:37.83355253768394}:89 MB初始化持续时间:391.58 ms
因此,根据AWS文档,ResourceNotFoundException的意思是:
您应该再次检查您的表是否存在,以及您是否使用了正确的访问键。此外,为什么要将us-east-2作为区域创建DynamoDB对象,只是为了将其在lambda中更改为us-West-2。尝试立即用正确的区域启动实例。
我正在做一个NodeJS项目,似乎使用了非常常见的AWS设置。我的ApiGateway接收调用,触发lambda A,然后这个lambda根据从ApiGate传递的参数触发其他lambda,比如B或C。 Lambda A需要访问MongoDB,为了避免自己运行MongoDB时遇到麻烦,我决定使用mLab。ATM Lambda A正在使用NodeJS驱动程序访问MongoDB。现在,为了不在每次执行
我创建了一个aws Lambda函数,它将hello world打印到控制台 使用类所在的包名和要调用的方法名配置lambda,并将jar文件上载到aws lambda函数。 当我执行lambda时,我得到一个异常,表示找不到类。 以消息作为 无法理解为什么aws无法在jar中找到类。 以下是项目配置的详细信息 项目pom:
背景: 我正在通过Terraform开发一个自定义AWS github webhook。我使用AWS API网关触发一个AWS Lambda函数,该函数从请求头验证GitHub webhook的sha256签名。如果lambda函数成功验证了请求,我希望通过lambda提供的异步调用目标特性调用子lambda函数。 问题: 即使我已经使用目标子Lambda函数配置了异步调用,但当父Lambda函数
我目前正在使用DynamoDB流,并期待着转向Kinesis流,因为我想控制我喜欢从流中处理的记录数量。 我一直在读有关Kinesis流和lambda的文章。有很多关于Kinesis流和EC2的多用户和KCL等的文章。 null
我有一个用例,我需要将拼花文件从Lambda保存到S3。我需要以追加模式存储Lambda函数中触发的事件。 我尝试使用Avro,但它不允许将数据以追加模式存储在同一个拼花文件中。 到目前为止,我发现只要spark允许在附加模式下将数据存储在拼花文件中…然后,我可以使用Lambda提交一个存储数据的spark作业。你认为这个可能的解决方案如何? 然而,真的不存在不使用spark的解决方案吗?预先感谢
我有一个Lambda函数,它在直接执行时工作得非常好。由于目前只是为了测试,它只读取请求,并返回其中一个子项的值作为响应: 然而,当我使用AWSAPI网关从中创建Api时,出现了一种奇怪的行为。如果Lambda函数包含上述代码,则响应主体为空。但是,如果我更改响应以返回整个请求正文,而不是一个子请求(在本例中为),它将返回整个请求正文。无论如何,尽管lambda函数在隔离状态下工作良好,但在API