StackCreate ValidationError:条件标记只能在条件块中使用

时间:2019-11-15 23:13:33

标签: amazon-cloudformation amazon-ecs

我正在尝试应用我的cloudformation模板,但出现以下神秘错误:

  

botocore.exceptions.ClientError:发生错误(ValidationError)   调用CreateStack操作时:模板错误:条件   令牌只能在条件块中使用

堆栈跟踪为

  File "/Users/user/.env/lib/python3.7/site-packages/botocore/client.py", line 357, in _api_call
    return self._make_api_call(operation_name, kwargs)
  File "/Users/user/.env/lib/python3.7/site-packages/botocore/client.py", line 661, in _make_api_call
    raise error_class(parsed_response, operation_name)

代码看起来像

cf_client = session.client('cloudformation')
cf_client.create_stack(
        StackName=stack_name,
        TemplateBody=template_body,
        Parameters=aws_parameters,
        TimeoutInMinutes=10,
        OnFailure='DELETE',
        Tags=aws_tags,
        Capabilities=['CAPABILITY_IAM'],
    )

cloudformation模板很大,不适合在此处粘贴。它通过服务发现,应用程序网格,fargate等来站立应用程序。

他们指的是这个Condition是什么,什么地方不对?

1 个答案:

答案 0 :(得分:0)

该错误相当神秘且无济于事,但就我而言,这是我的ECS任务定义中的一个错字。

我的容器依赖于关系,我构造错了

      DependsOn:
      - ContainerName: envoy
      - Condition: HEALTHY

“依赖于”是地图列表,因此在-前面不应有Condition

这可以解决我的问题:

      DependsOn:
      - ContainerName: envoy
        Condition: HEALTHY