You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Terraform配置API Gateway对接Kinesis报ARN格式错误如何解决?

问题排查与修复方案

你遇到的报错核心是集成类型配置错误,配合其他几个配置疏漏共同导致报错,具体问题和修正方法如下:

  • 集成类型配置错误
    AWS_PROXY类型的API Gateway集成仅支持Lambda函数代理调用,对接Kinesis、Firehose这类其他AWS服务时,需要将type参数从AWS_PROXY改为AWS。
  • 缺失IAM权限配置
    你没有添加credentials参数指定调用Kinesis/Firehose的IAM角色ARN,需要补充该参数,且对应角色需要配置允许API Gateway服务扮演、以及对应Kinesis/Firehose的操作权限。
  • 依赖配置不匹配
    你定义的API资源名为aws_api_gateway_resource.api_resource_kinesis,但depends_on中写的资源名是resource_kinesis,名称不匹配会导致依赖解析异常。
  • 服务资源不匹配
    你当前创建的是Kinesis Firehose交付流,但集成URI配置的是原生Kinesis数据流的PutRecord动作,如果要对接你声明的Firehose流,需要将URI调整为Firehose对应的服务动作。

修正后的配置示例(对接你创建的Firehose流)

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"
  # 修正为Firehose对应的动作URI
  uri                     = "arn:aws:apigateway:eu-central-1:firehose:action/PutRecordBatch"
  integration_http_method = "POST"
  # 补充调用服务的IAM角色
  credentials             = aws_iam_role.integration_role.arn
  depends_on = [
    aws_api_gateway_resource.api_resource_kinesis
  ]
}

如果确实需要对接原生Kinesis数据流而非Firehose,你需要额外创建aws_kinesis_stream类型的资源,再将URI改回Kinesis PutRecord地址即可。

内容的提问来源于stack exchange,提问作者user13067694

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.23 15:18:07