我已经按照本教程使用AWS lambda创建了另一个桶的图像缩略图:http://docs.AWS.amazon.com/lambda/latest/dg/walkthrough-S3-events-adminuser-create-test-function-upload-zip-test.html
我已经完成了教程前面的所有步骤,但是当我从上面的链接在Lambda测试中运行下面的代码时
{
"Records":[
{
"eventVersion":"2.0",
"eventSource":"aws:s3",
"awsRegion":"us-east-1",
"eventTime":"1970-01-01T00:00:00.000Z",
"eventName":"ObjectCreated:Put",
"userIdentity":{
"principalId":"AIDAJDPLRKLG7UEXAMPLE"
},
"requestParameters":{
"sourceIPAddress":"127.0.0.1"
},
"responseElements":{
"x-amz-request-id":"C3D13FE58DE4C810",
"x-amz-id-2":"FMyUVURIY8/IgAtTv8xRjskZQpcIZ9KG4V5Wp6S7S/JRWeUWerMUE5JgHvANOjpD"
},
"s3":{
"s3SchemaVersion":"1.0",
"configurationId":"testConfigRule",
"bucket":{
"name":"sourcebucket",
"ownerIdentity":{
"principalId":"A3NL1KOZZKExample"
},
"arn":"arn:aws:s3:::sourcebucket"
},
"object":{
"key":"HappyFace.jpg",
"size":1024,
"eTag":"d41d8cd98f00b204e9800998ecf8427e",
"versionId":"096fKKXTRTtl3on89fVO.nfljtsv6qko"
}
}
}
]
}
我收到错误消息
无法调整SourceBucket/HappyFace.jpg的大小并上载到SourceBucketResigned/Resigned-HappyFace.jpg,原因是出现错误:PermanentreDirect:必须使用指定的终结点对您试图访问的桶进行寻址。请将所有将来的请求发送到此endpoint。结束请求ID:345345...
我已经更改了bucket名称、eTag和映像名称。我还需要换别的东西吗?我的区域是正确的。我需要编辑“PrincipalID”吗?我在哪能找到它?
怎么啦.
在我的例子中,问题是桶区域。在示例中,使用了“US-East-1”,但我的bucket在“EU-West-1”上,因此我必须更改2个内容:
“AWSREGION”:“EU-West-1”,
在lambda测试文件中aws.config.update({“region”:“EU-West-1”})
当然,您仍然需要在lambda测试文件中设置以下值:
名称:'Your_Bucket_Name_Here',
arn:'arn:aws:s3:::Your_Bucket_Name_Here'
经过这些修改后,它的工作与预期的一样
您的问题与“端点”有关。必须将“arn”:“arn:aws:s3:::sourcebucket”更改为“arn”:“arn:aws:s3:::(name_of_your_bucket)”。与“name”相同:“sourcebucket”与“name”相同:“(name_of_your_bucket)”。
为了避免更多的问题,您必须将一个名为HappyFace.jpg的jpg上传到您的bucket,或者在s3中更改put测试对象代码。
问候