I'AWS_PROXY' 目前仅支持 Lambda 函数和 Firehose 流调用

Posted

技术标签:

【中文标题】I\'AWS_PROXY\' 目前仅支持 Lambda 函数和 Firehose 流调用【英文标题】: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 可能在内部处理此问题,并且错误消息已包含此内容。 【参考方案1】:

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

【讨论】:

以上是关于I'AWS_PROXY' 目前仅支持 Lambda 函数和 Firehose 流调用的主要内容,如果未能解决你的问题,请参考以下文章

Lambda nodejs - 不支持带有 libcurl 字节范围的 mediainfo

lambda表达式

如何限制 Lambda 函数仅响应特定来源?

委托与匿名委托

使用代理集成时,API 网关和 Lambda 出现 CORS 错误**仅**

GeoPHP Exception to convert mydql WKB 目前仅支持 NDR (little endian) SKB 格式