Aws lambda 在STEP函数中捕获错误时向sqs发送消息
我正在使用带有Aws lambda 在STEP函数中捕获错误时向sqs发送消息,aws-lambda,amazon-sqs,serverless,aws-step-functions,Aws Lambda,Amazon Sqs,Serverless,Aws Step Functions,我正在使用带有无服务器step函数的无服务器框架插件。我想检查stepfunction工作流中的任何错误,并将此错误发送到sqs队列 当前,我想将所有输入作为消息传递给队列(MessageBody:$)。但如果我从队列中获取数据,则消息是$(美元符号),而不是实际输入。如何将上一步中的错误消息发送到队列 States: state1: Type: Task Resource: Fn::GetAtt: [function1, Arn]
无服务器step函数的无服务器框架
插件。我想检查stepfunction工作流中的任何错误,并将此错误发送到sqs队列
当前,我想将所有输入作为消息传递给队列(MessageBody:$
)。但如果我从队列中获取数据,则消息是$
(美元符号),而不是实际输入。如何将上一步中的错误消息发送到队列
States:
state1:
Type: Task
Resource:
Fn::GetAtt: [function1, Arn]
Next: state2
Catch:
- ErrorEquals: [States.ALL]
Next: sendErrorToDLQ
ResultPath: $.error
state2:
Type: Task
Resource:
Fn::GetAtt: [function2, Arn]
Next: done
Catch:
- ErrorEquals: [ States.ALL ]
Next: sendErrorToDLQ
ResultPath: $.error
sendErrorToDLQ:
Type: Task
Resource: arn:aws:states:::sqs:sendMessage
Parameters:
QueueUrl:
Ref: ServiceDeadLetterQueue
MessageBody: $ # <== how to pass input to sqs message
Next: fail
fail:
Type: Fail
done:
Type: Succeed
声明:
状态1:
类型:任务
资源:
Fn::GetAtt:[功能1,Arn]
下一个:state2
捕获:
-ErrorEquals:[状态。全部]
下一步:sendErrorToDLQ
结果路径:$。错误
国家2:
类型:任务
资源:
Fn::GetAtt:[功能2,Arn]
下一步:完成
捕获:
-ErrorEquals:[States.ALL]
下一步:sendErrorToDLQ
结果路径:$。错误
sendErrorToDLQ:
类型:任务
资源:arn:aws:states::sqs:sendMessage
参数:
队列URL:
参考:ServiceDeadLetterQueue
MessageBody:$#我在连接SNS时也得到了同样的结果。根据AWS文件,我们必须按照以下结构发送参数
“MessageBody.$”:“$”
参考资料:我在连接SNS时也得到了同样的结果。根据AWS文件,我们必须按照以下结构发送参数
“MessageBody.$”:“$”
参考: