我需要将INamespace传递给CloudMapOptions,以便ECS任务注册到AWS CloudMap,我得到以下错误。我无法将它们与CfOutput解耦,因为我需要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类型的变量?
这个"交叉引用";错误也可能是由于缺少super()
的第三个参数造成的。
export class MyStack extends cdk.Stack {
constructor(scope: Construct, id: string, props: cdk.StackProps) {
super(scope, id); // Missing third argument
}
}
如果执行以下操作之一,则可能会发生此错误:
- 您试图在定义为位于两个不同区域的堆栈之间创建引用
请注意,不支持这种跨区域引用
- 您提供不同的
StackProps
作为Stack
构造函数的第三个参数
为了解决此问题,请确保在StackProps
中传递相同的env
值,例如
class MyStack extends Stack {
constructor(scope: Construct){
super(scope, "MyStack", {
env: {
account: '123456789',
region: 'eu-central-1'
}
})
}
}