使用 If 条件在 dynamodb 提供中提供两个 GSI NonKeyAttributes 的云形成模板

问题描述

我想根据参数类型使用 if 条件为 dynamodb GSI Non keyattributes 提供两个值。以下是我尝试过但没有奏效的内容。我想根据 if 条件添加两个属性(att1、att2)

Parameters:  
Apptype:  
string  
Conditions:  
  CIsFinanacial:  
    !Equals [ !Ref Apptype,'financial' ]

Projection:   
 NonKeyAttributes:   
    !If CIsFinanacial [!Join [","["att1","att2"],!Ref AWS::Novalue]

上述 if 条件结果为字符串 (att1,att2) 但我希望它们提供为字符串列表。现在作为一个工作,我写了两个条件和两个 if 条件。但是有没有办法在一个 if 条件下配置它们。

对不起,写得不好。

解决方法

我认为以下表格应该有效(您在 NoValue 中也有拼写错误):

Projection:   
 NonKeyAttributes:   
    !If CIsFinanacial [["att1","att2"],!Ref AWS::NoValue]

如果不是,那么你可以更明确:

Projection:   
 NonKeyAttributes:   
    !If 
      - CIsFinanacial 
      - - "att1"
        - "att2"
      - !Ref AWS::NoValue