Serverless Cadru: S3 Lambda Declanșa cu galeata de resurse

0

Problema

Vreau să creez o funcție Lambda care este declanșat de o găleată S3 creat în același CloudFormation stivă, dar nu pot obține sintaxa destul de bine.

Evenimentul ar trebui să fi concediat numai atunci când un obiect este încărcat la /uploads. De asemenea, am nevoie pentru a specifica unele găleată proprietăți (CORS).

Găleată S3 definiție în resurse

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

Eveniment în funcție de definiție:

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

Nu doriți să utilizați existing: true pentru că se creează niște obiecte de ajutor pentru această sarcină simplă. Eu nu pot găsi orice documentație sau exemple care se potrivesc cazul meu.

1

Cel mai bun răspuns

2

La existing:true steagul se referă numai la S3 găleți creat în afara serverless proiect, găleți pentru care există deja, ceea ce nu este cazul aici.

Situația cu care vă confruntați este că nu puteți folosi tipic serverless cadru confortul de a defini în găleată Lambda eveniment de declanșare, astfel:

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

Motivul pentru care nu te poți folosi de această metodă este faptul că se creează photos găleată și nu vă permite să furnizeze suplimentare găleată de configurare, de exemplu, CORS sau găleată politică.

Soluția la această este de a crea găleată S3 în S3 furnizor de configurare, cu CORS politică, și apoi se referă la găleată din funcția Lambda eveniment de configurare. De exemplu:

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

În alte limbi

Această pagină este în alte limbi

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