更新时间:2023-11-27 23:04:46
@John 的解决方案有效,但我想将某些步骤添加到他的答案中.
@John's Solution works but there are certain steps I would like to add to his answer.
us-east-1
区域中创建.不同的区域会抛出如下错误:us-east-1
region. Different regions would throw an error as below:通知目标服务区域对存储桶位置约束无效
The notification destination service region is not valid for the bucket location constraint
以下是我创建触发器的步骤:
Below is the Steps I followed to create the trigger:
Account-A.S3-bucket -> Account-B.Lambda-function
运行以下命令,为您的案例更改参数:
Run the below command, change the parameters for your case:
aws lambda 添加权限 --region {Account-B.Lambda 区域 例如.us-east-1} --function-name {Account-B.Lambda 名称} --statement-id 1 --principal s3.amazonaws.com --action lambda:InvokeFunction --source-arn arn:aws:s3:::{Account-A.S3 名称} --source-account {Account-A.account-id} --profile {Account-B.profile-name}
在这种情况下,您可能会收到 statement-id 存在错误,增加 statement-id 并重新运行命令.
You might get statement-id exists error, increment statement-id and re-run command again in this case.
Account-A
的S3 存储桶和属性 的标签下> 事件
添加以下字段:
Account-A
's S3 bucket and under Properties's tab > under Events
Add the following fields:
名称:ObjectCreation事件:ObjectCreate(全部)发送至:Lambda 函数Lambda:添加 Lambda 函数 ARNLambda 函数 ARN:your-lambda-arn
注意:Lambda 函数可能仍会显示错误,但 S3 存储桶中添加的新对象会触发 lambda 和打印(事件)日志出现在 Cloudwatch 日志中.
Note: The Lambda function might still show an error but new objects added in the S3 bucket trigger the lambda and print(event) logs appear in Cloudwatch logs.