Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

201
Visualizações
Busque S3 Bucket y agregue un disparador para invocar un lambda

Estoy usando el nuevo AWS CDK (Cloud Development Toolkit) para construir la infraestructura en AWS en Java.

Lo que tengo que hacer: buscar un depósito s3 y agregar un disparador que invoque una función lambda.

Que he hecho:

  • Busqué el cubo s3:

     IBucket bucket = Bucket.fromBucketName(scope, bucketId, bucketName);
  • Agregue una nueva fuente de eventos a la lambda existente:

     IEventSource eventSource = getObjectCreationEvent(); lambda.addEventSource(eventSource);
  • Donde getObjectCreationEvent() es:

     private S3EventSource getObjectCreationEvent() { return new S3EventSource(bucket, new S3EventSourceProps() { @Override public List<EventType> getEvents() { return Collections.singletonList(EventType.OBJECT_CREATED); } }); }

Cuál es el problema:

El tipo de parámetro de S3EventSource bucket Bucket , pero cada método de búsqueda (p. ej Bucket.fromBucketName() ) devuelve un IBucket y no un Bucket , por lo que no coincide la firma. Si IBucket a Bucket , tengo una ClassCastException .

over 4 years ago · Santiago Trujillo
1 Respostas
Responde à pergunta

0

Desde el rastreador de problemas de git https://github.com/aws/aws-cdk/issues/2004#issuecomment-479923251

Debido a las limitaciones actuales con CloudFormation y la forma en que implementamos las notificaciones de depósito en el CDK, es imposible agregar notificaciones de depósito en un depósito importado. Esta es la razón por la que el origen del evento usa s3.Bucket en lugar de s3.IBucket.

Podrías usar outPutObject:

 const bucket = s3.Bucket.import(this, 'B', { bucketName: 'my-bucket' }); const fn = new lambda.Function(this, 'F', { code: lambda.Code.inline('boom'), runtime: lambda.Runtime.NodeJS810, handler: 'index.handler' }); bucket.onPutObject('put-object', fn);

Pero leyendo más adelante, esto tampoco parece funcionar.

Parece que la respuesta actualmente es:

Es imposible de configurar.

over 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda