GCF:Pubsub 调用旧版本

Posted

技术标签:

【中文标题】GCF:Pubsub 调用旧版本【英文标题】:GCF: Pubsub invokes old versions 【发布时间】:2021-11-29 23:16:36 【问题描述】:

在使用 Cloudbuild 构建 GCF 时,是否需要执行任何版本/源更新步骤或操作。还是有办法确保 pubsub 主题调用最新的 GCF 版本?

我有一堆使用 CloudBuild 构建的 GCF,然后由 pubsub 主题调用。奇怪的是,其中一些(不是全部)从以前版本的 GCF 中抛出错误(最后一个 GCF 版本实际上修复了错误)。

GCF 源代码显示了预期内容:最新版本的代码 然而,GCF 会抛出 GCF 先前版本源代码中的错误。 当前活动的 GCF 版本的源代码中甚至不存在该行(GCF > Functions > FUNC_NAME > Source)。

在某些情况下,距离 GCF 部署和第一次调用已经过去了几个小时。

【问题讨论】:

文档中可能相关的注释:cloud.google.com/functions/docs/… 是的,这类似于@al-dann 在下面发布的内容,但是从部署到调用之间需要几个小时,所以它必须是一个新实例,它应该建立在最新版本上,但不是 您有具体问题,或者您正在寻找最佳实践/如何提问?你能具体说明你想要达到的目标吗? 这是我现在遇到的一个具体问题。 Pubsub 调用旧版本的 GCF。如果我错过了需要更改的设置中的某些内容,我很想知道,但是这种行为至少是非常出乎意料且令人讨厌的 您能否分享复制此行为的详细步骤?我想形象化这个问题。 【参考方案1】:

据我所知,新代码将用于云功能的下一个“插槽/实例”的“冷启动”...如果您有一些实例被不断使用 - 当一个调用完成,下一个使用这个(刚刚变得可用)可用的“运行时环境槽”,这样就不会从头开始创建环境。因此,可能需要一些时间才能将所有这些“槽”替换为 new,在创建环境时会上传新版本的代码。

您可能更愿意删除云函数,然后重新创建它(使用新代码),或者耗尽 pubsub,因此触发云函数时会暂停。

【讨论】:

我想过,但是这些函数不可能来自重复使用的实例,从构建到调用已经有几个小时了。

以上是关于GCF:Pubsub 调用旧版本的主要内容,如果未能解决你的问题,请参考以下文章

Pubsub 推送拉取订阅

PubSub 死字

如何在旧版本的放心中允许自签名 SSL 证书

xmpp pubsub 理解

是否有明确的 SignalR 集线器版本控制策略,以便旧的 JS 代码可以继续工作?

逆思维调用双版本PHP7和5