无服务器部署:在 CloudFormation 更新后停止监视

serverless deploy: Stop watching after CloudFormation has the update

我正在使用 Bitbucket Pipelines 为无服务器应用程序制作 CD。我想为每个部署使用尽可能少的 "build minutes"。 serverless deploy 命令的生命周期,当使用 AWS 作为支持时,似乎是:

  1. 将包推送到 CloudFormation。 (~60 秒)
  2. 坐下来观察来自 CloudFormation 的日志,直到部署完成。 (~20-30 分钟)

由于时差太大,我不想做第二步。所以我的问题很简单:我如何部署无服务器应用程序,使其只执行第一步和 returns 成功或失败取决于 CloudFormation 是否成功接受了新包?

我查看了 serverless deploy 的文档,但看不到任何启用它的选项。此外,serverless deploy 命令中似乎已经有 AWS 特定的选项,所以如果没有其他方法可以做到这一点,无服务器团队可能会考虑这个选项。

N.B。至于 "how will you know if CloudFormation fails?",为此,我宁愿将通知设置为直接来自 CloudFormation。构建可以只负责推送到 CloudFormation。

我认为 serverless deploy 做不到。您可以尝试将包存储在 .serverless 文件夹中的 serverless package 命令,或者您可以使用 --package 指定路径。包将创建一个 CloudFormation 模板文件,例如cloudformation-template-update-stack.json。然后您可以调用 Create Stack API 操作来创建堆栈。它将 return 堆栈 ID,而无需等待创建所有资源。