概述
在两个栈之间复制粘贴网络 id,会让其中一方的改动静默破坏另一方。StackReference 让消费者在部署时读取生产者导出的输出,前提是依赖方向单一且输出被视为需要维护的契约。
关键步骤
- 把下游需要的值作为栈输出导出。
- 用 StackReference 选择具体输出读取。
- 保持依赖方向单一,避免循环。
- 对缺失或改名输出做显式检查以快速失败。
验证
- 消费者获得生产者的当前取值。
- 依赖顺序在一次部署中成立。
- 输出改名会明确失败。
- 不产生循环依赖。
注意事项
- 栈引用形成部署依赖,消费者无法先于生产者部署。
- 它共享的是普通取值而非完整资源图,跨栈变更不会被自动建模。
适用范围
本条目围绕「在 Pulumi 栈之间共享输出」给出可复制的步骤、验证方式与常见问题,适合需要按此流程落地的工程团队。执行时请结合自身上下文调整命令与阈值,并在变更前后留存证据,便于后续复核与回滚。
const network = new pulumi.StackReference('acme/network/prod');
const vpcId = network.requireOutput('vpcId');
const subnet = new aws.ec2.Subnet('app', { vpcId });