Как использовать переменные в именах сегментов AWS Cloudformation - PullRequest
0 голосов
/ 23 марта 2020

Я пытаюсь создать шаблон Cloudformation, который создает корзину S3. Я хочу настроить его так, чтобы корзина была названа с использованием одного из параметров, переданных в шаблон. Я могу заменить параметр в других местах шаблона, но создание корзины завершается неудачно, когда я пытаюсь вставить его здесь.

Resources:
  S3Bucket:
    Type: 'AWS::S3::Bucket'
    Properties:
      BucketName: !Sub '${STRING_PARAM}-example-bucketname'

Это дает Bad Request (Service: Amazon S3; Status Code: 400; Error Code: 400 Bad Request при создании стека облачной информации. Я пробовал жесткое кодирование в имени, которое сработало, поэтому я почти уверен, что это правильное имя корзины S3.

Per Создание S3 CloudFormation приводит к 400 ошибочным запросам со ссылкой (! Ref вместо ! Sub) к параметру / ресурсу непосредственно работает, но я думаю, что я должен быть в состоянии передать параметр здесь, как и везде.

1 Ответ

0 голосов
/ 24 марта 2020

Ваше значение для BucketName в порядке. Это правильный синтаксис для использования !Sub, и он должен работать.

Проблема состоит в том, что имена параметров должны быть буквенными цифрами c, поэтому STRING_PARAM недопустимо, поскольку в нем есть символ подчеркивания.

Обновите имя вашего параметра, чтобы оно было примерно таким, как StringParam, и оно должно пройти мимо сообщения об ошибке Parameter name STRING_PARAM is non alphanumeric..

...