Меня смущает то, как AWS CloudFormation обрабатывает логические значения и строки логических значений.
Например, 'true'
и true
(или 'false'
и false
) логически эквивалентны в отношении CloudFormation? Я вижу примеры обоих случаев в их шаблонах Quick Start, которые наводят меня на мысль, что это так (хотя я так и не нашел документацию по этому поводу).
Например, в своем шаблоне quickstart-compatibility-common / templates / vpc-production.template они определяют переменную pSupportsNatGateway
типа "String" (хотя ее значение по умолчанию равно значение литерал , true
):
Parameters:
...
pSupportsNatGateway:
Description: Specifies whether this region supports NAT Gateway (this value is
determined by the main stack if it is invoked from there)
Type: String
Default: true
Затем, в состоянии позже в шаблоне, этот параметр (предположительно, String) сравнивается со значением литерал , true
.
Conditions:
...
cSupportsNatGateway:
!Equals
- true
- !Ref pSupportsNatGateway
Мой вопрос: как CloudFormation сравнивает литеральные значения и строки этих значений? Где это определено в документации AWS?