【问题标题】:What is wrong with my AWS Lambda function?我的 AWS Lambda 函数有什么问题?
【发布时间】:2015-03-17 08:25:03
【问题描述】:

我已按照本教程使用 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 的大小并上传到 sourcebucketresized/resized-HappyFace.jpg 由于错误: PermanentRedirect:您尝试访问的存储桶必须是 使用指定的端点寻址。请发送所有未来 对此端点的请求。 END RequestId: 345345...

我已更改存储桶名称、eTag 和图像名称。我需要更改其他内容吗?我的地区是正确的。我需要编辑“principalId”吗?我在哪里可以找到它?

怎么了。

【问题讨论】:

    标签: amazon-web-services amazon-s3 aws-lambda


    【解决方案1】:

    您的问题与“端点”有关。您必须将“arn”:“arn:aws:s3:::sourcebucket”更改为“arn”:“arn:aws:s3:::(name_of_your_bucket)”。与 "name":"sourcebucket" 到 "name":"(name_of_your_bucket)" 相同。

    为了避免出现更多问题,您必须上传一个名为 HappyFace.jpg 的 jpg 到您的存储桶或在 s3 中更改放置测试对象代码。

    问候

    【讨论】:

      【解决方案2】:

      就我而言,问题出在存储桶区域。在示例中使用了“us-east-1”,但我的存储桶在“eu-west-1”上,所以我必须更改两件事:

      • "awsRegion":"eu-west-1", 在 lambda 测试文件中
      • 在我的 nodejs lambda 代码中设置区域:AWS.config.update({"region": "eu-west-1"})

      当然你还需要在 lambda 测试文件中设置以下值:

      • name: 'your_bucket_name_here',
      • arn: 'arn:aws:s3:::your_bucket_name_here'

      修改后,它按预期工作

      【讨论】:

        【解决方案3】:

        尝试使用这种更新的格式(请仔细配置密钥、存储桶名称、arn 和 awsRegion 到您自己的设置):

        {
          "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": "HappyFace.jpg",
                  "size": 1024
                },
                "bucket": {
                  "arn": "arn:aws:s3:::myS3bucket",
                  "name": "myS3bucket",
                  "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"
            }
          ]
        }
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2022-11-01
          • 2019-05-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2021-12-08
          • 2021-04-11
          相关资源
          最近更新 更多