es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Desencadenar la función lambda desde DynamoDB.

Cada vez que llega un nuevo elemento a mi tabla Dynamo, quiero ejecutar una función lambda trigger_lambda_function. Así es cómo defino mi tabla y trigger. Sin embargo, el trigger no funciona como se espera.

recurso "awsdynamodbtable" "filenames" {
  nombre         = local.dynamodbtablefilenames
  billingmode    = "PROVISIONED"
  readcapacity   = 1000
  writecapacity  = 1000
  hashkey        = "filename"

#range_key      = ""

  attribute {
    name = "filename"
    type = "S"
  }

  etiquetas = var.tags
}

recurso "awslambdaeventsourcemapping" "allowdynamodbtabletotriggerlambda" {
  eventsourcearn  = awsdynamodbtable.filenames.streamarn
  functionname     = awslambdafunction.triggerstepfunctionlambda.arn
  startingposition = "LATEST"
}

Al aplicar Terraform, obtengo un error que dice:

│ Error: error creating Lambda Event Source Mapping (): InvalidParameterValueException: Unrecognized event source.
│ {
│ RespMetadata: {
│ StatusCode: 400,
│ RequestID: “5ae68da6-3f6d-4adb-b104-72ae584dbca7”
│ },
│ Message_: “Unrecognized event source.”,
│ Type: “User”
│ }

│ with module.ingest_system[“alpegatm”].aws_lambda_event_source_mapping.allow_dynamodb_table_to_trigger_lambda,
│ on ../../modules/ingest_system/dynamo.tf line 39, in resource “aws_lambda_event_source_mapping” “allow_dynamodb_table_to_trigger_lambda”:
│ 39: resource “aws_lambda_event_source_mapping” “allow_dynamodb_table_to_trigger_lambda” {

También intenté .arn en lugar de stream_arn pero eso también arrojó un error. ¿Qué más podría intentar?

Seguí la documentación para el trigger:
https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/lambdaeventsource_mapping

Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    Parece que está usando el ARN incorrecto para la fuente del evento. El event_source_arn debería ser el ARN de la fuente de eventos, que en este caso es la tabla DynamoDB. Debería usar el atributo arn del recurso aws_dynamodb_table en lugar del atributo stream_arn.

Comments are closed.