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.

‘AWS_PROXY’ actualmente solo admite invocaciones de funciones Lambda y transmisiones de Firehose

Deseo crear una Puerta de Enlace de la API que esté conectada a un flujo de Kinesis:

resource "aws_api_gateway_integration" "kinesis_integration" {
  rest_api_id          = aws_api_gateway_rest_api.kinesis.id
  resource_id          = aws_api_gateway_resource.api_resource_kinesis.id
  http_method          = aws_api_gateway_method.post_kinesis.http_method
  type                 = "AWS_PROXY"
  uri                  = "arn:aws:apigateway:eu-central-1:kinesis:action/PutRecord"
  integration_http_method     = "POST"
  depends_on = [
    aws_api_gateway_resource.resource_kinesis
  ]
}
resource "aws_kinesis_firehose_delivery_stream" "kinesis-stream" {
  name        = "kinesis-stream"
  destination = "extended_s3"
}

extended_s3_configuration {
    role_arn   = aws_iam_role.integration_role.arn
    bucket_arn = aws_s3_bucket.mybucket.arn

  processing_configuration {
    enabled = "true"

    processors {
      type = "Lambda"

      parameters {
        parameter_name  = "LambdaArn"
        parameter_value = "${aws_lambda_function.mylambda.arn}:$LATEST"
      }
    }
  }
}
Error creating API Gateway Integration: BadRequestException: AWS ARN for integration must contain path or action
│ 
│   with module.api.aws_api_gateway_integration.kinesis_integration,
│   on ../../modules/myapi.tf line 62, in resource "aws_api_gateway_integration" "kinesis_integration":
│   62: resource "aws_api_gateway_integration" "kinesis_integration" {

¿Estoy utilizando la sintaxis incorrecta? ¿No se supone que debe ser una cadena de texto? Leí en otra respuesta de SO que el formato de la URI debe ser así:

arn:aws:apigateway:{region}:{subdomain.service|service}:{path|action}/{service_api}

pero no parece funcionar para mí. Ya intenté ambas soluciones aquí, pero me dan el mismo error:

Enlace a la pregunta en Stack Overflow sobre la integración de AWS API Gateway con Firehose en Terraform

Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    Según el mensaje de error, parece que el ARN de AWS para la integración no tiene la ruta o acción requerida. El formato para la URI debe ser el siguiente:

    arn:aws:apigateway:{región}:{subdominio.servicio|servicio}:{ruta|acción}/{api_del_servicio}
    

    Asegúrese de que los valores de {región}, {subdominio.servicio|servicio} y {api_del_servicio} sean correctos y coincidan con su configuración. Además, asegúrese de que la URI sea una cadena y que el formato siga el patrón correcto.

Comments are closed.