Serverless Marco: S3 Lambda Gatillo de la cubeta de recursos

0

Pregunta

Quiero crear una función Lambda que se desencadena a partir de un depósito de S3 creado dentro de la misma pila de CloudFormation, pero no puede obtener la sintaxis del todo bien.

El evento sólo debe activarse cuando un objeto está cargado /uploads. También tengo que especificar algunos cubo de propiedades (CORS).

S3 definición de los recursos

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

Evento en la definición de la función:

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

No quiero usar existing: true ya que crea algunos objetos de ayuda para esta tarea simple. No puedo encontrar ninguna documentación o ejemplos que se ajusta a mi caso.

1

Mejor respuesta

2

El existing:true la bandera sólo se refiere a S3 cubos creados fuera de su serverless proyecto, para los cubos que ya existe, que no es el caso aquí.

La situación en la que se enfrentan es que no se puede utilizar el típico serverless marco de la conveniencia de definir el cubo de la Lambda desencadenador de eventos, como este:

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

La razón que usted no puede utilizar este método es que se crea la photos cubo y no permite el suministro adicional de cubo de configuración, por ejemplo, CORS o en la cubeta de la política.

La solución a este problema es crear el S3 en el S3 la configuración del proveedor, con CORS de la política, y, a continuación, consulte el cubo de su función Lambda de configuración de eventos. Por ejemplo:

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

En otros idiomas

Esta página está en otros idiomas

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