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

如何在Terraform中配置API Gateway与Kinesis数据流的集成请求?

API Gateway集成Kinesis动态分片的Terraform配置问题及解决

我需要用Terraform配置API Gateway的集成请求资源,实现通过API Gateway Method向Kinesis数据流推送数据。之前找到的示例里指定了固定分片,但我的需求是基于user_id这类标识动态选择分片,一开始的配置如下:

resource "aws_api_gateway_integration" "post_method_integration" {
  rest_api_id             = aws_api_gateway_rest_api.my_api.id
  resource_id             = aws_api_gateway_resource.the_resource.id
  http_method             = aws_api_gateway_method.the_method.http_method
  integration_http_method = "POST"
  type                    = "AWS"
  uri = format(
    "arn:%s:apigateway:%s:kinesis:action/PutRecord",
    data.aws_partition.current.partition,
    var.default_region
  )
}

问题解决

我已经解决了这个问题,修正后的关键配置如下:

uri = "arn:aws:apigateway:${var.default_region}:kinesis:action/PutRecord"
credentials = aws_iam_role.api_gw_kinesis_role.arn

额外说明:要实现动态分片,还需在API Gateway的request_templates中配置请求映射模板,将请求中的user_id作为PartitionKey传入Kinesis的PutRecord接口,Kinesis会基于该键值哈希后自动分配到对应分片。示例映射模板如下:

{
  "StreamName": "${var.kinesis_stream_name}",
  "Data": "$util.base64Encode($input.body)",
  "PartitionKey": "$input.path('$.user_id')"
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.01 02:15:34