当前位置: 首页 > article >正文

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

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.kler.cn/a/504453.html

相关文章:

  • 工程水印相机结合图纸,真实现场时间地点,如何使用水印相机,超简单方法只教一次!
  • LLM实现视频切片合成 前沿知识调研
  • CAPL如何设置TCP/IP传输层动态端口范围
  • Bundlephobia前端强大的包分析工具
  • STM32入门教程-示例程序(按键控制LED光敏传感器控制蜂鸣器)
  • 分布式缓存redis
  • G1原理—3.G1是如何提升垃圾回收效率
  • 【大数据】机器学习 -----关于data.csv数据集分析案例
  • 如何在Ubuntu上安装和配置Git
  • LLM 智能视频字幕助手,支持生成、断句、优化、翻译、视频合成全流程
  • 从0开始学习搭网站第二天
  • 《计算机网络》课后探研题书面报告_网际校验和算法
  • SLAM后端处理
  • uniapp 小程序 五星评分精确到0.1
  • Lua语言的软件开发工具
  • 设计模式-工厂模式/抽象工厂模式
  • 免 root 开启 Pixel 手机 VoLTE 功能
  • 使用Python实现疫情监测系统
  • STM32 FreeRTOS 介绍
  • 【机器学习:十四、TensorFlow与PyTorch的对比分析】
  • 微服务主流框架和基础设施介绍
  • 关于编写测试用例的细枝末节
  • STM32 FreeRTOS 的任务挂起与恢复以及查看任务状态
  • 【算法学习】——整数划分问题详解(动态规划)
  • Nginx是什么?怎么用?
  • 【大数据】机器学习------决策树