Я пытаюсь передать 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()
}