aws(学习笔记第二十三课) step functions进行开发(lambda函数调用)

news/2025/1/14 9:55:08/

aws_0">aws(学习笔记第二十三课)

  • 开发step functions状态机的应用程序

学习内容:

  • step functions状态机的概念
  • 开发简单的step functions状态机

1. step functions状态机概念

  1. 官方说明文档和实例程序
    AWS的官方给出了学习的链接和实例程序。使用SAM创建step functions
    借助AWS Step Functions,可以创建工作流(也称为)状态机,以构建分布式应用程序、实现流程自动化、协调微服务以及创建数据和机器学习管道。
    下图是一个step functions的实例,也就是说,可以编排工作流程,实现自动的批处理。同时,状态机的各种Action里面能够方便的调用AWS的各种服务。
    在这里插入图片描述
    • 状态的类型

      state type说明
      Task执行单一处理
      Wait一定时间上的停止等待⌛️
      Pass输入到输出的原样输出
      Parallel实行并行处理
      Choice进行选择条件处理
      Fail失败退出
      Success成功退出
    • 状态机中一般的操作
      在这里插入图片描述

2. 开发简单的step functions状态机

  1. 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的设定的参数,之后调用的时候会设定。
      为了确认rolelambdastep functions指定的时候,都默认使用AWS作成一个新的role,看看AWS自动生成的role的,策略信任关系

    • 设定lambdarole(采用默认作成一个新的)
      在这里插入图片描述
      查看自动作成的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"}]
        }
        
  2. 接着使用lambda函数创建step functions

    • 创建step functions
      在这里插入图片描述
      注意,这里region必须选用和lambda函数同样的,否则AWS不能选择lambda
      在这里插入图片描述
    • 默认让AWS创建新的role,来设定step functions的权限
      为了方便观察step functions的权限设定,使用AWS自动提供的设定一个新的role
      在这里插入图片描述
    • 默认让AWS创建新的role,来设定step functions的权限在这里插入图片描述
      • 查看自动生成的role的策略设定
        在这里插入图片描述
        看出这里,已经自动赋予LambdaInvoke的策略(第一个)。
      • 查看信任关系
        当然,这里会给信任关系里面加上states.amazonaws.com,即状态机
        {"Version": "2012-10-17","Statement": [{"Effect": "Allow","Principal": {"Service": "states.amazonaws.com"},"Action": "sts:AssumeRole"}]
        }
        
  3. 执行创建的step functions

    • 准备参数
      在这里插入图片描述
    • 查看执行结果
      绿色表示执行成功。
      在这里插入图片描述
    • 查看cloudwatch
      lambda函数执行不一样,这里不会产生cloudwatchlog组。

    在这里插入图片描述

    • 使用SAM来创建step functions
      AWS的官方给出了学习的链接和实例程序。使用SAM创建step functions
      下节课使用SAM (amazon Serverless Application Model)目前还是不懂的状态,加油!

http://www.ppmy.cn/news/1563000.html

相关文章

贪心算法汇总

1.贪心算法 贪心的本质是选择每一阶段的局部最优,从而达到全局最优。 如何能看出局部最优是否能推出整体最优 靠自己手动模拟,如果模拟可行,就可以试一试贪心策略,如果不可行,可能需要动态规划。 如何验证可不可以…

scala基础学习(数据类型)-集合

文章目录 集合创建集合isEmpty获取数据添加元素删除元素常见方法交集 &差集 diff --并集 unionto stringto listto Arrayto Map其余常用方法 集合 Scala Set(集合)是没有重复的对象集合,所有的元素都是唯一的。 Scala 集合分为可变的和不可变的集合。 默认情…

深入理解计算机系统阅读笔记-第十二章

第12章 网络编程 12.1 客户端-服务器编程模型 每个网络应用都是基于客户端-服务器模型的。根据这个模型,一个应用时由一个服务器进程和一个或者多个客户端进程组成。服务器管理某种资源,并且通过操作这种资源来为它的客户端提供某种服务。例如&#xf…

【设计模式】工厂方法

工厂方法设计模式引入 定义一个用于创建对象的接口,让子类决定实例化哪一个类。工厂方法使一个类的实例化延迟到其子类。 工厂方法设计模式分为简单工厂、工厂方法和抽象工厂三个小类。以咖啡店点餐系统为案例展开讲解。咖啡店点餐系统初始设计包含咖啡类&#xff0…

Oracle Dataguard(主库为双节点集群)配置详解(4):配置备库

Oracle Dataguard(主库为双节点集群)配置详解(4):配置备库 目录 Oracle Dataguard(主库为双节点集群)配置详解(4):配置备库一、为备库配置静态监听1、配置 li…

Kafka优势剖析-流处理集成

目录 1. Kafka Streams API 1.1 什么是 Kafka Streams API? 1.2 Kafka Streams 的工作原理 1.3 Kafka Streams 的优势 1.4 Kafka Streams 的典型应用场景 2. KSQL 2.1 什么是 KSQL? 2.2 KSQL 的工作原理 2.3 KSQL 的优势 Kafka 的流处理能力是其…

【物流管理系统 - IDEAJavaSwingMySQL】基于Java实现的物流管理系统导入IDEA教程

有问题请留言或私信 步骤 下载项目源码:项目源码 解压项目源码到本地 打开IDEA 左上角:文件 → 新建 → 来自现有源代码的项目 找到解压在本地的项目源代码文件,点击确定,根据图示步骤继续导入项目 查看项目目录&#xff…

Redis十大数据类型详解

Redis(一) 十大数据类型 redis字符串(String) string是redis最基本的类型,一个key对应一个value string类型是二进制安全的,意思是redis的string可以包含任何数据。例如说是jpg图片或者序列化对象 一个re…