CloudFormation Transform :: Включить параметры - PullRequest
0 голосов
/ 03 января 2019

Я хочу использовать AWS макрос Transform :: Include с некоторыми динамическими параметрами для моего файла.

Resources:
  'Fn::Transform':
    Name: 'AWS::Include'
    Parameters:
      TestMacroVariable: 
        Default: 2
        Type: Number
      Location: !Sub "s3://${InstallBucketName}/test.yaml"

test.yaml:

DataAutoScalingGroup:
  Type: AWS::AutoScaling::AutoScalingGroup
  Properties:
    LaunchConfigurationName: 
      Ref: DataLaunchConfiguration
    MinSize: '1'
    MaxSize: '100'
    DesiredCapacity: 
      Ref: TestMacroVariable
...

После звонка: aws cloudformation describe-stack-events --stack-name $stack

Я получаю:

"ResourceStatusReason": "Значение параметра TestMacroVariable при преобразовании Включить должно преобразовываться в строку, число, логическое значение или список любых из этих .. Откат запрошен пользователем. "


Когда я пытаюсь сделать это так:

Resources:
  'Fn::Transform':
    Name: 'AWS::Include'
    Parameters:
      TestMacroVariable: 2
      Location: !Sub "s3://${InstallBucketName}/test.yaml"

Я получаю:

"ResourceStatusReason": "Ошибка формата шаблона: неразрешенный ресурс [TestMacroVariable] в блоке ресурсов шаблон "

Ошибка та же, когда я не предоставляю TestMacroVariable вообще.


Пробовал с разными типами: String, Number, Boolean, List - ни один из них не работает.

Ответы [ 2 ]

0 голосов
/ 14 марта 2019

В качестве альтернативы вы можете передать весь путь S3 в качестве параметра и ссылаться на него в Location:

Parameters:
  MyS3Path:
    Type: String
    Default: 's3://my-cf-templates/my-include.yaml'  

...

'Fn::Transform':
  Name: 'AWS::Include'
  Parameters:
    Location: !Ref MyS3Path

0 голосов
/ 03 января 2019

Как я знаю, у вас не может быть ничего, кроме Местоположение , введите в разделе Parameters AWS::Include. Проверьте здесь AWS DOC

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