Каждое значение DependsOn должно быть строкой - Как взорвать отображение для свойства DependsOn - PullRequest
0 голосов
/ 25 февраля 2020

Я использую макрос explode transform следующим образом.

  ServiceMap:
    Private:
      Prefix: Private
    Public:
      Prefix: Public

  Service:
    ExplodeMap: ServiceMap
    Type: AWS::ECS::Service
    DependsOn:
      - !Sub 'LoadBalancerRule${!Explode Prefix}'
    Properties:
      Cluster: !Ref "ECSCluster"
      ...
      TaskDefinition: !Ref TaskDefinition!Explode Prefix
      LoadBalancers:
        - ContainerName: !Sub '!Explode Prefix${ServiceName}'
          ContainerPort: !Ref "ContainerPort"
          TargetGroupArn: !Ref TargetGroup!Explode Prefix

  LoadBalancerRule:
    ExplodeMap: ServiceMap
    Type: AWS::ElasticLoadBalancingV2::ListenerRule
    Properties:
      Actions:
      ...
      ListenerArn: !Ref "LoadBalancerListener"
      Priority: !Ref "Priority"

Это кажется успешным, но для преобразования, указанного в свойстве DependsOn. Когда я создаю стек, я получаю следующую ошибку:

Template format error: Every DependsOn value must be a string.

Вопросы: - Я не знаю, как на самом деле просмотреть преобразованный шаблон - Почему это происходит? Согласно do c, ! Sub создает строку

Любые идеи, как т

1 Ответ

1 голос
/ 25 февраля 2020

Не совсем уверен, в чем разница между !Sub 'LoadBalancerRule${!Explode Prefix}' & - LoadBalancerRule!Explode Prefix, но это сработало

  Service:
    ExplodeMap: ServiceMap
    Type: AWS::ECS::Service
    DependsOn:
      - LoadBalancerRule!Explode Prefix
    Properties:
      Cluster: !Ref "ECSCluster"
      ...
      TaskDefinition: !Ref TaskDefinition!Explode Prefix
      LoadBalancers:
        - ContainerName: !Sub '!Explode Prefix${ServiceName}'
          ContainerPort: !Ref "ContainerPort"
          TargetGroupArn: !Ref TargetGroup!Explode Prefix
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...