当 OpsWorks 堆栈或应用程序部署完成时,我希望通过 SNS 主题(或者可能是 SQS 队列)接收通知。主题应包括堆栈 ID、部署结果(成功或不成功),也许还包括堆栈面向公众的 DNS 名称。令人惊讶的是,这似乎不是现成的功能。
可能的实现:
我的部署应用程序可以轮询堆栈的部署状态并阻塞,直到部署完成,此时应用程序将负责检索堆栈的详细信息并将其传递到 SNS。这简单明了,但相当不雅。
我可以编写一个 Chef 部署挂钩来调用 a 中的 AWS API
ruby_block
,并将这个挂钩附加到 OpsWorksrestart
事件。这很好,很干净,我所有的堆栈信息都已经提供给配方,但是它给整个部署系统带来了额外的复杂性。
有更好的选择吗?