相关疑难解决方法(0)

我是否需要YAML中的字符串引号?

我正在尝试编写一个YAML字典,用于Rails项目的国际化.我有点困惑,因为在一些文件中,我看到双引号中的字符串,而有些没有.需要考虑以下几点:

  • 示例1 - 所有字符串都使用双引号;
  • 例2 - 没有字符串(除了最后两个)使用引号;
  • YAML菜谱说:双引号引起的字符串允许您使用escapings代表ASCII和Unicode字符.这是否意味着我只有在想要逃避某些字符时才需要使用双引号?如果是的话 - 为什么他们在第一个例子中到处使用双引号 - 只是为了统一/风格的原因?
  • 示例2的最后两行使用!- 非特定标记,而第一个示例的最后两行不使用 - 它们都有效.

我的问题是:在YAML中使用不同类型的引号有哪些规则?

可以这么说:

  • 一般来说,你不需要引号;
  • 如果你想转义字符使用双引号;
  • 使用!单引号,当...?!?

syntax quotes yaml

349
推荐指数
4
解决办法
14万
查看次数

如何在YAML字符串中转义冒号和其他特殊字符?

我有以下YAML片段:

description: |
  "API for bean consuming applications.
  Examples: painted pony, lima bean"
Run Code Online (Sandbox Code Playgroud)

:尽管有引号,但Swagger编辑器将冒号()解释为特殊字符.

根据这个问题的公认答案,结肠不应该被视为特殊性质.

这是Swagger的错误还是在引用的文本文字中使用冒号所需的转义序列?

我尝试使用YAML规范找到它但放弃了.

我如何阅读该规范来回答这个问题?

