Как избежать знака $ в бессерверной конфигурации yaml?

Я хочу избежать знака $ при использовании переменные этапа для шлюза API.

При попытке развернуть появляется следующая ошибка.

Недопустимый синтаксис ссылки на переменную для переменной stageVariables.capabilitySecurityUrl. Вы можете ссылаться только на env vars, options и файлы. Вы можете проверить наши документы для получения дополнительной информации.

Я пробовал следующие варианты, но не работает

1) Использование Uri без кавычек: https://${stageVariables.capabilitySecurityUrl}

2) Использование с кавычками Uri: "https://${stageVariables.capabilitySecurityUrl}"

3) Доступ к переменной из файла

./stageVariables.json
{
   "capabilitySecurityUrl":"https://${stageVariables.capabilitySecurityUrl}"
}

./serverless.yml
${file(./stageVariables.json):capabilitySecurityUrl}

Любая помощь?


person Jagdish Idhate    schedule 03.05.2017    source источник
comment
я понимаю, что это старо, но вы когда-нибудь понять это? такая же проблема   -  person CoryDorning    schedule 27.07.2020
comment
Если я правильно помню, я изменил синтаксис переменной. serverless.com/framework/docs/ provider/aws/guide/ Дайте нам знать, если это сработает.   -  person Jagdish Idhate    schedule 28.07.2020


Ответы (3)


Как сказал автор, у меня сработала настройка синтаксиса переменных:

  # notice the double quotes for yaml to ignore the escape characters!
  # Use this for allowing CloudFormation Pseudo-Parameters in your serverless.yml
  # e.g. ${stageVariables.my_var}. All other Serverless variables work as usual.
  variableSyntax: "\\${((?!stageVariables)[ ~:a-zA-Z0-9._@'\",\\-\\/\\(\\)]+?)}"

https://www.serverless.com/framework/docs/providers/aws/guide/variables/#using-custom-variable-syntax

person Xavier Garnier    schedule 23.02.2021


Экранирование переменных теперь изначально поддерживается в Serverless.

https://github.com/serverless/serverless/issues/3565

Закрытие, так как экранирование поддерживается новым преобразователем, например, ${self:} будет воспринято буквально

person Mohammed Noureldin    schedule 21.06.2021