Я пытаюсь изменить этот предоставленный 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
, но я не могу найти какой-либо другойспособ сделать это.Может быть, это не поддерживается.Любая помощь будет оценена.