有没有办法在向其发送流量之前测试完全托管的 Cloud 运行 修订版?

Is there a way to test a fully-managed Cloud Run revision before sending traffic to it?

我使用 Google 的 Cloud 运行(完全托管)来 运行 我正在构建的应用程序。当我部署一个新的修订版时,我希望能够在开始发送流量之前验证各种健康检查是否正常,但我一直无法为个人找到 URL(流量较少) 修订。是否有与我正在寻找的类似的东西?

这可以使用 "Revision tags",目前处于 alpha 阶段的功能:

通过创建始终指向 latets 修订版的标签 latest,您将能够在 URL https://latest---<SERVICE>-<HASH>.a.run.app.

下访问它

为此,请使用此命令:

gcloud alpha run services update-traffic --update-tags latest=LATEST

部署时,请确保不要将流量迁移到新版本:

gcloud run deploy --image ... --no-traffic

测试新创建的修订版后,将 10% 的流量发送给它

gcloud alpha run services update-traffic --to-tags latest=10

是的,您可以在向新版本发送流量之前对其进行测试。

现在,当前版本“editor-v1-0-0”:

首先,要通过打开 url 来测试新版本,您需要向新版本添加 标签 。因此,要将 a tag 添加到新修订版,请将如下所示的标志添加到创建新修订版的命令中(也可以添加 a tag 使用 commandGUI 到新修订,即使在创建新修订后也是如此):

--tag <tag>

现在,我将标签“绿色” 添加到修订版中:

--tag green

其次,创建新修订后不向其发送任何流量,您还需要在命令中添加如下所示的标志(如果创建新修订时不存在修订,则不能在命令中使用此标志修订版):

--no-traffic

然后,包括上面的 2 个标志,我 运行 参考 Shipping the public editor service in Securing Cloud Run services tutorial 的完整命令如下所示,以使用 "editor:2.0.0" 图像创建新修订版:

gcloud run deploy editor --image gcr.io/myproject-318173/editor:2.0.0 \
    --service-account editor-identity \
    --set-env-vars EDITOR_UPSTREAM_RENDER_URL=https://renderer-4bdlubpdxq-an.a.run.app \
    --allow-unauthenticated \
    --revision-suffix v2-0-0 \
    --tag green \
    --no-traffic

现在,新版本“editor-v2-0-0” 已创建,带有 标签“green”"0% Traffic"如下图:

然后,当点击新版本“editor-v2-0-0”“绿色”标签时:

在将流量发送到新修订版之前,您可以如下所示打开并测试新修订版:

上面的URL是:

https://green---editor-4bdlubpdxq-an.a.run.app

然后点击 "️":

例如,您可以更改"green":

使用 GUI:

"blue"

您还可以添加 更多标签“黄色”:

您还可以删除标签:

但是如果删除标签,则无法打开和测试新版本:

此外,您还可以更改、添加和删除标签,方法是点击 “⋮”,然后点击 “管理修订 URLs(标签)":

最后,我发布了,如果你想了解更多关于标签的信息,请查看。