Je veux utiliser CloudFormation pour créer un seau S3 qui déclenchera la fonction Lambda chaque fois qu'un événement S3 se produit comme la création de fichiers, la suppression de fichiers, etc.modèle CloudFormation pour déclencher Lambda sur l'événement S3
De mes recherches, je ont mon AWS::Lambda::Function et AWS::S3::Bucket configuration,
AWSTemplateFormatVersion: '2010-09-09'
Resources:
HandleFileCreation:
Type: "AWS::Lambda::Function"
Properties:
...
LambdaExecutionRole:
Type: AWS::IAM::Role
Properties:
ManagedPolicyArns:
- arn:aws:iam::aws:policy/AmazonS3FullAccess
- arn:aws:iam::aws:policy/AWSLambdaFullAccess
AssumeRolePolicyDocument:
...
ReportsBucket:
Type: AWS::S3::Bucket
BucketPolicy:
Type: AWS::S3::BucketPolicy
Properties:
Bucket: !Ref ReportsBucket
PolicyDocument:
...
Je regardais la AWS::Events::Rule, mais l'exemple est seulement pour EC2 et je ne peux pas trouver des exemples pour S3
EventRule:
Type: "AWS::Events::Rule"
Properties:
Description: "EventRule"
EventPattern:
source:
- "aws.ec2"
detail-type:
- "EC2 Instance State-change Notification"
detail:
state:
- "stopping"
State: "ENABLED"
Targets:
-
Arn:
Fn::GetAtt:
- HandleFileCreation
- Arn
Id: TargetFunctionV1
PermissionForEventsToInvokeLambda:
Type: AWS::Lambda::Permission
Properties:
FunctionName:
Ref: HandleFileCreation
Action: "lambda:InvokeFunction"
Principal: "events.amazonaws.com"
SourceArn:
Fn::GetAtt:
- "EventRule"
- "Arn"
Comment écrire le modèle à déclencher sur les événements S3?
Je reçois une erreur 'AWS :: S3 :: Bucket \t ReportsBucket \t L'ARN n'est pas bien formé ID physique: quelque-prefix-us-ouest-2-test-43a8dcf' qui fait référence à mon nom de compartiment' BucketName: ! Rejoindre ['-', ['un-préfixe',! Ref Région,! Ref Stage]] ' –