YAML中的单引号(')和双引号(")之间有区别吗?

pipe(|)或大于(>)结构是否仅影响换行处理或特殊字符的处理?

yaml escaping swagger

31
推荐指数
3
解决办法
6万
查看次数

逃离YAML中的冒号

有谁知道如何逃避YAML的冒号?我的yml中的键是带端口号的域,但yml文件不能使用此设置:

###BEGIN
production:
### THIS IS THE ONE I'm HAVING TROUBLE WITH ###
8.11.32.120:8000: GoogleMapsKeyforThisDomain
exampledomain.com: GoogleMapsAPIKeyforThatDomain

development:
 GoogleMapsAPIKeyforDevelopmentDomain
###END
Run Code Online (Sandbox Code Playgroud)

我正在使用名为YM4R的谷歌地图插件,该插件使用.yml文件来选择不同的Google Maps API密钥,具体取决于我的应用托管位置...

所以,我正在努力8.11.32.120:8000 the key.知道怎么做吗?(如果你关心的话,它在gmaps_api_key.yml文件中)

yaml escaping delimiter

22
推荐指数
2
解决办法
1万
查看次数

如何在Travis-CI配置文件(YAML)中正确使用curl?

好.这慢慢让我发疯.我在Travis上为我的一个项目设置了CI.我正在运行一些JUnit测试,我想将测试结果上传到我自己的服务器,因此浏览它们要容易得多.

基本上,我想做的只是称之为:

curl -H 'Authorization: Token someToken' -X POST http://my.server.com -F filedata=@file.txt
Run Code Online (Sandbox Code Playgroud)

所以这就是我想在.travis.yml文件中做的事情.

after_script:
 - curl -H 'Authorization: Token someToken' -X POST http://my.server.com -F filedata=@file.txt
Run Code Online (Sandbox Code Playgroud)

问题是,对于上面的行我得到一个如下错误:

$ {:"curl -H '\"Authorization"=>"Token someToken\"' -X POST http://my.server.com -F filedata=@file.txt"}
/home/travis/build.sh: line 45: Token someToken"' -X POST http://my.server.com -F filedata=@file.txt}: No such file or directory
Run Code Online (Sandbox Code Playgroud)

我已经了解到,在YAML冒号代表了一对键值,我发现可以使用引号来逃避冒号.

嗯 - 这是我被卡住的地方.我尝试以多种不同的方式应用这些引用,但不知怎的,每次我再次得到相同的错误.

例如:

curl -H '"Authorization: Token someToken"'
curl -H "\"Authorization: Token someToken\""
curl -H "'Authorization: Token someToken'"
curl -H '"Authorization": Token someToken' …
Run Code Online (Sandbox Code Playgroud)

curl yaml travis-ci

13
推荐指数
2
解决办法
5808
查看次数

使用“:”的脚本命令导致 .gitlab-ci.yml 执行错误

在我的.gitlab-ci.yml文件下面:

image: docker:latest

services:
    - docker:dind

stages:
    - deploy_dev_env

Deploy DEV Environment:

    stage: deploy_dev_env

    script:

        - curl -v -H "Content-Type: multipart/form-data" -X PUT -F uploadInput=@schema/schema.xml -F overwrite=true -F xmlaEnabledFlag=true -F parameters="DataSource=outputDS" -F parameters="EnableXmla=true" -u $PENTAHO_DEPLOY_USER:$PENTAHO_DEPLOY_PASSWORD http://$PENTAHO_HOST/pentaho/plugin/data-access/api/datasource/analysis/catalog/sca
Run Code Online (Sandbox Code Playgroud)

这个非常简单的脚本会导致错误,因为这部分中的冒号(:) "Content-Type: multipart/form-data"

在脚本中运行 CI Lint 我得到以下信息:

Status: syntax is incorrect

jobs:deploy dev environment:script config should be a string or an array containing strings and arrays of strings
Run Code Online (Sandbox Code Playgroud)

如果我替换"Content-Type: multipart/form-data""Content-Type multipart/form-data"(删除了“:”),我会得到我的 .gitlab-ci.yml 文件的正确语法。

这是一个错误还是我应该以不同的方式重写我的 curl 命令?

gitlab gitlab-ci

6
推荐指数
1
解决办法
1518
查看次数

EC2 Image Builder 的 yaml 中的多行 bash 脚本

我正在尝试创建一个自定义组件文档。虽然我使用各种 yaml linter 测试了 yaml 文件,但 EC2 Image builder 抱怨以下错误

Failed to create component. Fix the error(s) and try again:
The value supplied for parameter 'data' is not valid. Parsing step 'ConfigureMySQL' in phase 'build' failed. Error: line 4: cannot unmarshal map into string.
Run Code Online (Sandbox Code Playgroud)

我无法弄清楚我的 yaml 文件出了什么问题

name: MyJavaAppTestDocument
description: This is JavaApp Document
schemaVersion: 1.0

phases:
  - name: build
    steps:
      - name: InstallSoftware
        action: ExecuteBash
        inputs:
          commands:
            - sudo yum update -y
            - sudo yum install -y java-1.8.0
            - …
Run Code Online (Sandbox Code Playgroud)

yaml amazon-ec2

5
推荐指数
1
解决办法
4099
查看次数

忽略 Spring Boot 管理应用程序的 yaml 配置中指定的斜杠字符

我想app.kubernetes.io/part-of: myapp在我的 Spring Boot 管理应用程序中配置 kubernetes 发现的服务标签。

app.kubernetes.io/part-of是一个推荐的标签,所以我认为应该有一种方法来配置它以进行服务发现。

spring:
    cloud:
        kubernetes:
            discovery:
                namespace: myspace
                all-namespaces: true
                service-labels:
                    'app.kubernetes.io/part-of': myapp
Run Code Online (Sandbox Code Playgroud)

不幸的是,我在执行器中注意到,yaml 键中的所有特殊字符都被删除了configprops

我的问题:

  • 如何在 Spring Boot 的 yaml 键中指定斜杠?
  • 是否有替代解决方案来指定我的服务标签?

提示:

  • 其他一般 yaml 问题(建议转义或引用字符)在这里没有帮助。或者我错过了什么。

java spring-boot spring-boot-admin

4
推荐指数
1
解决办法
1427
查看次数

yaml 解析时出错。预期为 <块结束>,但发现为 <标量>

我正在尝试使用 got-swag (npm 包)测试 swagger api

当我尝试使用 json 模式验证 json 响应时,当单独的 yaml 文件合并为一个 yaml 和 json 文件时,我收到一个 parseError 。起源是 -validate() 行。validate() 源自 got-swag 包,但它在其底层jsonschema.validate( data, schema ); 中失败;依赖性

 x-tests:
        - description: Should return array of ferries
          steps:
            - get('/api/get/link/ferries')
            - equal(res.statusCode, 200)
            - ok(res.json.length > 0)
            - validate(res.json,  $ref: '#/definitions/ferry')
Run Code Online (Sandbox Code Playgroud)

这是产生的错误:

           throw new exports.ParserError('while parsing a block mapping', this.marks.slice(-1)[0], "expected <block end>, but found " + token.id, token.start_mark);
        ^
while parsing a block mapping
  on line 29, column …
Run Code Online (Sandbox Code Playgroud)

javascript parsing json yaml swagger

3
推荐指数
1
解决办法
3万
查看次数

SaltStack cmd.run与卷曲和json体

我有一个简单的任务,我坚持写盐状态.我需要使用curl和json body调用REST端点.这是

curl localhost/endpoint -d '{"some" : "data"}'

我的想法是简单地使用它并通过使用将其置于盐状态cmd.run.不行.到目前为止我有这个:

{%- set data = {'some': 'data'} %}

Use echo instead of curl:
  cmd.run:
    - name:  echo '{{ data|json }}'
Run Code Online (Sandbox Code Playgroud)

这给了我

failed: Unknown yaml render error; line 5

Use echo instead of curl:
  cmd.run:
    - name:  echo '{"some": "data"}'    <======================
Run Code Online (Sandbox Code Playgroud)

我有Salt版本2014.7.1

jinja2 salt-stack

2
推荐指数
1
解决办法
2915
查看次数