Согласно https://serverless.com/framework/docs/providers/aws/events/s3/ я могу создать корзину S3 в безсерверном шаблоне, которая запускает событие, когда jpg-файл попадает в каталог загрузки.Отлично!
functions:
users:
handler: users.handler
events:
- s3:
bucket: photos
event: s3:ObjectCreated:*
rules:
- prefix: uploads/
- suffix: .jpg
С другим примером того, когда вы хотите добавить пользовательские свойства корзины S3.Также замечательно!
functions:
resize:
handler: resize.handler
events:
- s3: photos
resources:
Resources:
S3BucketPhotos:
Type: AWS::S3::Bucket
Properties:
BucketName: my-custom-bucket-name
ResizeLambdaPermissionPhotosS3:
Type: "AWS::Lambda::Permission"
Properties:
FunctionName:
"Fn::GetAtt":
- ResizeLambdaFunction
- Arn
Principal: "s3.amazonaws.com"
Action: "lambda:InvokeFunction"
SourceAccount:
Ref: AWS::AccountId
SourceArn: "arn:aws:s3:::my-custom-bucket-name"
Если я хочу добавить шифрование по умолчанию к этому сегменту, мне нужно создать сегмент в разделе ресурсов шаблона и ссылаться на него в обработчике событий, хорошо, я могу это сделать.
functions:
resize:
handler: resize.handler
events:
- s3: photos
resources:
Resources:
S3BucketPhotos:
Type: AWS::S3::Bucket
Properties:
BucketName: my-custom-bucket-name
BucketEncryption:
ServerSideEncryptionConfiguration:
- ServerSideEncryptionByDefault:
SSEAlgorithm: AES256
Но теперь я застрял на том, как я указываю событие и правила (префикс и тип файла), которые я хочу запускать обработчик.Я не могу добавить их в блок обработчика изменения размера, и у меня возникли проблемы с поиском документации для поиска ответа.