问题描述
我的无服务器基础设施分为多个功能堆栈,每个堆栈都有自己的资源(发电机、主题、队列等)。
对于某些堆栈 A,我需要定义一个 lambda 来监听另一个堆栈 B 的队列事件。
假设从头开始部署,如果先部署 B 效果很好,因为在部署 A 时会创建队列。但我的 ci 目前是:
sls deploy A
sls deploy B
例如,在 B 中添加 SQS 资源并在 A 中引用它会导致部署失败,因为在 A 部署期间,B SQS 资源尚不存在。
如何正确处理这种跨堆栈依赖?
解决方法
如何正确处理这种跨堆栈依赖?
您必须重新设计模板。您不能让 A 中的资源引用 B 中不存在的资源。您必须将所有内容转移到 A 以使其自给自足,或者引入新堆栈,该堆栈将保存公共资源并在 A 和 B 之前部署。