谷歌应用服务器中的 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 添加到属性应用程序”正则表达式问题?的主要内容,如果未能解决你的问题,请参考以下文章
GCP kms加密env var并通过cloudbuild.yaml将加密密钥传递给谷歌应用引擎
在 yaml 文件中为谷歌应用引擎设置 url(找不到页面)问题