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
EXPERTE
gefragt vor 6 Monaten18 Aufrufe
1 Antwort
0

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

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

ContainerDefinitions:
  EntryPoint: !If
    - EntryPointProvided
    - !Ref EntryPoint
    - !Ref 'AWS::NoValue'
profile picture
EXPERTE
beantwortet vor 6 Monaten

Du bist nicht angemeldet. Anmelden um eine Antwort zu veröffentlichen.

Eine gute Antwort beantwortet die Frage klar, gibt konstruktives Feedback und fördert die berufliche Weiterentwicklung des Fragenstellers.

Richtlinien für die Beantwortung von Fragen