Настройка уведомления о событии s3 для существующей корзины в SQS с использованием cdk пытается создать неизвестную лямбда-функцию

#amazon-s3 #aws-lambda #aws-cdk

#amazon-s3 #aws-lambda #aws-cdk

Вопрос:

Я пытаюсь настроить уведомление о событии s3 для существующего сегмента S3 с помощью aws cdk. Ниже приведен код.

 bucket = s3.Bucket.from_bucket_name(self, "S3Bucket", f"some-{stack_settings.aws_account_id}")
bucket.add_event_notification(
    s3.EventType.OBJECT_CREATED,
    s3n.SqsDestination(queue),
    s3.NotificationKeyFilter(
        prefix="uploads/"
    ),
)
 

Сбой при создании стека, и я вижу ошибку ниже в консоли cloudformation.

 User: arn:aws:sts::<account>:assumed-role/some-cicd/i-8989898989xyz
is not authorized to perform: lambda:InvokeFunction on resource: 
arn:aws:lambda:us-east-1:<account_number>:function:<some name>-a-BucketNotificationsHandl-b2kDmawsGjpL
because no identity-based policy allows the lambda:InvokeFunction action (Service: AWSLambda; 
Status Code: 403; Error Code: AccessDeniedException; Request ID: c2d91744-416c-454d-a510-ff4cce061b80; 
Proxy: null)
 

Я не уверен, что это за лямбда. Я не пытаюсь создать какую-либо такую лямбду в моем приложении cdk.

введите описание изображения здесь

Кто-нибудь знает, что здесь происходит, и если с моим кодом что-то не так?

Ответ №1:

Возможность добавления уведомлений в существующую корзину реализована с помощью пользовательского ресурса, то есть лямбда-кода, который использует AWS SDK для изменения настроек корзины.

CloudFormation вызывает эту лямбду при создании этого пользовательского ресурса (также при обновлении / удалении).

Если вам нужны подробности, вот соответствующая проблема github, вы можете увидеть коммит, который добавил эту функцию.