Невозможно добавить облачный фронт как триггер к лямбда-функции - PullRequest
0 голосов
/ 24 мая 2018

Привет! Я следовал этой инструкции . Попытайтесь изменить размер изображения с помощью Cloudfront и lambda @ edge.Когда я пытался протестировать изображение с измененным размером, я получаю сообщение об ошибке ниже:

Функция Lambda, связанная с дистрибутивом CloudFront, недопустима или не имеет необходимых разрешений.

Итак, я проверил лямбда-функции, созданные в результате формирования облаков в статье, о которой упоминал в начале, и обнаружил, что в ней нет триггера.

enter image description here

Я пытался установить его вручную, но получаю сообщение об ошибке ниже:

События CloudFront не могут быть связаны с $ LATEST или Alias.Выберите Действия, чтобы опубликовать новую версию своей функции, а затем повторите попытку ассоциации.

Я следовал инструкции в сообщении об ошибке;опубликовать и добавить Cloudfront в качестве триггера, но, кажется, нет никакого способа его применить.Он все еще работает без Cloudfront в качестве триггера.

How can I apply this version as my lambda service?

Есть ли способ установить Cloudfront в качестве триггера и заставить его работать должным образом?

Ответы [ 3 ]

0 голосов
/ 11 февраля 2019

Для меня отсутствующий триггер фронта облака на лямбда-экране был из-за того, что я не был в регионе us-east-1

0 голосов
/ 07 марта 2019

Если вы нашли, что этот ответ погуглил «Функция Lambda, связанная с распространением CloudFront, недействительна или не имеет необходимых разрешений», это может быть вызвано тем, что ваша функция неправильно подключена из облачной информации.Например, заданный yaml:

Code: ./src/ # or CodeUri ./src/
Handler: foo.bar

Дважды проверьте, что ./src/foo.js имеет exports.bar = function ...

0 голосов
/ 24 мая 2018

Для других людей, страдающих от низкого качества статей для разработчиков из блога aws;Я обнаружил, что это из-за неправильной политики S3 Bucket.В статье говорится:

ImageBucketPolicy:
    Type: AWS::S3::BucketPolicy
    Properties:
      Bucket: !Ref ImageBucket
      PolicyDocument:
        Statement:
            - Action:
                - s3:GetObject
              Effect: Allow
              Principal: "*"
              Resource: !Sub arn:aws:s3:::${ImageBucket}/*
            - Action:
                - s3:PutObject
              Effect: Allow
              Principal:
                AWS: !GetAtt EdgeLambdaRole.Arn
              Resource: !Sub arn:aws:s3:::${ImageBucket}/*
            - Action:
                - s3:GetObject
              Effect: Allow
              Principal:
                AWS: !GetAtt EdgeLambdaRole.Arn
              Resource: !Sub arn:aws:s3:::${ImageBucket}/*

Оказывается, вам нужно предоставить разрешения, чтобы разрешить другие действия помимо GetObject и PutObject, потому что для этого нужно создавать папки в корзине.Просто проблема решается путем замены на s3: *

...