aws_0">aws(学习笔记第二十三课)
- 开发
step functions
状态机的应用程序
学习内容:
step functions
状态机的概念- 开发简单的
step functions
状态机
1. step functions
状态机概念
- 官方说明文档和实例程序
AWS
的官方给出了学习的链接和实例程序。使用SAM创建step functions
借助AWS Step Functions
,可以创建工作流(也称为)状态机,以构建分布式应用程序、实现流程自动化、协调微服务以及创建数据和机器学习管道。
下图是一个step functions
的实例,也就是说,可以编排工作流程,实现自动的批处理。同时,状态机的各种Action
里面能够方便的调用AWS
的各种服务。
-
状态的类型
state type 说明 Task 执行单一处理 Wait 一定时间上的停止等待⌛️ Pass 输入到输出的原样输出 Parallel 实行并行处理 Choice 进行选择条件处理 Fail 失败退出 Success 成功退出 -
状态机中一般的操作
-
2. 开发简单的step functions
状态机
-
从
lambda
函数执行开始
-
作成一个
lambda
函数 (step-functions-lambda
)
还是先作成一个lambda
函数,step functions
状态机只调用lambda
函数。
-
lambda
函数的代码export const handler = async (event) => {const response = {statusCode: 200,body: JSON.stringify('Hello from ' + event.who),};return response; };
注意,这里参数
event
是调用step functions
的设定的参数,之后调用的时候会设定。
为了确认role
,lambda
和step functions
指定的时候,都默认使用AWS
作成一个新的role
,看看AWS
自动生成的role
的,策略
和信任关系
。 -
设定
lambda
的role
(采用默认作成一个新的)
查看自动作成的lambda
函数的role
- 权限策略为以下。
{"Version": "2012-10-17","Statement": [{"Effect": "Allow","Action": "logs:CreateLogGroup","Resource": "arn:aws:logs:ap-northeast-1:081353481087:*"},{"Effect": "Allow","Action": ["logs:CreateLogStream","logs:PutLogEvents"],"Resource": ["arn:aws:logs:ap-northeast-1:081353481087:log-group:/aws/lambda/step-functions-lambda:*"]}] }
- 信任关系为以下。
{"Version": "2012-10-17","Statement": [{"Effect": "Allow","Principal": {"Service": "lambda.amazonaws.com"},"Action": "sts:AssumeRole"}] }
- 权限策略为以下。
-
-
接着使用
lambda
函数创建step functions
- 创建
step functions
注意,这里region
必须选用和lambda
函数同样的,否则AWS
不能选择lambda
- 默认让
AWS
创建新的role
,来设定step functions
的权限
为了方便观察step functions
的权限设定,使用AWS
自动提供的设定一个新的role
- 默认让
AWS
创建新的role
,来设定step functions
的权限
- 创建
-
执行创建的
step functions
- 准备参数
- 查看执行结果
绿色表示执行成功。
- 查看
cloudwatch
和lambda
函数执行不一样,这里不会产生cloudwatch
的log
组。
- 使用
SAM
来创建step functions
AWS
的官方给出了学习的链接和实例程序。使用SAM创建step functions
下节课使用SAM (amazon Serverless Application Model)
。目前还是不懂的状态,加油!
- 准备参数