[英]Cannot access S3 bucket from Lambda function
我创建了一个简单的Lambda函数,该函数接收作为Base64字符串的文件并将其上传到我的S3存储桶。 我使用了Lambda控制台建议的默认S3角色:
{
"Version": "2012-10-17",
"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:::*"
]
}
]
}
但是我仍然遇到访问错误:
{
"errorMessage": "The bucket you are attempting to access must be addressed using the specified endpoint. Please send all future requests to this endpoint.",
"errorType": "PermanentRedirect",
"stackTrace": [
"arn:aws:s3:::*"
满足我的所有需求吗? 我还需要添加什么才能使用此功能?
must be addressed using the specified endpoint
错误must be addressed using the specified endpoint
通常表示存储区和您使用代码调用的端点之间不匹配。
例如:与悉尼建立了AWS客户端连接,但存储桶位于东京。
尝试这样的事情:
var s3 = new AWS.S3({region: 'ap-southeast-2'});
您的sourceKey设置也可能会发生这种情况,请尝试在S3中添加确切的文件路径,例如:
{
"Records": [
{
"eventVersion": "2.0",
"eventTime": "1970-01-01T00:00:00.000Z",
"requestParameters": {
"sourceIPAddress": "127.0.0.1"
},
"s3": {
"configurationId": "testConfigRule",
"object": {
"eTag": "0123456789abcdef0123456789abcdef",
"sequencer": "0A1B2C3D4E5F678901",
"key": "images/HappyFace.jpg",
"size": 1024
},
"bucket": {
"arn": "arn:aws:s3:::mybucket",
"name": "mybucket",
"ownerIdentity": {
"principalId": "EXAMPLE"
}
},
"s3SchemaVersion": "1.0"
},
"responseElements": {
"x-amz-id-2": "EXAMPLE123/5678abcdefghijklambdaisawesome/mnopqrstuvwxyzABCDEFGH",
"x-amz-request-id": "EXAMPLE123456789"
},
"awsRegion": "us-east-1",
"eventName": "ObjectCreated:Put",
"userIdentity": {
"principalId": "EXAMPLE"
},
"eventSource": "aws:s3"
}
]
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.