Sans serveur Cadre: S3 Lambda de Déclenchement avec godet de ressources

0

La question

Je veux créer une fonction Lambda qui est déclenché à partir d'un compartiment S3 créé au sein de la même CloudFormation pile, mais ne peut pas obtenir la syntaxe tout à fait raison.

L'événement ne doit être déclenché lorsqu'un objet est transféré à /uploads. J'ai aussi besoin de spécifier un seau propriétés (SCRO).

Compartiment S3 définition des ressources

resources:
  Resources:
    myBucket:
      Type: AWS::S3::Bucket
      Properties:
        BucketName: my-bucket
        # CORS properties...

Événement dans la définition de la fonction:

events:
  - s3: 
    bucket: myBucket
    event: s3:ObjectCreated:Put
    rules:
      - prefix: uploads/

Je ne veux pas utiliser existing: true parce qu'il crée des objets d'aide pour cette tâche simple. Je ne trouve aucune documentation ou des exemples qui correspondent à mon cas.

1

La meilleure réponse

2

L' existing:true drapeau ne concerne S3 créée à l'extérieur de votre projet sans serveur, pour les seaux qui existent déjà, ce qui n'est pas le cas ici.

La situation vous devez faire face est que vous ne pouvez pas utiliser la typique sans serveur cadre de la commodité de définir le seau dans le Lambda de l'événement déclencheur, comme ceci:

functions:
  users:
    handler: users.handler
    events:
      - s3:
          bucket: photos
          event: s3:ObjectRemoved:*

La raison pour laquelle vous ne pouvez pas utiliser cette méthode, c'est qu'il crée l' photos seau et ne vous permet pas de fournir d'autres seau de configuration, par exemple, CORS ou seau de la politique.

La solution pour cela est de créer la S3 seau dans la S3 de configuration du fournisseur, avec de la SCRO politique, puis reportez-vous au seau de votre fonction Lambda configuration de l'événement. Par exemple:

provider:
  s3:
    photosBucket:
      name: photos
      versioningConfiguration:
        Status: Enabled
      corsConfiguration:
        CorsRules
          - rule1 here
2021-11-22 00:00:34

Dans d'autres langues

Cette page est dans d'autres langues

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
हिन्दी
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................