Estoy tratando de pasar un Arn para que un recurso creado en una pila principal se use en una pila anidada. La documentación de aws-cdk establece que:
Cuando una pila anidada hace referencia a un recurso de una pila principal, se agregará automáticamente un parámetro de CloudFormation a la pila anidada y se asignará desde la pila principal.
Sin embargo, intentar hacer referencia a un recurso creado en una pila principal da como resultado una Circular dependency between resources: error.
¿Cuál sería la mejor manera de pasar una referencia para un recurso de una pila principal a una anidada?
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() }