本节依赖上一节,请先完成DynamoDB实验
本节我们将使用Lambda来触发Step Functions的执行
进行Lambda页面,创建新的函数,命名为step-function-invoker
:
由于Lambda要执行Step Functions,所以它的role里必须有访问Step Function
的权限。编辑它的Role:
添加Policy:
添加AWSStepFunctionsFullAccess
这条policy:
回到Step Functions页面,将上一节创建的State machine的ARN复制下来:
更新lambda代码,并进行部署。stateMachineArn
替换为刚获取的ARN:
import json
import boto3
import uuid
client = boto3.client('stepfunctions')
def lambda_handler(event, context):
# TODO implement
transaction_id = str(uuid.uuid1())
input = {"TransactionId": transaction_id}
response = client.start_execution(
stateMachineArn='arn:aws:states:us-east-1:145197526627:stateMachine:dynamodb-test',
name=transaction_id,
input=json.dumps(input)
)
部署Lambda完成后。创建测试事件:
保存测试事件。执行几次测试,此时Lambda成功的调用Step Functions
,并往DynamoDB里插入了数据。
回到DynamoDB服务,表里面查询到Lambda调用Step Functions
后插入的几条数据: