@lsmn
2018-07-16T17:01:53.000000Z
字数 1376
阅读 1488
云计算
Amazon
Lambda
Amazon发布更新其简单队列服务(SQS)——开发人员现在可以使用SQS触发AWS Lambda函数了。而且,开发人员不再需要运行轮询服务或创建SQS到SNS的映射。
Amazon发布更新其简单队列服务(SQS)——开发人员现在可以使用SQS触发AWS Lambda函数了。而且,开发人员不再需要运行轮询服务或创建SQS到SNS的映射。
Amazon SQS是一个消息队列服务,它在AWS中已经存在10多年了。它是由Amazon完全托管的,可以解耦服务,通过网络访问,自动扩展,预付费。此外,SQS提供两种类型的队列:
AWS Lambda是四年多前推出的一项计算服务,让开发人员不用配置或管理服务器就可以运行代码。多年来,随着Amazon加入更多特性,该服务一直在演化,现在已经支持SQS了,也就是说,开发人员现在可以使用队列服务作为Lambda的直接事件源来触发事件。目前,Lambda触发器仅支持标准队列。
在Lambda函数中使用SQS触发器的典型设置是把它添加到一个函数中,配置函数的执行角色,并指定恰当的权限用于和SQS标准队列通信。然后,指定将触发函数的队列名称以及该函数一次可以接收多少消息。
当批次大小设置为1时,只能同时触发10个Lambda执行。不过,当批次大小设置的更大时,只能触发一个Lambda执行,并基于这个大小发送一些消息。此外,ACI信息集团技术副总裁Chris Moyes在TechTarget的一篇文章中写道:
另外,开发人员可以使用这个批次大小,结合Lambda的Reserved Concurrency设置,设定一次可以处理的消息数量,这有助于控制使用情况,或者防止消息大量涌入其他系统,如把内容传递给FTP服务器。
一旦函数消费了现有的消息,AWS Lambda就会从SQS标准队列中删除消息。不过,当函数执行失败或者超时的时候,消息会在队列设置的可见性超时时间过后再次出现在队列中。开发人员可以设置可见性超时、重试次数、重试间隔默认值。
在消费消息时,Lambda可以横向扩展,并且是自动实现。据公告博文介绍:
按照设计,当队列为空时,Lambda的自动扩展行为可以保持较低的轮询成本,与此同时,当队列使用频繁时,它又让我们可以向上扩展,实现高吞吐量。
注册在SQS中的Lambda触发器可以在SQS控制台中管理——用户可以在那里配置和编辑触发器。最后,该特性现在已经可以在提供Lambda服务的所有区域使用,文档已经更新,除了Lambda服务不断对SQS队列长轮询的费用外,还有其他的费用——Amazon将根据标准SQS定价费率收取该账户的API调用费用。
查看英文原文:Amazon Announces Lambda Now Supports Simple Queue Service as Event Source