如何在配置期间获取 AWS CloudFormation 输出/调试语句?

Joc*_*per 6 amazon-web-services 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 模板在语法上是正确的。

Mar*_*cin 2

CloudFormation 相当于logging.debug(some-expression) 的功能是什么,它将表达式输出发送到CloudWatch Logs 或其他输出通道?

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

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

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

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

  • “最终,为了确保您的模板能够正常工作,您必须尝试部署它。” 是的,这就是我正在做的事情。这就像在生产中进行调试,但无法在执行期间记录输出语句:-) (3认同)