Облачные данные удаляют тире из параметров - PullRequest
1 голос
/ 19 июня 2019

Я пытаюсь запустить вложенный стек с корневым стеком, который создает несколько ресурсов, включая сегменты S3 и Cognito User Pool.Проблема:

  • Имя сегмента S3 не позволяет использовать заглавные буквы.
  • Имя пула идентификаторов Cognito не допускает тире -.

Я хочу присвоить моим ресурсам одноименное / похожее имя ${AWS::StackName}-then-some-string, чтобы они распознавались как части одного приложения.

Есть ли способ удалить дефисы из параметров внутри облачной информации?Я знаю, что могу использовать Fn::Split, чтобы разделить строку с помощью -, затем использовать Fn::Select, чтобы выбрать определенные элементы, а затем Fn::Join, но это будет работать только для имени стека с определенным количеством тире -.

Я не могу найти нигде ресурса о том, как изменить - на пустую строку или что-то еще, используя какую-то функцию или регулярное выражение.

1 Ответ

2 голосов
/ 19 июня 2019

Вы почти на месте - используйте Fn::Split и Fn::Join, выбор не требуется.

SomeKey:
  Fn::Join:
  - ''
  - Fn::Split:
    - '-'
    - !Ref YourParam

Split возвращает массив. Join принимает строку соединения и массив элементов для объединения. Так что просто разбейте дефис / тире, затем соедините части вместе пустой строкой, тем самым удалив дефисы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...