BT

如何利用碎片时间提升技术认知与能力? 点击获取答案

Amazon Lambda支持以简单队列服务作为事件源了

| 作者 Steef-Jan Wiggers 关注 7 他的粉丝 ,译者 谢丽 关注 12 他的粉丝 发布于 2018年7月18日. 估计阅读时间: 3 分钟 | CNUTCon 了解国内外一线大厂50+智能运维最新实践案例。

Amazon发布更新其简单队列服务(SQS)——开发人员现在可以使用SQS触发AWS Lambda函数了。而且,开发人员不再需要运行轮询服务或创建SQS到SNS的映射

Amazon SQS是一个消息队列服务,它在AWS中已经存在10多年了。它是由Amazon完全托管的,可以解耦服务,通过网络访问,自动扩展,预付费。此外,SQS提供两种类型的队列:

  • 标准队列,提供最大吞吐量、最优排序、至少一次传输;
  • SQS FIFO队列,按照设计,它可以保证消息仅处理一次,而且是完全按照发送顺序。

AWS Lambda是四年多前推出的一项计算服务,让开发人员不用配置或管理服务器就可以运行代码。多年来,随着Amazon加入更多特性,该服务一直在演化,现在已经支持SQS了,也就是说,开发人员现在可以使用队列服务作为Lambda的直接事件源来触发事件。目前,Lambda触发器仅支持标准队列。

在Lambda函数中使用SQS触发器的典型设置是把它添加到一个函数中,配置函数的执行角色,并指定恰当的权限用于和SQS标准队列通信。然后,指定将触发函数的队列名称以及该函数一次可以接收多少消息。


图片来源:https://aws.amazon.com/blogs/aws/aws-lambda-adds-amazon-simple-queue-service-to-supported-event-sources/

当批次大小设置为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

评价本文

专业度
风格

您好,朋友!

您需要 注册一个InfoQ账号 或者 才能进行评论。在您完成注册后还需要进行一些设置。

获得来自InfoQ的更多体验。

告诉我们您的想法

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我
社区评论

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

讨论

登陆InfoQ,与你最关心的话题互动。


找回密码....

Follow

关注你最喜爱的话题和作者

快速浏览网站内你所感兴趣话题的精选内容。

Like

内容自由定制

选择想要阅读的主题和喜爱的作者定制自己的新闻源。

Notifications

获取更新

设置通知机制以获取内容更新对您而言是否重要

BT