Sem servidor do Quadro: S3 Lambda Gatilho com balde de recursos

0

Pergunta

Eu quero criar uma função Lambda que é acionado a partir de um bucket S3 criado dentro de uma mesma pilha do CloudFormation mas não é possível obter a sintaxe correta.

O evento só deve ser acionado quando um objeto é transferido para /uploads. Eu também preciso especificar alguns balde de propriedades (CORS).

Bucket S3 definição de recursos

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

Evento na definição da função:

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

Eu não quero usar existing: true porque cria-se alguns objectos de ajuda para esta tarefa simples. Eu não posso encontrar qualquer documentação ou exemplos que se encaixam no meu caso.

1

Melhor resposta

2

O existing:true bandeira se refere apenas ao S3 baldes criados fora de sua serverless projeto, para grupos que já existem, o que não é o caso aqui.

A situação que você enfrenta é que você não pode usar o típico serverless quadro conveniência de definir o balde na Lambda disparador do evento, como este:

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

A razão que você não pode usar esse método é que ele cria o photos balde e não permite que você para fornecer balde de configuração, por exemplo, o CORS ou balde política.

A solução para isso é criar o bucket S3 no S3 configuração do provedor, com CORS política e, em seguida, consulte o balde de sua função Lambda configuração de eventos. Por exemplo:

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

Em outros idiomas

Esta página está em outros idiomas

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