中国微企网
亚马逊在发明之前更新了AWS Lambda
发布日期: 2022-11-19 17:04:05 来源: 城市网

一系列更新旨在改进功能即服务平台处理异步工作流和数据流的方式。新发布的功能是在一年一度的AWS re:创建前一周发布的。


【资料图】

同步调用函数意味着Lambda执行函数并返回响应。异步调用被发送到内部队列,一个单独的进程运行该函数。如果开发人员想在异步函数完成后向代理发送消息,他们的选择是使用step函数或者在函数中编写自己的代码。有了新的AWS Lambda目标,开发人员不需要编写任何代码来将异步调用函数的结果路由到端点。支持的目的地包括其他Lambda功能、亚马逊SQS、亚马逊社交网站或亚马逊事件桥。用户可以将成功的响应定向到一个目标,将失败的响应定向到另一个目标。异步函数的Json编码结果作为“消息”发送给SNS和SQS,并作为有效载荷发送给Lambda函数。AWS解释了这个新特性如何改进事件驱动架构。

您不再需要将长期运行的Lambda函数同步链接在一起。以前,您需要在lambda的15分钟函数超时内完成整个工作流,支付空闲时间,并等待响应。目标允许您向调用函数返回成功的响应,然后异步处理剩余的链接函数。

image :https://AWS . Amazon.com/blogs/compute/introduction-AWS-lambda-destinations/

无服务器团队表示,Lambda destination也为开发人员提供了比以前更好的解决方案。

考虑到Step函数等服务的相对成本,事件目的地似乎是降低无服务器应用程序复杂性和成本的好方法。它应该允许您使用详细的工作流,这些工作流以前是为那些愿意将这些细微差别写入自定义Lambda函数的人保留的,或者是那些愿意花钱创建阶跃函数工作流的人保留的。这并不是说Step函数没有用武之地,它仍然是可视化和管理复杂工作流的好工具,但是对于更简单的架构需求,事件目的地似乎是一个不错的选择。

虽然有些人认为像destination这样的特性是供应商锁定的,但其他人认为Lambda与其他AWS服务的集成更紧密。

AWS还发布了三个与AWS Lambda数据处理相关的新功能。首先,Lambda现在在SQS使用先进先出队列。Lambda从2018年开始支持标准的SQS队列,现在支持这种队列类型(2016年首次发布),它保留了消息顺序。SQS先进先出队列依赖于由一对属性:消息组标识发送的信息来创建一组消息处理,该组消息处理唯一地标识具有消息重复标识的消息,并允许SQS消息具有相同的标识。据AWS报道。使用多个MessageGroupId可以扩大和处理更多条目,并在队列中使用更大的并发限制该模型至少提供一次交付。aws说如果你需要一次送货,你必须设计清楚。

亚马逊SQS先进先出队列确保处理顺序遵循消息组中的消息顺序。但是,它不能保证在用作Lambda触发器时只传递一次。如果在您的无服务器应用程序中只有一个传递很重要,建议您将该函数设置为幂等函数。您可以通过使用一个可扩展的低延迟控制数据库来跟踪消息的独特属性,比如amazon DynamoDB。

Lambda的第二个数据处理功能将影响如何扩展无服务器功能,以从Amazon Kinesis数据流和Amazon DynamoDB流中读取事件。并行化因子可以根据需要调高或调低。AWS解释了这个属性的作用。

现在,您可以使用新的并行化因子来指定Lambda从单个片段轮询的并发批处理的数量。这个特性在Lambda和Kinesis的缩放选项中引入了更多的灵活性。默认因子1表示正常行为。两个因素允许对100个驱动程序数据片段进行多达200次并发调用。并行化因子可以扩展到10。

每个并行拆分包含具有相同分区键的消息。这意味着记录处理顺序仍然保留,每个并行片段必须在处理下一个片段之前完成。

与此相关,Lambda开发人员现在可以设置一个批处理窗口属性,该属性指定在调用函数收集记录之前要等待多少秒。AWS表示,当“数据稀疏,批处理数据需要时间构建”时,这非常有用。它减少了原始函数调用的数量,使每个函数调用更加有效。

AWS Lambda中添加的最后一个数据处理功能使开发人员在处理批处理数据中的故障时有更多的发言权。当Lambda从亚马逊驱动程序或亚马逊DynamoDB流中读取数据时,它会被分段处理。到目前为止,如果在处理批处理期间出现错误,Lambda将重试整个批处理,直到成功或数据过期。这意味着当有问题的批处理尝试重试时,片段中的其他数据都不会被处理。Lambda用户现在可以更好地控制如何处理错误和重试。通过设置maximumretrytries值,开发人员可以指定跳过批处理之前的重试次数。在这种情况下,MaximumRecordAgeInSeconds指定在跳过批处理之前要等待多长时间。平分批处理函数错误意味着失败的批处理被分割,并在较小的批处理上重试。

本文由用户上传,如有侵权请联系删除!

标签: 开发人员 调用函数 先进先出队列

资讯播报
精彩推送