谷歌应用服务器中的 yaml 异常“无法将 testProject 添加到属性应用程序”正则表达式问题?

Posted

技术标签:

【中文标题】谷歌应用服务器中的 yaml 异常“无法将 testProject 添加到属性应用程序”正则表达式问题?【英文标题】:yaml exception in google app server "unable to add testProject to attribute application" regex issue? 【发布时间】:2017-01-08 20:28:04 【问题描述】:

使用谷歌应用引擎的第一天。

我的 yaml 文件包括以下内容:

application: testProgram
version: 1
runtime: python
api_version: 1

handlers:
- url: /.*
  script: main.py

libraries:
- name: webapp2
  version: "2.5.2"

我的 python 文件包含以下内容(仅供参考):

import webapp2


class MainPage(webapp2.RequestHandler):
    def get(self):
        self.reponse.headers['Content-Type'] = 'text/plain'
        self.response.out.write("Hurray for cake!")


app = webapp2.WSGIApplication([('/', MainPage)],debug=True)

我得到的错误如下:

ile "/home/rickus/google_appengine/google/appengine/api/yaml_listener.py", line 178, in _HandleEvents
    raise yaml_errors.EventError(e, event_object)
google.appengine.api.yaml_errors.EventError: Unable to assign value 'testProgram' to attribute 'application':
Value 'testProgram' for application does not match expression '^(?:(?:[a-z\d\-]1,100\~)?(?:(?!\-)[a-z\d\-\.]1,100:)?(?!-)[a-z\d\-]0,99[a-z\d])$'
  in "testProgram/app.yaml", line 1, column 14

所以它在抱怨我的文件命名?这不可能吧?我有什么想法吗?

【问题讨论】:

当然也可以是抱怨你的程序名,它不能包含大写字符(可能是为了防止这些不可读的驼峰式单词) @Anthon 当然可以,我只是大吃一惊。我什至没有意识到那是我驼峰的问题,我什至没有去想它。跛脚。 不知道有没有额外的解释,但是由于处理你的YAML文件的软件是Python的(从错误信息的格式中扣除),看来程序员应用了“规则” " 来自 Python(即使用 under_scored_multi_word_names)。当然,您的应用程序所在的底层文件系统可能不区分大小写... @Anthon 使用小写字母的原因是您可以将代码推送到 .appspot.com 并在 google 的服务器上运行。由于 url 不区分大小写,因此只允许 a-z 由 '-'s 分隔是非常有意义的 @shravster 感谢您的解释。我假设您的意思是写 域名 不区分大小写,URL 肯定可以区分大小写。 【参考方案1】:

这很可能是在抱怨您的 applicationId,查看正则表达式,它只接受小写字符。

将您的 applicationId 更改为“testprogram”或​​“test-program”

【讨论】:

呃,我花了这么多时间做这么愚蠢的事情。谢谢你。拥抱和亲吻。我会接受并赞成你的回答

以上是关于谷歌应用服务器中的 yaml 异常“无法将 testProject 添加到属性应用程序”正则表达式问题?的主要内容,如果未能解决你的问题,请参考以下文章

谷歌应用引擎 |蟒蛇 |应用程序.YAML

GCP kms加密env var并通过cloudbuild.yaml将加密密钥传递给谷歌应用引擎

在 yaml 文件中为谷歌应用引擎设置 url(找不到页面)问题

将 YAML 文件中的列表传递给 python

“network: session_affinity:true” app.yaml 文件的属性没有反映在谷歌应用引擎中

运行 Liquibase springboot 应用程序时 master.yaml 异常