首页 > 解决方案 > 如何在预置期间获取 AWS CloudFormation 输出/调试语句?

问题描述

使用AWS Cloudformation时,我aws cloudformation create-stack因一些尚不清楚的原因而失败。对于这个问题,错误和解释不相关,但我认为我传递的参数--parameters在 CloudFormation 模板中未正确处理,或者在评估表达式或引用模板中的变量时可能存在错误。

无论如何,我真的希望能够在评估模板期间输出一些调试语句或表达式;堆栈的配置。将表达式输出到 CloudWatch Logs 或其他输出通道的 CloudFormation等效项是什么?logging.debug(some-expression)

CloudFormation Stacks 中的事件日志显示错误(在我的情况下),但不幸的是没有我需要修复错误的详细信息。它在执行/配置期间不显示变量或 CloudFormation 表达式的值,并且(据我所知)我无法创建将显示变量或表达式值的事件。对于预置任务,CloudWatch Logs 为空。并且aws cloudformation validate-template没有显示任何错误,因此 CloudFormation 模板在语法上是正确的。

标签: amazon-web-servicesamazon-cloudformation

解决方案


将表达式输出到 CloudWatch Logs 或其他输出通道的与 logging.debug(some-expression) 等效的 CloudFormation 是什么?

不幸的是,AWS没有提供这样的功能。AWS 提供的唯一工具是aws cloudformation validate-template。最近的 AWS 博客中介绍了有关如何使用模板验证的一般信息:

但是,某种调试来自创建更改集,但这仅适用于更新现有堆栈时。

您还可以找到一些第三方工具,例如 yaml 检查器或 CloudFormation 模板 linter,以检查您的模板。许多这些工具都列在这个SO question 中。

最终,为了确保您的模板能够正常工作,您必须尝试部署它。


推荐阅读