【发布时间】:2020-01-28 21:18:40
【问题描述】:
我有 Lambda 函数 tranportKickoff,它接收输入,然后将输入转发/代理发送到 Step Function。 确实下面的代码运行并且我没有收到任何错误,但同时 step 函数没有执行。
对于设计也很重要,我不希望 transportKickoff 函数等待 step 函数完成,因为它可能会运行很长时间。但是,我希望 Step Function 的 调用 中的任何错误都会被同步报告回来。也许这个想法是错误的,我不知何故错过了某个地方抛出的错误。但是,如果是这种情况,我想找到一种方法,能够实现在 Step Function 开始执行后立即退出 kickoff lambda 函数的目标。
注意:我可以独立执行step函数,我知道它工作正常
const stepFn = new StepFunctions({ apiVersion: "2016-11-23" });
const stage = process.env.AWS_STAGE;
const name = `transport-steps ${message.command} for "${stage}" environment at ${Date.now()}`;
const params: StepFunctions.StartExecutionInput = {
stateMachineArn: `arn:aws:states:us-east-1:999999999:stateMachine:transportion-${stage}-steps`,
input: JSON.stringify(message),
name
};
const request = stepFn.startExecution(params);
request.send();
console.info(
`startExecution request for step function was sent, context sent was:\n`,
JSON.stringify(params, null, 2)
);
callback(null, {
statusCode: 200
});
我还从控制台检查了我是否拥有我认为正确的权限来开始执行步进函数:
我现在添加了更多权限(见下文),但仍然遇到同样的问题:
- 'states:ListStateMachines'
- 'states:CreateActivity'
- 'states:StartExecution'
- 'states:ListExecutions'
- 'states:DescribeExecution'
- 'states:DescribeStateMachineForExecution'
- 'states:GetExecutionHistory'
【问题讨论】:
标签: amazon-web-services aws-lambda aws-step-functions