如何通过Terraform创建IBM Cloud Event Streams触发器
完整Terraform配置示例
# 提前从IBM Cloud控制台获取myKafka实例的服务凭证信息用于填充参数 resource "ibm_function_trigger" "myTrigger" { name = "myTrigger" namespace = "myNameSpace" # 替换为你实际使用的Cloud Function命名空间ID feed { # Event Streams触发器对应feed固定取值 name = "/whisk.system/messaging/messageHubFeed" parameters = <<EOF [ { "key": "kafka_brokers_sasl", "value": ["broker-1.eventstreams.cloud.ibm.com:9093", "broker-2.eventstreams.cloud.ibm.com:9093", "broker-3.eventstreams.cloud.ibm.com:9093"] # 替换为myKafka实例的SASL接入点列表 }, { "key": "user", "value": "token" # IBM Event Streams默认SASL用户名,固定取值 }, { "key": "password", "value": "your_eventstreams_apikey" # 替换为myKafka实例服务凭证中的apikey字段 }, { "key": "kafka_admin_url", "value": "https://xxx.admin.eventstreams.cloud.ibm.com" # 替换为myKafka实例服务凭证中的kafka_admin_url字段 }, { "key": "topic", "value": "myTopic" # 要监听的Event Streams主题名称 } ] EOF } } # 必须新增规则资源,完成触发器与动作的关联 resource "ibm_function_rule" "myRule" { name = "eventstreams-trigger-action-rule" namespace = "myNameSpace" # 与trigger使用相同的命名空间 trigger = ibm_function_trigger.myTrigger.name action = "myAction" # 你的IBM Cloud Function动作名称 }
参数说明
- feed的
name字段为IBM Cloud Function内置的Event Streams触发器固定值,无需修改 - 所需的
kafka_brokers_sasl、password、kafka_admin_url参数均可在IBM Cloud控制台的myKafka实例详情页,「服务凭证」板块创建凭证后获取。 - 触发器创建完成后必须配置对应规则绑定动作,否则无法触发
myAction执行。
内容的提问来源于stack exchange,提问作者kbenda
相关产品推荐
相关产品推荐

