AWS Lambda从入门到精通

news2025/1/18 10:06:52

这里写自定义目录标题

  • AWS Lambda从入门到精通
    • 介绍
    • 调用AWS Lambda的函数
  • 请求响应(RequestResponse)式调用
  • 采用请求响应的同步方式
    • 以函数作为应用程序的后端
    • 后端应用程序的用例和需求

AWS Lambda从入门到精通

Amazon发布AWS Lambda服务,云计算的抽象层次被进一步提升了,这项创新的服务允许开发者把一组函数打包发布,然后由AWS平台来负责具体的管理和执行。在这种情况下,人们不再需要主动管理依赖的基础框架和操作系统,也无需处理运行阶段所面临的高可用性和可扩展性问题。每一个函数都有属于自己的安全配置,这些配置可以借助Amazon Web Services(AWS)的标准安全功能,设定函数的执行范围和对资源的访问权限。

介绍

AWS Lambda采取了一种新颖的计费方式,因为它能为用户更加高效实用地调用底层资源。在AWS Lambda环境下,计费的方式是:
·根据函数被调用的次数。
·全部调用的累计执行时间(以100毫秒为单位)。
执行时间的计费和内存的使用量呈线性关系,如果把内存容量加倍,但是保证函数执行的时间不变,对应的费用也将随之加倍。为了让用户有更好的学习和实际操作体验,AWS Lambda的免费资源包(Free Tier)允许用户免费使用一定数量的资源,每月免费资源包的限额是:
·不超过100万次函数调用。
·以1GB内存容量为基准的首个40万秒执行时间。
如果选择较小的内存容量,则可以获得更多的免费执行时间。例如,如果选择128MB(1GB的八分之一)的内存容量,那么AWS Lambda提供的免费执行时间可以长达320万秒(40万秒的八倍)。更直观地说,AWS Lambda每个月可以提供从40万秒(111小时或4.6天)到320万秒(889小时或大约37天)的免费执行时间,具体取决于用户为函数选择的内存容量。

调用AWS Lambda的函数

在调用AWS Lambda的函数时,需要在输入中提供一个事件(event)和一个上下文(context)对象:
·事件是函数获得输入参数的一种方法,通常采用JSON格式。
·上下文对象用来描述执行环境的有关信息以及事件是如何被接收并处理的,类似于传统操作系统的环境变量。
函数可以被同步调用并立刻返回结果)。我们使用同步(synchronous)这个词来表述这类函数调用方式,但是在例如“AWS Lambda API参考文档”或“AWS命令行文档”这些在线文档中,这种调用方式也被称为请求响应(RequestResponse)式调用。

请求响应(RequestResponse)式调用

在这里插入图片描述

采用请求响应的同步方式

采用请求响应的同步方式调用AWS Lambda函数,函数收到包括事件和上下文对象的输入信息,执行完毕后立刻返回结果函数同样可以被异步调用。在这种情况下,函数被调用后开始执行,同时立刻返回,并不会输出任何返回值(见图1-3)。我们使用异步(asynchronous)这个词来表述这类函数调用方式,但是在例如“AWS Lambda API参考文档”或“AWS命令行文档”这些在线文档中,这种调用方式也被称为事件(Event)式调用。
在这里插入图片描述
数可以执行针对其他资源的创建、更新、删除操作。资源也可以是另一个服务,比如用来发送对外的电子邮件
举例而言,我们可以使用AWS Lambda的日志输入能力来实现一个简单的日志功能,用户通过异步的方式在Node.js中调用

以函数作为应用程序的后端

我们通常倾向于把这些前端程序所依赖的外部逻辑作为应用的后端服务。

为了实现这些外部的逻辑,常规的做法通常是开发一个供移动应用调用的Web后台应用,或与现有的后台应用集成,为浏览器渲染内容。但除了开发一个全新的Web后台应用或修改现有后台应用的功能以外,开发者还可以通过在网页或移动应用的代码中,直接调用一个或多个AWS Lambda函数,由这些函数来完成相应的逻辑执行工作。这些函数就构成了一组无服务器的后端。

为应用程序实现后端逻辑的一个重要原因就是安全,用户访问后端服务时,必须时刻进行认证和授权信息的检验。AWS Lambda沿用了由AWS提供的标准安全框架来控制函数的行为。例如:函数只能读取指定路径的文件、向指定的数据库写入记录。这个安全框架基于AWS Identity and Access Management策略和角色。以此方法,开发者可以更轻松地为代码的执行创造安全的环境,把安全维护整合进开发流程。开发者可以自由地裁剪每一个函数的安全权限,用一组仅具备最低权限的模块,就能轻易实现应用程序。

