先创建一张Dynamodb Table,表名:TransactionHistoryTable,只有一个Partition Key:TransactionId

进入Step Functions服务,创建新的State machine:

workflow的JSON更新成如下:
{
"Comment": "Transaction Processor State Machine",
"StartAt": "ProcessTransaction",
"States": {
"ProcessTransaction": {
"Type": "Pass",
"Next": "StoreHistory"
},
"StoreHistory": {
"Type": "Task",
"Resource": "arn:aws:states:::dynamodb:putItem",
"Parameters": {
"TableName": "TransactionHistoryTable",
"Item": {
"TransactionId": {
"S.$": "$.TransactionId"
}
}
},
"Retry": [
{
"ErrorEquals": ["States.ALL"],
"IntervalSeconds": 1,
"MaxAttempts": 3
}
],
"End": true,
"ResultPath": "$.DynamoDB"
}
}
}
渲染效果如下:

进入下一步,将state machine命名为sns-test,其他选项保持默认:

下拉到底部,在role里自动会添加Step Functions访问DynamoDB的权限:

点击创建。
创建完成后,新建一个Execution:

测试的Input如下:
{
"TransactionId": "abcd123ds-aws-niubi"
}

执行完成后,查看每个阶段的输入和输出。在StoreHistory阶段,成功将消息发送到DynamoDB,DynamoDB并将结果返回:

执行完成后,到DynamDB 表里,发现成功插入一条记录。

