无法连接AWS S3和AWS Lambda
问题描述:
我想连接我的AWS S3和我的AWS Lambda。我创建了我的S3存储桶并将其命名为xyz
。在创建我的AWS lambda表达式事件源,它显示尽管经历这个link以下错误无法连接AWS S3和AWS Lambda
There was an error creating the event source mapping: Your bucket must be in the same region as the function.
,我发现我需要设置为S3存储为AWS LAMBDA功能的事件通知。但是我无法为s3存储桶设置事件通知,因为它不会在s3存储桶属性的“事件”选项卡中显示AWS lambda功能的设置。
对我的拉姆达创建的IAM角色我的政策文件是如下
{
"Version": "VersionNumber",
"Statement": [
{
"Effect": "Allow",
"Action": [
"logs:CreateLogGroup",
"logs:CreateLogStream",
"logs:PutLogEvents"
],
"Resource": "arn:aws:logs:*:*:*"
},
{
"Effect": "Allow",
"Action": [
"s3:GetObject",
"s3:PutObject"
],
"Resource": [
"arn:aws:s3:::xyz/*"
]
}
]
}
有人可以让我知道为什么我不能对S3存储的操作创建AWS拉姆达的事件?
答
感谢John的评论,我能够解决这个问题。
当(由错误消息明确指出)Lambda和S3存储桶位于不同区域时会发生此问题。
要在与s3存储区相同的区域创建lambda,您需要知道存储区的区域。
要查看Amazon S3存储桶的区域,请单击管理控制台中的存储桶,然后转到属性选项卡。该地区将显示
现在你知道你的目标区域。您可以在aws控制台中通过从Support
菜单之前的右上角的下拉选择菜单中选择一个区域来切换到该区域。
将区域更改为s3存储区域后,创建新的lambda函数将解决该问题。
错误消息的后续处理:*您的存储桶必须位于与该功能相同的区域中*您是否将该功能部署在与该存储桶相同的AWS区域中,或删除存储桶并在同一个AWS区域中重新创建作为Lambda函数? (请注意,删除存储桶后,所有其他S3区域可能需要一个小时才能实现名称可用。存储桶命名空间本身是全局的,但S3是区域性服务。) –
如何知道区域GUI上的AWS s3和AWS lambda? – shubhamagiwal92
要查看Amazon S3存储桶的区域,请单击管理控制台中的存储桶,然后转到“属性”选项卡。该地区将显示。要确定Lambda函数的区域,请转至Lambda控制台。只显示当前区域的Lambda功能(基于屏幕右上角的区域下拉菜单)。 –