【问题标题】:I'AWS_PROXY' currently only supports Lambda function and Firehose stream invocationsI'AWS_PROXY' 目前仅支持 Lambda 函数和 Firehose 流调用
【发布时间】:2022-01-11 04:00:59
【问题描述】:

我想创建一个连接到运动流的 API 网关:

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" {

我是否使用了错误的语法?它不应该是一个字符串吗?我在另一个 SO 答案中读到 uri 的格式应该是这样的:

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

但它似乎对我不起作用。我已经在这里尝试了两种溶胶,但它们给了我同样的错误: What should be service api for aws_api_gateway_integration with firehose in terraform

【问题讨论】:

  • 好吧,qs 专门用于 AWS 代理,但我仍然无法解决错误,所以我想我会让 qs 保持打开状态@Marcin
  • 我已经写过了,Firehose 没有 AWS_PROXY。
  • 嗯仍然很困惑为什么它写在错误中。我还看到了一些关于 AWX Proxy + Firehose 的教程 .. 找不到了,但是那个教程是我首先开始这样做的原因@Marcin
  • 可能是占位符。 Aws 可能在内部处理此问题,并且错误消息已包含此内容。

标签: amazon-web-services terraform aws-api-gateway amazon-kinesis amazon-kinesis-firehose


【解决方案1】:

您尝试关注的链接用于 AWS 集成,而不是 AWS_PROXYAWS_PROXY 仅适用于 lambda 函数。我知道它在某处说您也可以使用 Firehose(我认为是一些错误消息),但它并没有真正记录和宣传。它要么是某些内部 AWS 功能,要么是尚未实现的功能。

【讨论】:

    猜你喜欢
    • 2019-01-06
    • 2020-08-26
    • 2018-10-29
    • 1970-01-01
    • 2019-05-20
    • 2021-09-09
    • 2017-10-19
    • 1970-01-01
    • 2017-10-23
    相关资源
    最近更新 更多