AWS..Lambda是一个计算服务,让我们运行 代码而不配置或管理服务器。 AWS.
lambda.service 仅在需要时执行我们的代码并自动缩放,从少数几个 每天请求到每秒数千个。我们只支付我们消耗的计算时间, 即,当我们的代码未运行时,不收取费用。随着AWS Lambda,我们可以 运行代码几乎任何类型的应用程序或后端服务– with zero 行政。 AWS Lambda在高可用性计算上运行我们的代码 基础架构并执行计算资源的所有管理, 包括服务器和操作系统维护,容量供应和 自动缩放,代码监控和日志记录。我们需要做的就是提供我们的 AWS Lambda支持的语言之一(截至目前)– Node.js, Java,C#,Go和Python)。
我们什么时候应该使用AWS Lambda?
AWS..Lambda is an 提供了许多应用方案的理想计算平台,但我们可以 在AWS Lambda(Node.js,Java)支持的语言中编写我们的应用程序代码(Node.js, C#和Python)并在AWS Lambda标准运行时环境中运行 Lambda提供的资源。
在使用AWS时 Lambda,我们仅对我们的代码负责。 AWS Lambda管理计算舰队 提供内存,CPU,网络和其他资源的平衡。这是在 换取灵活性,这意味着我们无法登录计算实例或 自定义操作系统或语言运行时。这些约束使能 AWS Lambda代表我们执行业务和行政活动, 包括供应能力,监控舰队健康,应用安全补丁, 部署我们的代码,并监视和记录我们的Lambda函数。
如果我们需要 管理我们自己的计算资源,Amazon Web服务还提供其他计算 服务满足我们的需求。
亚马逊弹性 Compute Cloud(Amazon EC2)服务提供灵活性和各种EC2实例 类型可供选择。它为我们提供自定义操作系统的选项, 网络和安全设置,以及整个软件堆栈,但我们是 负责供应能力,监测舰队健康和表现 并使用可用区域进行容错。
弹性豆秆offers an easy-to-use
在我们保留的Amazon EC2上部署和扩展应用程序的服务
所有权和完全控制底层EC2实例。
什么是aws lambda?
亚马逊解释道 AWS Lambda(λ)作为一个‘serverless’计算服务,暗示 开发人员不必担心启动它的AWS资源或如何将如何 他们管理它们,他们只是把代码放在lambda上,它运行,它很简单 那样。它有助于我们专注于核心竞争力,即应用程序建设或代码。
我将在哪里使用aws lambda?
AWS..Lambda 通过自动管理AWS资源来执行我们的后端代码。什么时候我们 说'管理',它包括启动或终止实例,健康检查, 自动缩放,更新或修补新更新等
所以, how does it work?
我们的代码 想要λ跑的被称为lambda函数。现在,正如我们所知道的那样 函数只在调用时运行,不是吗?在这里,事件来源是 触发Lambda函数然后执行任务的实体。
让我们举个例子来了解更多 clearly.
假设我们有 图像上传的应用程序。现在在上传图像时,有很多 存储之前涉及的任务,例如调整大小,应用过滤器, compression etc.
因此,可以将图像上载的此任务定义为将调用Lambda函数的事件源或“触发”,然后可以通过Lambda函数执行所有这些任务。在此示例中,开发人员只需定义事件源并上传代码。
让我们用实际的AWS资源理解这个例子。

在这里,我们 将以对象形式的图像上传到S3桶。这个上传 到S3存储桶的图像将成为事件源或“触发”。
整体 流程,正如我们在图中看到的,分为5个步骤。让我们 了解他们中的每一个。
- 用户将图像(对象)上传到源 S3中的铲斗,其具有连接到Lambda的通知。
- S3读取通知,并确定 发送该通知的地方。
- S3向Lambda发送通知,这 通知作为Lambda功能的调用调用。
- Lambda中的执行角色可以定义 使用IAM(Identity和Access Management)来提供访问权限 AWS资源,在此示例这里将是S3。
- 最后,它调用所需的λ 在已上载到S3桶的对象上工作的功能。
如果我们是 传统上解决了这一场景,以及发展,我们会雇用 people for 管理以下内容 tasks:
- 大小,提供 并扩大了一组服务器
- 管理操作系统 updates
- 应用安全 patches and
- 监控所有这些 用于性能和可用性的基础架构。
这将有 是一个昂贵,繁琐和令人厌恶的任务,因此需要AWS Lambda 是合理的。 AWS Lambda与Java,C#,node.js,go和python兼容 所以我们可以在zip中上传我们的文件,定义事件源,我们设置。
我们现在知道 - 如何 Lambda工作以及Lambda的作用。
现在,让我们 understand-
- 在哪里使用 Lambda?
- 什么目的是 Lambda服务,其他AWS计算服务没有吗?
如果我们是 建筑师解决问题,我们应该能够识别使用的位置 Lambda.
所以,作为一个 建筑师我们有以下选项来执行任务:
- AWS..EC2
- AWS..Elastic Beanstalk
- AWS..OpsWorks
- AWS..Lambda
让我们拿走 以上用例是一个例子,了解为什么我们选择lambda来解决它。
AWS..OpsWorks and AWS Elastic Beanstalk用于部署应用程序,因此我们的用例不是 创建应用程序,但要执行后端代码。
那么为什么不EC2?
如果我们使用 EC2,我们必须建立一切我。负载平衡器,EBS卷, 软件堆栈等在Lambda中,我们不必担心任何事情 插入我们的代码和AWS将管理其余部分。
例如,在 EC2我们将在我们的虚拟机上安装软件包 将支持我们的代码,但在Lambda中,我们不必担心任何VM,只是 插入普通代码和lambda将为我们执行它。
但是,如果我们的代码 将在几个小时内运行,我们预计我们应该是一个连续的请求流,我们应该 可能会与EC2一起,因为Lambda的体系结构是零星的那种 工作量,其中有一些安静的时间和数量的一些尖峰 of requests as well.
例如, 记录电子邮件活动的说明一家小公司,会看到更多的活动 在这一天而不是夜晚,也可能有较少的日子 要处理的电子邮件,有时整个世界可以开始通过电子邮件发送给我们。 在这两个案例中,Lambda都在我们的服务。
考虑到这一点 用于大型社交网络公司的用例,电子邮件永远不会结束 因为它具有庞大的用户群,因此Lambda可能不是APT选择。
AWS..Lambda的限制
一些限制是特定于硬件的 有些人受到架构的约束。
硬件 限制包括磁盘大小,限制为512 MB,内存可以 在128 MB和1536 MB之间变化。然后还有一些这样的诸如 执行超时可以最大化到仅需5分钟,我们的请求身体有效载荷 不能超过6 MB。请求身体有效载荷就像您的数据 在HTTP中发送“GET”或“PUT”请求,而请求身体将是 请求类型,标题等
实际上,这些不是限制,而是 在Lambda的体系结构中设置的设计边界如此 我们的用例不符合这些,我们可以随时使用其他AWS计算 我们可以使用服务。
让我们现在覆盖费用部分。
让我们作为一个例子取上述用例 并理解为什么我们选择Lambda来解决它。
AWS..Opsworks和AWS ElasticBeanstalk使用
要部署应用程序,因此我们的用例不是创建一个应用,而是执行a
back-end code.
AWS. lambda.的定价
像大多数AWS服务一样,AWS Lambda是 也是每次使用付费服务,这意味着我们只支付我们使用的东西,因此我们是 充电了以下参数
- 我们为我们的要求的要求 lambda function
- 我们代码执行的持续时间。
要求
我们被收取了要求的要求 我们在所有λ的职能中做出。
AWS..Lambda每次都计算请求 开始响应事件源或调用调用而执行,包括测试 从控制台中调用。
让我们看价格:
每月的前100万件请求是为了 free.
此后0.20百万美元请求。
期间
持续时间是从我们的那一刻计算的 代码开始执行直到它返回或终止的那一刻,它是圆形的 到最接近的100ms。
价格取决于我们分配给我们功能的内存量,每次GB秒都被收取0.00001667美元。 *来源:AWS官方网站
*来源:AWS官方网站
让我们创建一个Lambda函数,它会在S3中将对象添加到特定桶中添加一个对象后,为“添加了对象”。
Step1: 从“计算”部分的AWS管理控制台中,选择AWS Lambda。

Step2: 在AWS Lambda控制台上,单击“创建Lambda函数”。

Step3: 在下一页,我们必须选择蓝图。例如,我们将为我们的用例选择空白功能。

Step4: 在下一页上,我们将是(1)设置触发器,因为我们将在S3上工作,(2)选择S3触发器,然后(3)单击“下一步”。

Step5: 在“配置”页面上,填写详细信息。之后,填写处理程序和角色,请留下高级设置,最后单击“下一步”。


Step6: 在下一页上,查看所有信息,然后单击“创建功能”。

Step7: 现在,由于我们为S3存储桶创建了函数,因此我们将文件添加到S3桶中,我们应该在CloudWatch中获得同一日志,这是来自AWS的监控服务。
