117

我想将应用上传到 Google App Engine:

我明白了

Error parsing yaml file:
mapping values are not allowed here
  in "/home/antonio/Desktop/ATI/climate-change/app.yaml", line 2, column 8 

跑步时

./appcfg.py update /home/antonio/Desktop/ATI/climate-change

使用此 app.yaml 文件:

application:climate-change
version: 1
runtime: python27
api_version: 1
threadsafe: true

handlers:
- url: /.*
  script: helloworld.app

第 2 行,第 8 列对应于版本行。这里有什么问题?顺便说一句,我在这里使用的是 Ubuntu 12.04。

4

9 回答 9

138

改变

application:climate-change

application: climate-change

如果你想要一个键值对,冒号后面的空格在 yaml 中是强制性的。(见http://www.yaml.org/spec/1.2/spec.html#id2759963

于 2012-06-10T19:41:37.090 回答
76

另一个原因是错误的缩进,这意味着试图创建错误的对象。我刚刚在 Kubernetes Ingress 定义中修复了一个:

错误的

- path: / 
    backend: 
      serviceName: <service_name> 
      servicePort: <port> 

正确的

- path: /
  backend:
    serviceName: <service_name>
    servicePort: <port>
于 2016-12-20T07:21:41.587 回答
6

或者,如果间距不是问题,它可能需要父目录名而不是文件名。

不是$ dev_appserver helloapp.py
但是$ dev_appserver hello/

例如:

Johns-Mac:hello john$ dev_appserver.py helloworld.py
Traceback (most recent call last):
  File "/usr/local/bin/dev_appserver.py", line 82, in <module>
    _run_file(__file__, globals())
...
  File "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/google/appengine/api/yaml_listener.py", line 212, in _GenerateEventParameters
    raise yaml_errors.EventListenerYAMLError(e)
google.appengine.api.yaml_errors.EventListenerYAMLError: mapping values are not allowed here
  in "helloworld.py", line 3, column 39

相对

Johns-Mac:hello john$ cd ..
Johns-Mac:fbm john$ dev_appserver.py hello/
INFO     2014-09-15 11:44:27,828 api_server.py:171] Starting API server at: http://localhost:61049
INFO     2014-09-15 11:44:27,831 dispatcher.py:183] Starting module "default" running at: http://localhost:8080
于 2014-09-15T12:01:38.850 回答
4

不正确:

people:
  empId: 123
  empName: John
    empDept: IT

正确的:

people:
  emp:
    id: 123
    name: John
    dept: IT
于 2020-04-01T18:58:07.547 回答
3

也许这会对其他人有所帮助,但是当映射的 RHS 包含冒号而没有括起来引号时,我已经看到了此错误,例如:

someKey:另一个关键:今天要做的改变:锻炼更多

应该

someKey:另一个关键:“今天要做出的改变:锻炼更多”

于 2016-08-06T19:49:19.787 回答
3

我在乔的回答中提到的类似情况下看到了这个错误:

description: Too high 5xx responses rate: {{ .Value }} > 0.05

我们在描述值中有一个冒号。因此,问题在于描述值周围缺少引号。可以通过添加引号来解决:

description: 'Too high 5xx responses rate: {{ .Value }} > 0.05'
于 2019-10-09T08:12:16.997 回答
0

我的问题是缺少一组引号;

Foo: bar 'baz'

应该

Foo: "bar 'baz'"
于 2020-01-28T22:57:41.087 回答
0

正如大多数人所提到的,yaml 文件中有几个问题,yaml 文件通常很难识别问题,

幸运的是,它可以使用yaml lint等工具轻松识别,并且您可能不需要社区的帮助。

安装它

npm install -g yaml-lint

这是您可以验证的方法

E:\githubRepos\prometheus-sql-exporter-usage>yamllint docker-compose.yaml
√ YAML Lint successful.
于 2021-03-13T13:33:34.413 回答
0
于 2022-01-28T02:31:20.600 回答