Импорт значения с использованием объединений в стеке Cloudformation - PullRequest
2 голосов
/ 30 апреля 2019

Я создал стек VPC, который экспортирует такие значения, как идентификатор VPC, частная и общедоступная группы подсетей.Я пытаюсь построить строку, используя сокращенные обозначения ImportValue, Join and Ref.Любая помощь приветствуется для того, чтобы заставить это выражение работать.

MyDBSubnetGroup:
    Type: AWS::RDS::DBSubnetGroup
    Properties:
      DBSubnetGroupDescription: Subnets available for the RDS DB Instance
      SubnetIds: !ImportValue !Join [ '-', [ !Ref VPCStackName, 'private-subnets' ]]
      Tags:
      - Key: Service
        Value: !Ref ResourceTag

Я получаю ошибку, которая очевидна:

An error occurred (ValidationError) when calling the CreateStack operation: Template format error: YAML not well-formed. (line 87, column 29)

Пробовал такие вещи, как:

MyDBSubnetGroup:
        Type: AWS::RDS::DBSubnetGroup
        Properties:
          DBSubnetGroupDescription: Subnets available for the RDS DB Instance
          SubnetIds: !ImportValue
            - Fn::Join
              - '-'
              - - !Ref VPCStackName
              - 'vpcid'
          Tags:
          - Key: Service
            Value: !Ref ResourceTag

Не повезло !!!

1 Ответ

1 голос
/ 30 апреля 2019

Из документации :

Аналогично, функция ImportValue не может включать функции Ref или GetAtt, которые зависят от ресурса.

и

Вы не можете использовать краткую форму !ImportValue, если она содержит !Sub.

(потому что это приводит к неверному YAML)

Если VPCStackName является параметром и вы экспортируете значения, разделенные запятыми, вы можете сделать следующее:

MyDBSubnetGroup:
    Type: AWS::RDS::DBSubnetGroup
    Properties:
      DBSubnetGroupDescription: Subnets available for the RDS DB Instance
      SubnetIds:
        Fn::Split: # Split to get a list of strings
          - ","
          - Fn::ImportValue: # Use full function name
              !Sub "${VPCStackName}-private-subnets" # Substitute parameter
      Tags:
      - Key: Service
        Value: !Ref ResourceTag
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...