使用Terraform创建EventBridge管道:自建Kafka源的source字段填什么?
解决EventBridge管道源为非AWS托管Kafka时的source字段填写问题
当你的EventBridge管道源是自托管Kafka集群(比如Confluent管理的自建集群)时,source字段不需要填写ARN,而是固定填写字符串:self-managed-kafka。这是AWS EventBridge Pipes专门用于标识自托管Kafka源的固定值。
修正后的Terraform配置示例
resource "aws_pipes_pipe" "eventbridge_northbound" { depends_on = [aws_iam_role_policy.target] name = "my_eventbridge_pipe" role_arn = aws_iam_role.my_eventbridge_role.arn source = "self-managed-kafka" # 填写固定标识值 target = aws_lambda_function.eventbridge_target.arn source_parameters { self_managed_kafka_parameters { # 注意:需通过secret_version获取bootstrap服务器的实际地址值 additional_bootstrap_servers = [data.aws_secretsmanager_secret_version.confluent_bootstrap_server.secret_string] topic_name = var.topicname credentials { # 同样需通过secret_version获取认证凭证的实际值 basic_auth = data.aws_secretsmanager_secret_version.confluent_auth_credentials.secret_string } } } } # 补充:添加获取机密实际内容的数据源 data "aws_secretsmanager_secret_version" "confluent_bootstrap_server" { secret_id = data.aws_secretsmanager_secret.confluent_bootstrap_server.id } data "aws_secretsmanager_secret_version" "confluent_auth_credentials" { secret_id = data.aws_secretsmanager_secret.confluent_auth_credentials.id }
关键注意事项
additional_bootstrap_servers和basic_auth字段需要的是机密的实际字符串内容,而非aws_secretsmanager_secret数据源(仅返回机密元数据),因此必须配合aws_secretsmanager_secret_version获取真实值。- 确保绑定的IAM角色拥有访问Secrets Manager机密的权限,同时EventBridge Pipes需具备与自托管Kafka集群连通的网络权限、以及Kafka主题的读写权限。
内容的提问来源于stack exchange,提问作者JPlanken
相关产品推荐
相关产品推荐