最低权限是指执行应用时必须获取的基本权限,例如:代码从一个中央存储区读取用户信息并发布到网页上,这样的模块就不需要为其配置写入权限,只需要读取待发信息的子集。任何超越了这个权限的安全设置都可能是潜在的漏洞,加重未知攻击的后果,入侵者往往先攻破一个模块,然后借助模块本身过于宽松的权限设置为跳板,攻击整个系统。

后端应用程序的用例和需求

用户通过后端服务与应用程序交互,请注意后端有一些逻辑和数据。

取决于应用程序计划支持的设备类型数量,使用应用程序的用户可能选择不同的设备。同时支持包括Web界面、移动设备、供高级用户集成第三方服务的Open API等在内的交互方式,正逐渐成为行业标准,也是一款应用取得成功的不二法门。

但审视不同设备与后端通信的接口,我们发现这些接口通常都是不一样的:Web浏览器往往占据主导,因为这些内容都需要被用户界面(动态生成的HTML、CSS、JavaScript和多媒体文件等)和应用后端逻辑(采用API的方式呈现)使用。

如果移动应用是在Web浏览器接口实现之后才开发的,那么后端服务需要在以Web渲染为主的API基础上进行重构,以满足移动应用的需求。不论原始应用是如何开发的,这样的重构通常都不太容易(花费不必要的时间)。这还会导致两套后端应用并存的尴尬局面,一套服务Web界面,另一套服务移动应用和可能的新设备,比如可穿戴设备、家庭自动化系统、物联网等。即使这两套后端被很好地设计,能够共享大部分功能(代码),这也是对开发资源的浪费,因为今后添加每一个新功能都需要理解两套平台上的实现差异,运行更多的测试,在一系列毫无价值的工作上浪费时间。

如果对数据进行分类,把可以导入一个或多个数据库的结构化数据分成一组,把文件之类的非结构化数据分成另一组,我们就能用以下几步,完成对整体架构的简化:

·增加一个安全的Web接口来访问所有的文件存储,这可以成为客户端直接访问的单一资源。

·把一部分的逻辑置于Web浏览器,使用JavaScript客户端与移动端的逻辑逐一配对。从架构的视角来看,这个运行JavaScript的客户端程序,不论是功能实现、安全还是与后端交互的方式,跟移动应用都是一样的。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/41461.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Windows配置python3环境变量解决无法识别pip指令报错

Python官网下载 Python官网下载地址 在Windows系统中,推荐下载.msi或.exe安装包。需要注意,python3和python2的语法有很大区别,按照实际情况下载对应版本。本次安装的是Python 3.10.8稳定版。 环境变量配置 安装过程 如果是以.exe安装包方…

机器学习中的数学基础(三):随机变量

机器学习中的数学基础(三):随机变量3 随机变量3.1 离散型随机变量3.2 连续型随机变量3.3 简单随机抽样3.4 似然函数3.5 极大似然估计在看西瓜书的时候有些地方的数学推导(尤其是概率论的似然、各种分布)让我很懵逼&…

【学习笔记46】JavaScript购物车的实现

一、案例效果 1、将通过数据重构页面 查询数据, 渲染页面 2、全选 选中全选按钮后, 根据全选按钮的选中状态, 修改所有商品的选中状态重新渲染视图 3、清空购物车 清空商品数据重新渲染视图 4、结算 找到所有选中的商品计算所有选中商品各自的总价计算所有选中商品的总价…

【MySQL】MVCC原理分析 + 源码解读 -- 必须说透

文章目录前言一、MVCC 介绍二、MySQL MVCC 介绍三、MySQL MVCC实现原理源码分析3.1 隐式字段源码验证3.2 undo logundo log格式undo log源码验证写insert undo log源码写update undo log源码写undo log源码roll_ptr是如何指向insert undo log的?roll_ptr是如何指向update undo…

Thymeleaf模板

Thymeleaf可用于前后端分离, 下图,value"aa", 在本地静态资源可以改变值,但是在web端不可以 前端可以在本地测试,有数据了显示数据 所以前后端分离 th属性 常用th属性解读html有的属性,Thymel…

集合框架----源码解读LinkedList篇

1.LinkedList官方介绍 双链表实现的list和Deque接口。实现所有可选的列表操作,并允许所有元素(包括null)。 所有的操作都按照双链表的预期执行。索引到列表中的操作将从列表的开始或结束遍历列表,以更接近指定索引的为准。 注意,这个实现不是…

全球价值链GVC总出口分解(2011-2014年)

