【发布时间】:2020-10-15 06:19:11
【问题描述】:
我有一个 lambda 函数,它尝试从 aws-sdk 调用 SQS 函数,但它们没有触发。对于我的函数,我有两个权限策略 AmazonSQSFullAccess 和 AWSLambdaFullAccess。该函数可以被 SQS 消息调用,但是当我调用 sqs.listQueues、sqs.createQueue 或 sqs.sendMessage 时,它什么也不做。
const AWS = require('aws-sdk')
const sqs = new AWS.SQS();
exports.handler = async (event) => {
console.log(event);
sqs.listQueues({}, function(err, data) {
if (err) {
console.log("Error", err);
} else {
console.log("Success", data.QueueUrls);
}
});
var params = {
QueueName: 'Test Queue',
Attributes: {
'DelaySeconds': '60',
'MessageRetentionPeriod': '86400'
}
};
sqs.createQueue(params, function(err, data) {
if (err) {
console.log("Error", err);
} else {
console.log("Success", data.QueueUrl);
}
});
};
这是日志输出:
START RequestId: 0e345c02-b5f2-4816-8e58-c9a8cfbc4069 Version: $LATEST<br/>
2020-06-24T21:26:40.697Z 0e345c02-b5f2-4816-8e58-c9a8cfbc4069 INFO { key1: 'value1', key2: 'value2', key3: 'value3' }<br/>
END RequestId: 0e345c02-b5f2-4816-8e58-c9a8cfbc4069<br/>
REPORT RequestId: 0e345c02-b5f2-4816-8e58-c9a8cfbc4069 Duration: 521.92 ms Billed Duration: 600 ms Memory Size: 128 MB Max Memory Used: 83 MB Init Duration: 370.65 ms
我已经创建了两个未记录的队列,并且没有出现新的“测试队列”。 这是权限问题还是配置问题或完全是其他问题?
【问题讨论】:
-
您可能需要使用 await 或将您的代码包装在一个 Promise 中。
标签: node.js amazon-web-services aws-lambda amazon-sqs