web-dev-qa-db-ja.com

yamlファイルの解析エラー:値のマッピングはここでは許可されていません

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を使用しています。

57
andandandand

変化する

application:climate-change

application: climate-change

Yamlでは、コロンの後のスペースは必須です。 ( http://www.yaml.org/spec/1.2/spec.html#id275996 を参照)

80
Dave W. Smith

別の原因は、間違ったインデントです。これは、間違ったオブジェクトを作成しようとすることを意味します。 Kubernetes Ingressの定義の1つを修正しました。

間違った

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

正しい

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

または、間隔が問題でない場合は、ファイル名ではなく親ディレクトリ名が必要になる場合があります。

$ 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

Versus

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
5
John Mee

たぶんこれは他の誰かに役立つかもしれませんが、マッピングのRHSに次のような引用符を含まないコロンが含まれているときにこのエラーを見ました:

someKey:もう1つのキー:今日の変更:もっとうまくいく

あるべき

someKey:別のキー: "今日の変更:より多くの作業を行う"

1
Joe