2015-01-19 4 views
1

я следовал этому учебнику для создания эскизов изображений в другое ведро с AWS Lambda: http://docs.aws.amazon.com/lambda/latest/dg/walkthrough-s3-events-adminuser-create-test-function-upload-zip-test.htmlЧто не так с моей функцией AWS Lambda?

Я сделал все шаги, ранее в учебнике, но когда я запускаю код ниже в тесте 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" 
      } 
     } 
     } 
    ] 
} 

Я получаю сообщение об ошибке

Unable to resize sourcebucket/HappyFace.jpg and upload to sourcebucketresized/resized-HappyFace.jpg due to an error: PermanentRedirect: The bucket you are attempting to access must be addressed using the specified endpoint. Please send all future requests to this endpoint. END RequestId: 345345...

Я изменил название ковш, Etag и изображения имя. Нужно ли мне что-то менять? Мой регион правильный. Нужно ли редактировать «mainId»? Где я могу найти его?

Что не так.

ответ

0

Ваша проблема заключается в «конечной точке». Вы должны изменить «arn»: «arn: aws: s3 ::: sourcebucket» на «arn»: «arn: aws: s3 :: :(name_of_your_bucket)». То же самое для «name»: «sourcebucket» для «name»: «(name_of_your_bucket)».

Чтобы избежать лишних проблем, вы должны загрузить jpg под названием HappyFace.jpg в свой ковш или изменить код объекта s3 put Test object.

С уважением

4

В моем случае проблема была область ведра. В примере «мы-восток-1» используется, но мое ведро на «ес-запад-1», так что я должен был изменить 2 вещи:

  • "awsRegion":"eu-west-1", в лямбда-тестового файла
  • установить область в моем nodejs код лямбда: AWS.config.update({"region": "eu-west-1"})

И, конечно, вы по-прежнему необходимо установить следующие значения в тестовом файле лямбда:

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

После этого модификаций она работала, как и ожидалось

0

использование Try этого обновленного формата (Пожалуйста, внимательно настроить ключ, имя блока, Арна и awsRegion для собственных настроек):

{ 
    "Records": [ 
    { 
     "eventVersion": "2.0", 
     "eventTime": "1970-01-01T00:00:00.000Z", 
     "requestParameters": { 
     "sourceIPAddress": "127.0.0.1" 
     }, 
     "s3": { 
     "configurationId": "testConfigRule", 
     "object": { 
      "eTag": "abcdefabcdef", 
      "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" 
    } 
    ] 
} 
Смежные вопросы