如何使用 gcloud 运行 创建修订 URL?

How to create Revision URL using gcloud run?

我最近注意到 Google 云 运行 网络 UI 中的测试版功能,允许您创建修订 URL(标签)。超级方便的功能!

我的问题:如何为修订创建标签以便我可以使用 gcloud 执行此操作?我还没有在文档中看到它的任何内容(可能是因为它是一个如此新鲜的功能)。

修订 URL 也被命名为“TAG”。使用更新命令标记最新版本。

gcloud beta run services update --tag=test --platform=managed --region=us-central1  go111

2022 年 4 月更新:

您可以使用 "gcloud" 为一个或多个修订版添加一个或多个标签。有两种方法可以做到。一种是创建修订时,一种是用于现有修订

<创建修订时>

现在,只有一个修订版“editor-v1-0-0”带有标签“blue”,如下所示:

然后,要在创建修订版时添加标签,使用下面的标志:

--tag <tag>

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

--tag green

然后,包括上面的标志,我 运行 参考 Shipping the public editor service in Securing Cloud Run services tutorial 的完整命令如下所示,以创建带有 "editor:2.0.0" image:

*创建修订时,只能添加一个标签。

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 \
    --no-traffic \
    --tag green // Here 

现在,带有标签“green”的修订版“editor-v2-0-0”创建如下:

<对于现有修订>

有两个命令 "gcloud 运行 services update""gcloud 运行 services update-traffic"。 =273=] 添加一个或多个标签。实际上,"gcloud 运行 services update-traffic" 可以做更多关于 Tag:

的事情

<"gcloud run services update">

首先,我将向您展示如何使用 "gcloud 运行 服务更新"" 添加一个或多个标签gcloud 运行 services update,您可以在一条命令中仅添加一个标签到最新版本

现在,最新版本“editor-v2-0-0” 无标签:

然后,运行带有标签“green”的命令,如下所示:

gcloud run services update editor --tag green

现在,标签“green”被添加到最新版本“editor-v2-0-0”,如下所示:

然后,如果您 运行 下面带有 标签“orange” 的命令:

gcloud run services update editor --tag orange

现在,标签“orange”被添加到最新版本“editor-v2-0-0”而不更新"green" to "orange" 如下图:

此外,如果将已用于其他修订的标签添加到修订中,则该标签将从其他修订中删除,然后添加到修订中。

因此,如果 运行使用 标签“blue” 命令,如下所示,标签“blue” 修订版“editor-v1-0-0” 中删除,然后添加到 修订版“editor-v2-0-0”

gcloud run services update editor --tag blue

<"gcloud run services update-traffic">

接下来,我将向您展示如何使用 "gcloud 运行 服务 update-traffic".

添加一个或多个标签

现在,有两个修订版本“editor-v2-0-0”没有标签” editor-v1-0-0" 带有 标签“blue”:

那么,下面的这个flag可以给一个或多个revisions添加一个或多个tag但是下面的这个flag不能更新一个或多个的一个或多个tag revisions 即使标志名称是 "--update-tags" 所以下面的这个标志 可以只添加一个或多个标签到一个或更多修订:

--update-tags <tag>=<revision>,…

现在,我将标签“green”添加到修订版“editor-v2-0-0”

--update-tags green=editor-v2-0-0

然后,包括上面的标志,我 运行 完整的命令如下所示:

gcloud run services update-traffic editor --update-tags green=editor-v2-0-0

现在,标签“green”被添加到修订版“editor-v2-0-0”,如下所示:

并且,下面的这个命令可以添加两个标签“orange”和“yellow”版本“editor-v2-0-0” 一个标签“black” 修订版“editor-v1-0-0”:

gcloud run services update-traffic editor --update-tags \
orange=editor-v2-0-0,yellow=editor-v2-0-0,black=editor-v1-0-0

现在,两个标签“orange”和“yellow”被添加到修订版“editor-v2-0-0” 一个标签“black”被添加到修订版“editor-v1-0-0”,如下所示:

*注意,如果值列表中的逗号前后有一个或多个空字符串,则会出错。

因此,如果空字符串位于逗号之前:

gcloud run services update-traffic editor --update-tags \
orange=editor-v2-0-0 ,yellow=editor-v2-0-0,black=editor-v1-0-0
                 // An empty string before a comma

然后,出现错误:

ERROR: (gcloud.run.services.update-traffic) unrecognized arguments: ,yellow=editor-v2-0-0,black=editor-v1-0-0

如果逗号后面是空字符串:

gcloud run services update-traffic editor --update-tags \
orange=editor-v2-0-0, yellow=editor-v2-0-0,black=editor-v1-0-0
           // An empty string after a comma

然后,出现错误:

ERROR: (gcloud.run.services.update-traffic) unrecognized arguments: yellow=editor-v2-0-0,black=editor-v1-0-0

因此,不要在值列表中的逗号前后放置 一个或多个空字符串:

gcloud run services update-traffic editor --update-tags \
orange=editor-v2-0-0,yellow=editor-v2-0-0,black=editor-v1-0-0
                 // No empty strings 
                 // before or after a comma

接下来,下面的这个标志可以更新一个或多个版本的一个或多个标签

--set-tags <tag>=<revision>,…

现在,有两个修订版“editor-v2-0-0”三个标签“绿色”、“橙色”和“黄色” =273=] 和 "editor-v1-0-0" 带有 两个标签“blue”和“black”:

然后,我将更新修订版“editor-v2-0-0”的三个标签“绿色”、“橙色”和“黄色” " 两个标签“金色”和“银色” 两个标签“蓝色”和“黑色” of 修订“editor-v1-0-0”一个标签“white”:

--set-tags gold=editor-v2-0-0,silver=editor-v2-0-0,white=editor-v1-0-0

然后,包括上面的标志,我 运行 完整的命令如下所示:

gcloud run services update-traffic editor --set-tags \
gold=editor-v2-0-0,silver=editor-v2-0-0,white=editor-v1-0-0

现在,版本“editor-v2-0-0”[=273]的三个标签“绿色”、“橙色”和“黄色” =]更新为两个标签“金色”和“银色”两个标签“蓝色”和“黑色” 修订版“editor-v1-0-0”更新为一个标签“white”,如下所示:

然后,下面的这个标志可以从一个或多个修订中删除一个或多个标签:

--remove-tags <tag>,…

现在,有两个修订版“editor-v2-0-0”三个标签“绿色”、“橙色”和“黄色” =273=] 和 "editor-v1-0-0" 带有 两个标签“blue”和“black”:

然后,我将从修订版“editor-v2-0-0”[=273]中删除两个标签“绿色”和“黄色” =] 和 一个标签“blue” 来自 修订版“editor-v1-0-0”:

--remove-tags green,yellow,blue

然后,包括上面的标志,我 运行 完整的命令如下所示:

gcloud run services update-traffic editor --remove-tags green,yellow,blue

现在,修订版“editor-v2-0-0”中删除了“绿色”和“黄色”两个标签 一个标签“blue” 已从 修订版“editor-v1-0-0” 中删除,如下所示:

然后,下方的这个标志可以从所有修订中删除所有标签

--clear-tags

现在,有两个修订版“editor-v2-0-0”三个标签“绿色”、“橙色”和“黄色” =273=] 和 "editor-v1-0-0" 带有 两个标签“blue”和“black”:

然后,包括上面的标志,我 运行 如下所示的完整命令从 所有修订 [=] 中删除 所有标签 273=]:

gcloud run services update-traffic editor --clear-tags

现在,所有标签都从所有修订中删除,如下所示: