Step Functions
可以直接集成SQS, 本节实验我们将把Step Functions里的数据传输到SQS。
进入SQS服务,创建队列,命名为purchase_queue
:
创建完成后,拿到它的URL,用于下一步使用:
i.e. https://sqs.us-east-1.amazonaws.com/145197526627/purchase_queue
进入Step Functions服务,创建新的State machine
:
workflow的JSON更新成如下,注意把QueueUrl
替换为上一步获取到的URL:
{
"Comment": "Transaction Process State Machine using SQS",
"StartAt": "ProcessTransaction",
"States": {
"ProcessTransaction": {
"Type": "Pass",
"Next": "BroadcastToSqs"
},
"BroadcastToSqs": {
"Type": "Task",
"Resource": "arn:aws:states:::sqs:sendMessage",
"Parameters": {
"QueueUrl": "https://sqs.us-east-1.amazonaws.com/145197526627/purchase_queue",
"MessageBody": {
"TransactionId.$": "$.TransactionId",
"Type.$": "$.Type"
}
},
"End": true
}
}
}
渲染效果如下:
进入下一步,将state machine命名为sqs-test
,其他选项保持默认:
下拉到底部,在role里自动会添加Step Functions访问SQS的权限:
点击创建。
创建完成后,新建一个Execution:
测试的Input如下:
{
"TransactionId":"abc",
"Type": "Purchase"
}
执行完成后,查看每个阶段的输入和输出。在BroadcastToSqs
阶段,成功将消息发送到SQS,SQS并将结果返回:
在SQS中看到有新的消息进来:
查看消息体: