如何在 cdk 堆栈之间传递变量而不会出现交叉引用错误?
How can you pass variables between cdk stacks without getting cross reference error?
我需要将 INamespace 传递给 CloudMapOptions 以便 ECS 任务注册到 AWS CloudMap,我收到以下错误。我无法将它们与 CfnOutput 分离,因为我需要 ECS cloudMapOptions 中的命名空间:
Stack "users" cannot consume a cross reference from stack "servicediscovery". Cross stack references are only supported for stacks deployed to the same environment or between nested stacks and their parent stack.
我试过这个:https://bobbyhadz.com/blog/aws-cdk-share-vpc-between-stacks,但没有成功。如何在堆栈之间传递 INamespace 类型的变量?
如果您执行以下操作之一,则可能会发生此错误:
- 您尝试在定义为位于 2 个不同区域的堆栈之间创建引用
注意这样的跨区references are not supported
- 您提供了不同的
StackProps
as 3rd parameter to Stack
构造函数
为了解决这个问题,请确保在 StackProps
中传递相同的 env
值,例如
class MyStack extends Stack {
constructor(scope: Construct){
super(scope, "MyStack", {
env: {
account: '123456789',
region: 'eu-central-1'
}
})
}
}
我需要将 INamespace 传递给 CloudMapOptions 以便 ECS 任务注册到 AWS CloudMap,我收到以下错误。我无法将它们与 CfnOutput 分离,因为我需要 ECS cloudMapOptions 中的命名空间:
Stack "users" cannot consume a cross reference from stack "servicediscovery". Cross stack references are only supported for stacks deployed to the same environment or between nested stacks and their parent stack.
我试过这个:https://bobbyhadz.com/blog/aws-cdk-share-vpc-between-stacks,但没有成功。如何在堆栈之间传递 INamespace 类型的变量?
如果您执行以下操作之一,则可能会发生此错误:
- 您尝试在定义为位于 2 个不同区域的堆栈之间创建引用
注意这样的跨区references are not supported
- 您提供了不同的
StackProps
as 3rd parameter toStack
构造函数
为了解决这个问题,请确保在 StackProps
中传递相同的 env
值,例如
class MyStack extends Stack {
constructor(scope: Construct){
super(scope, "MyStack", {
env: {
account: '123456789',
region: 'eu-central-1'
}
})
}
}