2015-10-15 20 views
2

我有一个在Google App Engine中运行的应用程序。我应该如何指定应用程序ID?

起初,该应用可能会使用运行:

dev_appserver.py app.yaml 

app.yaml包含这将被用来检索使用google.appengine.api.app_identity.get_application_id()项目ID字段application

后来去除dev_appserver.py命令和应用程序可以使用以下运行:

gcloud preview app run app.yaml 

运行,这导致进入一个警告,指定在app.yamlapplication已经过时了。

现在app run已弃用,此举有利于目前恢复的dev_appserver.py。这是否意味着我应该恢复app.yaml中的application字段?

如果我运行gcloud config list它仍然显示正确的项目ID,但如果未设置application,则调用google.appengine.api.app_identity.get_application_id()返回None

+0

*调用google.appengine.api.app_identity.get_application_id()返回None *是否指定app.yaml中的'application'?如果我没有指定它,它会返回'None',但如果我这样做会返回名称(hi btw) –

+0

我更新了问题以回答您的评论 –

+0

您可以用'dev_appserver.py'指定'-A ' - 这有帮助吗?尽管如此,我们欢迎来自Google的推荐做法的澄清。所有对开发工具的更改都使这个*非常令人困惑('appcfg','dev_appserver','gcloud','mvn:appengine','mvn:gcloud' ...) – tx802

回答

2

.yaml配置文件的application属性很好的支持,实际上它是 存在于Modules documentation所有模块的配置文件的例子。

使用application属性指定应用程序名称的可能性要小于对某些/所有相关实用程序使用其他强制-A <APP_ID命令行参数的错误。

尝试上传的模块配置文件与application场注释掉显示:

appcfg.py: error: Expected -A app_id when application property in file main.yaml is not set. 

这我理解为暗示,在一个模块的.yaml文件中使用application属性将是缺省的/首选的方法。

FWIW,该application属性也适用于其他配置文件 - 我遇到了一些麻烦,当我说我的多模块应用,通过将application属性的dispatch.yaml文件来解决由dispatch.yaml路由。我不记得具体的细节,tho。

+0

我知道这是可能的和方便的在'app.yaml'中指定'application',但我希望看到关于这个的官方声明不推荐。另外感谢您说'应用程序'也适用于其他配置文件。我不知道这一点,并发现这非常有用。 –

+0

此时,'gcloud预览应用程序'仍然是测试版:https://cloud.google.com/sdk/gcloud-app#Deploying_app。弃用邮件可能只是一个疏忽。我不会太担心,尤其是因为建立/发布的GAE工具('dev_appserver.py','appcfg.py')没有提及任何这样的弃用。 –

相关问题