【发布时间】:2019-02-25 10:57:51
【问题描述】:
根据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"
如果我想给那个bucket添加默认加密,我需要在模板的Resources部分创建bucket,并在事件处理程序中引用它,好的,我可以做到。
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
但现在我被困在如何指定要触发处理程序的事件和规则(前缀和文件类型)上。我无法将它们添加到调整大小处理程序块中,并且在搜索文档以找到答案时遇到了麻烦。
【问题讨论】:
标签: amazon-web-services amazon-s3 serverless-framework serverless