AWS CDK - Как добавить уведомление о событии в существующую корзину S3 - PullRequest
2 голосов
/ 24 сентября 2019

Я пытаюсь изменить этот предоставленный AWS пример CDK вместо использования существующего сегмента.Дополнительная документация указывает, что импорт существующих ресурсов поддерживается.Пока я не могу добавить уведомление о событии в существующую корзину с помощью CDK.

Вот моя измененная версия примера:

class S3TriggerStack(core.Stack):

    def __init__(self, scope: core.Construct, id: str, **kwargs) -> None:
        super().__init__(scope, id, **kwargs)

        # create lambda function
        function = _lambda.Function(self, "lambda_function",
                                    runtime=_lambda.Runtime.PYTHON_3_7,
                                    handler="lambda-handler.main",
                                    code=_lambda.Code.asset("./lambda"))

        # **MODIFIED TO GET EXISTING BUCKET**
        #s3 = _s3.Bucket(self, "s3bucket")
        s3 = _s3.Bucket.from_bucket_arn(self, 's3_bucket',
            bucket_arn='arn:<my_region>:::<my_bucket>')

        # create s3 notification for lambda function
        notification = aws_s3_notifications.LambdaDestination(function)

        # assign notification for the s3 event type (ex: OBJECT_CREATED)
        s3.add_event_notification(_s3.EventType.OBJECT_CREATED, notification)

Это приводит к следующей ошибке при попыткеadd_event_notification:

AttributeError: '_IBucketProxy' object has no attribute 'add_event_notification'

Функция from_bucket_arn возвращает IBucket, а функция add_event_notification является методом класса Bucket, но я не могу найти какой-либо другойспособ сделать это.Может быть, это не поддерживается.Любая помощь будет оценена.

...