CloudFormation ECS TaskDefinition:在YAML模板中,为EntryPoint的Parameter选择正确的类型/处理方式

0

【以下的问题经过翻译处理】 我想能够在YAML CloudFormation模板中为AWS :: ECS :: TaskDefinition-> ContainerDefinitions []的EntryPoint添加可选的“Parameter”。这有点棘手,因为ECS需要以逗号分隔的列表,例如“/ bin / bash,-c,echo hello”,但在CloudFormation模板中,它似乎是一个字符串数组。

在这种情况下,定义“EntryPoint”“Parameter”的最佳类型是什么?我目前正在尝试避免的错误是:

Resoure handler returned message: "Model validation failed (#/ContainerDefinitions/0/EntryPoint/0: expected type: String, found: JSONArray"

我当前将参数定义为:“CommaDelimitedList”:

EntryPoint:
Type:CommaDelimitedList
Description:“任务入口点(可选 - 映像默认为脚本/开始)”

...这将产生一个“JSONArray”,但是我认为我需要一个字符串数组,我没有从中获得:

ContainerDefinitions:
         EntryPoint:
             -!if
               - EntryPointProvided
               -!Ref EntryPoint
               -!Ref 'AWS :: NoValue'

在template和ECS所需的类型方面,最佳类型和最直接的处理方式是什么?还是JSONArray的当前修复效果很好

profile picture
专家
已提问 5 个月前13 查看次数
1 回答
0

【以下的回答经过翻译处理】 我相信你想尝试以下类似的操作,以避免看到的错误。这将把 If 函数的结果视为 EntryPoint 属性的输入,而不是在外部列表中的字符串列表。

请注意,If 函数前面的“-”已被移除。

ContainerDefinitions:
  EntryPoint: !If
    - EntryPointProvided
    - !Ref EntryPoint
    - !Ref 'AWS::NoValue'
profile picture
专家
已回答 5 个月前

您未登录。 登录 发布回答。

一个好的回答可以清楚地解答问题和提供建设性反馈,并能促进提问者的职业发展。

回答问题的准则