aws lambda的事件源

aws-cdk.aws-lambda-event-sources的Python项目详细描述


aws lambda事件源


稳定性:稳定


此模块包括允许将各种aws服务用作事件的类。 通过高级lambda.addeventsource(source)api为aws lambda提供源代码。

注意:在大多数情况下,还可以使用资源api来调用 aws lambda函数。此库为所有lambda事件提供统一的api 来源,不管它们使用什么基本机制。

平方s

amazon简单队列服务(amazon sqs)允许您构建异步 工作流。有关amazon sqs的更多信息,请参见amazon simple queue 服务。可以将aws lambda配置为在消息到达时轮询这些消息 然后将事件传递给lambda函数调用。要查看示例事件, 请参见Amazon SQS事件

要将amazon简单队列服务设置为aws lambda的事件源,您可以 首先创建或更新amazon sqs队列,并为 队列参数。以下参数将影响amazon sqs的轮询 行为:

  • 可见性超时:可能会影响重试间隔。
  • ReceiveMessageWaitTime:将确定 民意测验 持续时间。默认值为20秒。
importsqs=require('@aws-cdk/aws-sqs');import{SqsEventSource}from'@aws-cdk/aws-lambda-event-sources';import{Duration}from'@aws-cdk/core';constqueue=newsqs.Queue(this,'MyQueue',{visibilityTimeout: Duration.seconds(30)// default,receiveMessageWaitTime: Duration.seconds(20)// default});lambda.addEventSource(newSqsEventSource(queue,{batchSize: 10// default});

S3

您可以编写lambda函数来处理s3 bucket事件,例如 对象创建或对象删除事件。例如,当用户上传 图片到bucket,您可能希望amazon s3调用lambda函数,以便 它读取图像并为照片创建缩略图。

您可以使用amazon s3中的bucket通知配置特性来 配置事件源映射,标识所需的bucket事件 要发布的Amazon S3和要调用的lambda函数。

imports3=require('@aws-cdk/aws-s3');import{S3EventSource}from'@aws-cdk/aws-lambda-event-sources';constbucket=news3.Bucket(...);lambda.addEventSource(newS3EventSource(bucket,{events:[s3.EventType.ObjectCreated,s3.EventType.ObjectDeleted],filters:[{prefix:'subdir/'}]// optional}));

SNS

您可以编写lambda函数来处理amazon简单通知服务 通知。当消息发布到amazon sns主题时,服务 可以通过将消息负载作为参数传递来调用lambda函数。 然后,lambda函数代码可以处理该事件,例如 向其他Amazon SNS主题发送消息,或向其他AWS服务发送消息。

这还使您能够触发lambda函数来响应amazon 使用Amazon SNS的CloudWatch警报和其他AWS服务。

有关示例事件,请参见附录:消息和json 格式和 亚马逊sns示例 事件 有关示例用例,请参见将aws lambda与来自不同的amazon sns一起使用 帐户

importsns=require('@aws-cdk/aws-sns');import{SnsEventSource}from'@aws-cdk/aws-lambda-event-sources';consttopic=newsns.Topic(...);lambda.addEventSource(newSnsEventSource(topic));

当用户对lambda函数为的主题调用sns publish api时 订阅后,amazon sns将调用lambda来调用您的函数 异步的。然后lambda将返回传递状态。如果有错误 调用lambda,amazon sns将重试调用lambda函数,最多三次 时代。经过三次尝试,如果Amazon SNS仍然无法成功调用 lambda函数,然后amazon sns会向 云表。

dynamodb流

您可以编写lambda函数来处理来自dynamodb表的更改事件。事件被发送到dynamodb流(如果配置red)每当写入(放置、删除、更新) 对表执行操作。有关详细信息,请参见将aws lambda与amazon dynamodb结合使用。

要使用lambda函数处理事件,请首先创建或更新dynamodb表,并启用stream规范。然后,创建一个dynameoventsource 并将其添加到lambda函数中。以下参数将影响amazon dynamodb的轮询行为:

importdynamodb=require('@aws-cdk/aws-dynamodb');importlambda=require('@aws-cdk/aws-lambda');import{DynamoEventSource}from'@aws-cdk/aws-lambda-event-sources';consttable=newdynamodb.Table(...,{partitionKey: ...,stream: dynamodb.StreamViewType.NewImage// make sure stream is configured});constfunction=newlambda.Function(...);function.addEventSource(newDynamoEventSource(table,{startingPosition: lambda.StartingPosition.TrimHorizon}));

动觉

您可以编写lambda函数来处理amazon kinisis流中的流数据。有关amazon sqs的更多信息,请参见amazon kinisis 服务。要查看示例事件, 请参见亚马逊SQS事件

要将amazon kinisis设置为aws lambda的事件源,您可以 首先创建或更新amazon动态流,并为 事件源参数。以下参数将影响amazon kinisis的轮询 行为:

  • 批大小:确定在调用lambda函数之前缓冲了多少记录-可能会影响函数的内存使用(如果太高)和跟上传入数据速度(如果太低)的能力。
  • 开始位置:将确定消费地点,可以是最近的记录("最新")或最早的记录("修剪地平线")。Trim_Horizon"将确保您处理所有可用的数据,而Latest"将忽略在附加事件源之前到达的所有REOCRD。
importlambda=require('@aws-cdk/aws-lambda');importkinesis=require('@aws-cdk/aws-kinesis');import{KinesisEventSource}from'@aws-cdk/aws-lambda-event-sources';conststream=newkinesis.Stream(this,'MyStream');myFunction.addEventSource(newKinesisEventSource(queue,{batchSize: 100,// defaultstartingPosition: lambda.StartingPosition.TrimHorizon});

路线图

最后,此模块将支持下面描述的所有事件源 支持的事件 资料来源< 在AWS Lambda开发者指南中。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
iOS MDM注册配置文件请求/Profile使用java对证书进行签名   java如何调试GWT项目中的PHP文件   Mac和Windows之间的Java文件getFreeSpace差异   java从ArrayList进入JComboBox   ApacheKafka如何执行zookeeperserverstart。我的java程序中的bat文件?   JAXRS应用程序的java初始化   java如何为double覆盖compareTo方法?   使用进程动态运行java代码   sockets java。网SocketException:权限被拒绝openshift   java PorterduffXfermode:清除位图的一部分   其他线程中变量的java更改侦听器   java如何初始化接口实例以与父片段中的子片段通信   java Cordova插件在构建时出错,源代码1.6中不支持菱形运算符使用源代码7   java是学习编程的教育游戏吗?   在不同机器上使用JasperReports API运行代码时出现java问题   java Spring引导延迟Flyway序列化循环依赖   未为加密/解密初始化java密码