Google应用引擎版本号是什么?

35

App Engine版本号是如何工作的?它们只能是整数吗?我可以使用浮点数吗?可以重用旧版本号吗?


根据错误信息,它必须匹配表达式'^(?:^(?!-)[a-z\d-]{0,62}[a-z\d]$)$'。如果我正确地阅读了正则表达式,那么它意味着它可以包含小写字母、数字和连字符,长度为1到63个字符,并且不能以连字符开头。因此,您不能使用浮点数如1.1,但是您可以使用1a、1b...或1-1、1-2...。而且您可以重复使用旧版本号,这只是意味着您将覆盖该旧版本而不是覆盖最新版本。 - ShreevatsaR
3个回答

48

从官方文档中得知:

http://code.google.com/appengine/docs/python/config/appconfig.html#Required_Elements

应用程序代码的版本说明。App Engine为每个使用的版本保留应用程序的副本。管理员可以使用管理控制台更改应用程序的默认主要版本,并且可以在使其成为默认版本之前测试非默认版本。版本说明可以包含字母、数字和连字符。

应用程序的每个版本都保留有自己的app.yaml文件副本。上传应用程序时,被上传的app.yaml文件中提到的版本是通过上传创建或替换的版本。


@Henrik P. Hessel:你的回答仍然有一定的价值。至少在整数前缀的情况下,对于自己的管理来说,排序会变得更加容易 :) - Wolph
我在GAE上从未使用过除整数以外的任何东西。使用A、B、C等(甚至字符串)只是感觉不自然。 - Henrik P. Hessel
2
请注意,如果使用字母,它们必须是小写的。例如,大写字母“X”会导致以下错误消息:“无法将值“X”分配给属性“version”: 版本的值“X”与表达式“^(?:^(?!-)[a-z\d-]{0,62}[a-z\d])$”不匹配”。 - ocarlsen
@Wolph 当我创建一个新版本(2)并部署它时,我可以看到它上面的活动。然而,即使我手动关闭了所有版本1实例,我仍然可以看到版本1(默认)上的活动。 - MobileMon
只要旧版本是默认设置,它就会自动重新启动。如果将新版本设置为默认,它最终应该会停止运行。 - Wolph

7
为了访问除默认版本以外的应用程序版本,请在您的应用程序网址前添加#。,如此处所述:https://dev59.com/Ll7Va4cB1Zd3GeqPJWik#8549546。这对于在发布之前测试新版本非常有用。

如果应用程序的版本是2,您的应用程序URL是appname.appspot.com, 那么URL 2.appname.appspot.com 将使您访问您的应用程序的版本2。


3
请注意,谷歌已更改版本化URL的工作方式。您应该改用2-dot-appname.appspot.com,否则会收到安全警告。 - user2213590
似乎即使您删除了应用程序的版本1,它也不会将默认URL分配给版本2。 - Soundararajan

4
您可以在推出新版本时将其递增。请参考以下内容。
当您构建现有应用程序的新主要版本并在App Engine上运行时,您可以将新版本上传为新版本。旧版本将继续为用户提供服务,直到您切换到新版本。您可以在旧版本仍在运行时在App Engine上测试新版本。
编辑:没有删除我的答案,因为有一些很好的评论。

1
这是不正确的。你可以在版本中使用字母、数字和连字符,不需要整数。 - Wolph
1
对于我在SVN中拥有的GAE应用程序,我使用存储库修订号。如果我使用git,我想我会使用校验和,这种情况下,我会使用您建议的前缀,每次上传发布时递增的整数。 - Steve Jessop
即使推出了一个新版本并手动关闭了所有旧实例,但由于某种原因,应用引擎仍在重新创建旧版本。 - MobileMon

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接