如何设置 Amazon S3 事件通知以调用其他 AWS 账户中的 Lambda 函数?

上次更新时间:2021 年 6 月 8 日

我希望我的 Amazon Simple Storage Service(Amazon S3)存储桶能够调用其他 AWS 账户中的 AWS Lambda 函数。该如何进行设置?

简短描述

要让您的 Amazon S3 存储桶调用其他 AWS 账户中的 Lambda 函数,请执行以下操作:

1.    更新 Lambda 函数的基于资源的权限策略以向 Amazon S3 授予调用权限

2.    创建一个调用 Lambda 函数的 Amazon S3 事件通知

重要提示:Lambda 函数必须与您的 Amazon S3 存储桶位于同一 AWS 区域中。有关迁移函数的信息,请参阅如何使用 Lambda 控制台将 Lambda 函数迁移到另一个 AWS 账户或区域?

解决方法

注意:您必须具备以下信息才能完成此过程:

更新 Lambda 函数的基于资源的权限策略以向 Amazon S3 授予调用权限

1.    使用您的 Lambda 函数所在的 AWS 账户打开 Lambda 控制台上的函数页面

2.    选择 Amazon S3 要调用的 Lambda 函数的名称。

3.    在 Configuration(配置)选项卡中,选择 Permissions(权限)。

4.    在 Resource-based policy(基于资源的策略)窗格中,选择 Add permissions(添加权限)。

5.    在 Policy statement(策略声明)窗格中,选择 AWS service(AWS 服务)。此时将显示 Service(服务)下拉列表。

6.    在Service(服务)下拉列表中,选择 S3。这时将显示更多文本字段。

7.    对于 Source account(源账户),输入托管 Amazon S3 存储桶的账户的 AWS 账户 ID。

8.    对于 Source ARN(源 ARN),输入您的 Amazon S3 存储桶的 ARN。请使用以下代码:

重要提示:请将 bucket_name 替换为您的 Amazon S3 存储桶的名称。

arn:aws:s3:::bucket_name

9.    对于 Action(操作),从下拉列表中选择 lambda:InvokeFunction

10.    对于 Statement ID(语句 ID),输入唯一的语句 ID,以区分您在策略中创建的语句。

11.    选择 Save(保存)。

注意:有关更多信息,请参阅将基于资源的策略用于 AWS Lambda

创建一个调用 Lambda 函数的 Amazon S3 事件通知

1.    按照使用 Amazon S3 控制台启用和配置事件通知中的说明操作。

2.    按照教程:使用 Amazon S3 触发器调用 Lambda 函数使用 S3 触发器测试 Lambda 函数的说明测试设置。如果事件通知未调用您的函数,则按照为什么我的 Amazon S3 事件通知没有调用我的 Lambda 函数?中的说明操作。


这篇文章对您有帮助吗?


您是否需要账单或技术支持?