使用Terraform实现Pub/Sub触发Cloud Function的问题求助
解决方案
错误原因分析
尝试1错误根源:
你写的resource路径格式不符合GCP资源命名规范,正确路径开头应为projects而非project。错误写法导致Terraform生成了重复嵌套的路径projects/myprojectID/topics/project/myprojectID/topics/my_topic,触发Pub/Sub格式校验报错。尝试2错误根源:
event_trigger块中的resource字段要求传入字符串,你传入了对象类型,不符合Terraform的schema定义,因此报错。
正确实现方式
提供两种可行写法,选其一即可:
方式1:使用专门的pubsub_topic字段(推荐,语义更清晰)
event_trigger { event_type = "google.pubsub.topic.publish" pubsub_topic = "projects/${var.project_id}/topics/${var.environment}_my_topic" }
方式2:修正resource字段的路径格式
event_trigger { event_type = "google.pubsub.topic.publish" resource = "projects/${var.project_id}/topics/${var.environment}_my_topic" }
补充说明
确保变量已正确定义(示例variables.tf):
variable "project_id" { type = string description = "GCP项目ID" } variable "environment" { type = string description = "环境标识(如dev/prod)" }
内容的提问来源于stack exchange,提问作者Sekhar
相关产品推荐
相关产品推荐

