AWS CDK доступ к ресурсу в родительском стеке из вложенного стека - PullRequest
0 голосов
/ 06 февраля 2020

Я пытаюсь передать Arn для ресурса, созданного в родительском стеке, для использования во вложенном стеке. Документация aws -cdk гласит:

Когда на ресурс из родительского стека ссылается вложенный стек, параметр CloudFormation будет автоматически добавлен во вложенный стек и назначен из родительского

Однако попытка сослаться на ресурс, созданный в родительском стеке, приводит к ошибке Circular dependency between resources:.

Как лучше всего передать ссылку на ресурс из родительского стека к вложенному?

object TestTemplateApp extends App {


  class MainStack(parent: Construct)
    extends Stack(parent, "Main") {

    //some other resources
    val firstNestedStack = new FirstNestedStack(this)

  }


  class FirstNestedStack(parent: Construct)
    extends NestedStack(parent, "Batch") {


    //some other resources

    val s3Bucket = Bucket.Builder
      .create(this, "id")
      .bucketName(("example"))
      .build()

    val BucketArn = s3Bucket.getBucketArn

    val secondNested = new SecondNestedStack(this, BucketArn)
  }

  class SecondNestedStack(parent: Construct, bucketArn: String) extends NestedStack(parent, "second") {

    //some other resources

    val secondS3Bucket = Bucket.Builder
      .create(this, s" S3WorkspaceBucket")
      .bucketName(s"$bucketArn example") // assume we want to use the ARN of the s3 bucket from the parent in the bucket in the nested stack
      .build()
  }

  val cdkApp = CDKApp.Builder.create().outdir("/tmp/test_template").build()
  val mainStack = new MainStack(cdkApp)
  cdkApp.synth()

}
...