【发布时间】:2019-06-17 03:22:06
【问题描述】:
我正在使用 nodejs 8.1 版和无服务器框架
在我的 serverless.yml 中,我有:
provider:
name: aws
runtime: nodejs8.10
region: eu-west-1
iamRoleStatements:
- Effect: "Allow"
Action:
- "ses:GetIdentityVerificationAttributes"
Resource: "*"
我的 lambda 看起来像这样:
const AWS = require('aws-sdk');
var ses = new AWS.SES({
region: 'eu-west-1'
});
module.exports.handler = async (event, context, callback) => {
context.callbackWaitsForEmptyEventLoop = false;
let identityVerif = await ses.getIdentityVerificationAttributes({Identities: ['email']}).promise();
}
我不明白为什么永远不会执行 getIdentity 函数。 函数超时退出。
【问题讨论】:
-
这是一个异步调用,因此很可能永远不会返回结果并且函数在等待时超时。启用一些日志记录并检查是否正在发出并响应该请求。
-
如果我在 getIdentity 之前记录了一些东西,那就是日志,但函数之后的东西不是日志。我尝试将超时设置为 25 秒,但同样的事情发生了。
-
你需要在服务器端的日志,而不是客户端
-
我不明白,我将日志放在我的 lambda 函数中,就在 getIdentityVerificationAttributes 行之前,在 getIdentityVerificationAttributes 之后放置了一个日志。第一个被执行,但不是第二个日志。
-
我忘了说我的 lambda 在 vpc 中运行,这可能是问题吗?
标签: amazon-web-services aws-lambda aws-sdk serverless-framework amazon-ses