【发布时间】:2019-12-07 00:10:39
【问题描述】:
我正在使用无服务器框架和步进函数,我有一个由 s3 对象上传触发的 lambda 函数,然后该 lambda 被编程为启动状态机执行,但每次我上传一些文件时,它总是显示两次执行.
serverless.yml
plugins:
- serverless-step-functions
provider:
iamManagedPolicies:
- arn:aws:iam::aws:policy/AWSStepFunctionsFullAccess
iamRoleStatements:
- Effect: "Allow"
Action:
- states:*
Resource: "*"
functions:
init:
handler: src/functions/main/handler.startStepFunction
events:
- s3:
bucket: ${IMAGE_BUCKET_NAME}
event: s3:ObjectCreated:*
功能
module.exports.startStepFunction = async event => {
// start the step function with event parameter
const params = {
stateMachineArn: `${STATE_MACHINE}`,
input: JSON.stringify(event)
};
const functionPromise = stepfunctions.startExecution(params, function(err, data) {
if (err) console.log(err, err.stack);
else console.log(data);
}).promise();
await functionPromise;
};
单个文件上传执行(两次成功执行都是一个文件上传)
我不知道为什么会发生这样的事情,我错过了什么或让它表现得很奇怪?提前致谢。
【问题讨论】:
-
您的 lambda 被触发了多少次?
-
在此期间,可能在 s3 中创建了另一个文件
标签: amazon-web-services aws-lambda aws-sdk serverless-framework aws-step-functions