云函数URL订阅Pub/Sub Topic遇INVALID_ARGUMENT错误求助
解决Pub/Sub订阅云函数URL时的INVALID_ARGUMENT错误
嘿,我之前刚好踩过这个坑,给你理清楚为啥会出问题以及该怎么解决:
问题根源
你手动把云函数的https://us-central1-myapp-dev.cloudfunctions.net/naguib-testing URL订阅到Pub/Sub Topic时触发的INVALID_ARGUMENT错误,核心原因是Pub/Sub的安全机制:它要求HTTP/S类型的订阅端点,其域名必须是你在Google Cloud中验证过归属的域名。但cloudfunctions.net是Google官方管理的域名,你根本没法在自己的项目里完成这个域名验证,所以手动订阅肯定会失败。
正确的解决方式
别用手动订阅URL的方式,直接用云函数内置的Pub/Sub触发器功能就好,Google会自动帮你搞定所有验证和订阅关联:
- 如果还没创建云函数:在创建云函数的步骤里,触发器类型选择「Pub/Sub」,然后指定你要关联的Topic,完成创建后,系统会自动在该Topic下生成对应的订阅,并且内部完成信任验证,完全不用管域名的事儿。
- 如果已经创建好云函数:进入云函数的详情页面,切换到「触发器」标签,点击「添加触发器」,类型选「Pub/Sub」,选择你的目标Topic,保存之后,Google会自动帮你建立订阅并完成验证,不会再出现域名相关的错误。
为啥内置触发器能行?
因为云函数是Google Cloud的原生服务,通过内置触发器关联Pub/Sub时,Google内部已经建立了服务间的信任关系,跳过了外部域名验证的步骤——相当于官方给开了绿色通道,不用你去折腾不属于自己的域名验证。
内容的提问来源于stack exchange,提问作者Naguib Ihab
相关产品推荐
相关产品推荐

