在 aws cloudformation 模板中的 If 条件内使用 importValue

Nav*_*ngh 4 yaml amazon-web-services aws-cloudformation

我试图找到一种在 If 函数内使用 ImportValue 的方法,但找不到正确的语法。任何帮助表示赞赏。

在我正在尝试的代码下面:

SomeTaskdefinition:
  Type: AWS::ECS::TaskDefinition
  Properties:
    Family: 'FamilyName'
    ContainerDefinitions:
    - Name: ContainerName
      Image: 'imagename:net/v2/'
      Environment:
      - Name: ENV_VARIABLE_1
        Value:
          Fn::If:
            Fn::Equals:
              Fn::ImportValue:
                !Sub "${ImportStackname}-ECSCluster"
              ''
            'notpresent'
            'present'
Run Code Online (Sandbox Code Playgroud)

lap*_*nis 6

我在这里遇到类似的问题..我的想法是要么能够指定DatabaseHost为参数,如果留空 - 值应该从DatabaseStack导出中获取。这是我的示例代码 - 它使用!ImportValue内部!If函数。您将明白这个想法(而不是仅构造值 - 构造整个名称值列表对象)

Conditions:
  DatabaseHostPresent: !Not [ !Equals [ !Ref DatabaseHost, ""]]

Resources:
 ...
       ContainerDefinitions:
        - Name: !Sub ${ApplicationName}-web-${EnvironmentName}
          Environment:
            - !If
              - DatabaseHostPresent
              - Name: DB_HOST
                Value: !Ref DatabaseHost
              - Name: DB_HOST
                Value: !ImportValue
                  Fn::Sub: ${DatabaseStack}-EndpointAddress
Run Code Online (Sandbox Code Playgroud)