2

我需要将 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 类型的变量?

4

1 回答 1

1

如果您执行以下操作之一,则可能会发生此错误:

  1. 您尝试在定义为位于 2 个不同区域的堆栈之间创建引用

请注意,不支持此类跨区域引用

  1. 您向构造函数提供不同StackProps的第三个参数Stack

为了解决这个问题,请确保在例如传递相同的envStackProps

class MyStack extends Stack {
  constructor(scope: Construct){
    super(scope, "MyStack", {
      env: { 
        account: '123456789', 
        region: 'eu-central-1'
      }
    })
  }
}
于 2021-05-29T12:32:00.103 回答