Как избежать JSON в YAML - PullRequest
0 голосов
/ 15 мая 2018

Следующая команда работает в оболочке bash, но анализатор YAML (bitbucket-pipelines.yaml) сообщает о неверном синтаксисе

https://bitbucket -pipelines.atlassian.io / валидатор

- export TASK_VERSION=$(aws ecs register-task-definition --family MyTask --container-definitions "[{\"name\":\"MyContainer\",\"image\":\"1234567.dkr.ecr.us-west-1.amazonaws.com/ecs-repository:1.0.13\",\"cpu\":50,\"portMappings\": [{\"hostPort\": 80,\"containerPort\": 80,\"protocol\":\"tcp\"}],\"memory\":300}]" | jq --raw-output '.taskDefinition.revision')

Несмотря на то, что я избежал всех двойных кавычек, используя \ char, я думаю [и {сбрасываю это.

Есть идеи?

1 Ответ

0 голосов
/ 15 мая 2018

Я предполагаю, что рассматриваемая строка является частью большего, правильно структурированного файла bitbucket-pipelines.yaml.

Попробуйте поместить скрипт в скаляр блока .

- |
  export TASK_VERSION=$(aws ecs register-task-definition --family MyTask --container-definitions "[{\"name\":\"MyContainer\",\"image\":\"1234567.dkr.ecr.us-west-1.amazonaws.com/ecs-repository:1.0.13\",\"cpu\":50,\"portMappings\": [{\"hostPort\": 80,\"containerPort\": 80,\"protocol\":\"tcp\"}],\"memory\":300}]" | jq --raw-output '.taskDefinition.revision')
...