1、数据来源:ICIO数据库 2、时间跨度:2011-2014年 3、区域范围:世界 4、指标说明: 全球价值链分析(Global Value Chain analysis,简称GVC分析)为解决传统贸易统计中…

数据库 1.关系

从关系开始: Table的严格定义: 域就是:学生表{名字(char(20),学号(int20))}里面的char20,int20,是用来标记列的数据类型,或者说取值范围的。这个取值范围有一个大小,这个大小就是基数。 就是每种…

世界各国自然资源租金面板数据

1、数据来源:世界银行《世界发展指标数据库》 2、时间跨度:1970-2018年 3、区域范围:全球 4、指标说明: 自然资源租金总额是石油租金、天然气租金、煤炭(硬煤和软煤)租金、矿产租金和森林租金之和。 …

11.20 至 11.27 五道典型题记录: 贪心 | 应用题 | 脑筋急转弯 | 区间问题 | 双指针

11.20 至 11.27 五道典型题记录: 贪心 | 应用题 | 脑筋急转弯 | 区间问题 | 双指针 松懈了最近,要时刻保持警醒啊!学习不能停,说那么多的借口不如花一些心思去学一些知识,之所以学到的内容不成体系,一方面就…

【Java集合】集合是什么?为什么要用集合?

> 集合是什么?为什么要用集合? 保存数据会经常使用到数组,但数组存在以下几个缺陷: 长度开始时必须指定,且一旦指定,不能更改;保存的必须为同一类型的元素;使用数组进行增加元素的步骤比较麻…

MySQL 8.0 Data Dictionary显示

数据字典 对于MySQL的系统库都不会陌生,因为是基本框架,支撑着MySQL有效运行。这些系统库提供诸多功能,如:账号,表,存储过程,表空间,性能监控,配置 等基础信息。系统库目…

【前沿技术RPA】 一文了解UiPath 使用Git管理项目

🐋作者简介:博主是一位.Net开发者,同时也是RPA和低代码平台的践行者。 🐬个人主页:会敲键盘的肘子 🐰系列专栏:UiPath 🦀专栏简介:UiPath在传统的RPA(Robotic…

【soc】— spluboot校验方法

【soc】— spl/uboot校验方法 一.常规校验/外部有存储介质 针对外部有存储介质的如nandFlash,norFlash,emmc,Sd等,常用的校验方法为:headerspl/uboot header:可定义为结构体,内容包括&#x…

全国366个市县日度空气质量数据(2016-2020年)(AQI,SO2,NO2,PM2.5,PM10)

数据集名称:全国366个市县日度空气质量数据 时间范围:2016-2020年 相关说明:共收录366个市县全年全日数据,其中浓度为日均值,IAQI由浓度推算而来。IAQI为各空气质量指标对应的空气质量指数,用于对应AQI与…

多线程的初识

目录多线程线程的引入进程和线程的关系多线程可能存在的问题多线程程序的创建Thread创建第一个多线程程序线程的抢占式执行查看java进程中的所有线程用Thread的其他方法创建多线程实现Runnable接口使用匿名内部类,继承Thread使用匿名内部类实现Runnable使用Lambda表…

嵌入式Linux驱动开发笔记(未完待续。。。)

一、Git仓库用法 1、linu终端输入下面命令安装 git clone https://e.coding.net/weidongshan/linux_course/linux_basic_develop.git2、 进入到GIT仓库目录 cd /D/abc/doc_and_source_for_mcu_mpu在doc_and_source_for_mcu_mpu目录下,执行以下命令获得资料的最新…

【1752. 检查数组是否经排序和轮转得到】

来源:力扣(LeetCode) 描述: 给你一个数组 nums 。nums 的源数组中,所有元素与 nums 相同,但按非递减顺序排列。 如果 nums 能够由源数组轮转若干位置(包括 0 个位置)得到&#xf…

appnium环境搭建

一、安装JDK 官网下载对应版本直接安装 二、安装Android SDK 官网下载对应版本直接安装 https://www.androiddevtools.cn/ 三、安装安卓模拟器 我使用的是夜神模拟器,官网下载直接安装 夜神安卓模拟器-安卓模拟器电脑版下载_安卓手游模拟器_手机模拟器_官网 …

springboot整合SpringSecurity并实现简单权限控制

目录 一、SpringSecurity介绍 案例效果: 二、环境准备 2.1 数据库 2.2 项目准备 三、确保项目没问题后开始使用 3.1、Security的过滤链: 3.2、自定义用户名密码登录: 方式1:将用户名密码写在配置文件里 方式2:使…