Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/amazon-web-services/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/amazon-s3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Amazon web services 在cloudformation中的s3 bucket ObjectCreated事件上执行lambda_Amazon Web Services_Amazon S3_Aws Lambda_Amazon Cloudformation_Amazon Sns - Fatal编程技术网

Amazon web services 在cloudformation中的s3 bucket ObjectCreated事件上执行lambda

Amazon web services 在cloudformation中的s3 bucket ObjectCreated事件上执行lambda,amazon-web-services,amazon-s3,aws-lambda,amazon-cloudformation,amazon-sns,Amazon Web Services,Amazon S3,Aws Lambda,Amazon Cloudformation,Amazon Sns,我需要在多个s3存储桶中的ObjectCreated事件上启动多个lambda函数。但是我的应用程序的体系结构需要模块化,因此,我必须创建两个不同的模板,一个用于创建bucket,另一个用于lambdas。据我所知,实现这一目标的一种方法是使用SNS服务 社交网站 我们在Bucket创建模板中创建SNS主题,并通过s3的NotificationConfiguration属性向其提供ObjectCreated事件。在lambda模板中,我们可以将lambda订阅到上述SNS主题,并且将在s3obj

我需要在多个s3存储桶中的ObjectCreated事件上启动多个lambda函数。但是我的应用程序的体系结构需要模块化,因此,我必须创建两个不同的模板,一个用于创建bucket,另一个用于lambdas。据我所知,实现这一目标的一种方法是使用SNS服务

社交网站 我们在Bucket创建模板中创建SNS主题,并通过s3的NotificationConfiguration属性向其提供ObjectCreated事件。在lambda模板中,我们可以将lambda订阅到上述SNS主题,并且将在s3objectcreated事件上调用lambda函数。 但该体系结构同样不允许使用SNS

可能的方式 在不使用SNS和牺牲模块性的情况下做到这一点,比如为bucket和lambda制作两个单独的模板,并在第三个模板中使用它们的通知配置来完成链,这一切都是可能的吗

最后问题 我不能使用SNS,我想要模块化,如何在s3事件上调用lambda函数?有了我的限制,这可能吗?
谢谢

您可以使用bucket属性中的事件直接从S3触发函数

您还可以使用CloudWatch事件规则来触发您的函数。为此:

转到AWs控制台,然后选择服务>CloudWatch。 在左侧的事件下选择规则。 选择创建规则。 保持事件模式处于选中状态。 从服务名称下拉列表中选择简单存储服务S3。 从事件类型下拉列表中选择对象级操作。 选择特定的操作。 从下拉列表中选择PutObject。 按名称选择特定的存储桶。 输入bucket名称。 选择右侧的+添加目标*。 选择要触发的Lambda函数。 选择页面底部的配置详细信息。 输入规则名称。 通过选择CreateRule完成。
我已经试过了你建议的第一个选择。当结合使用s3和lambda时,需要在同一模板中指定它们,否则cloudformation会引发错误。至于你的第二个选择,它看起来是一个可行的选择。我将尝试一下这不起作用,因为Lambda没有触发器。您可以使用Fn::ImportValue从它们的堆栈导入Lambda函数吗?