By using AWS re:Post, you agree to the Terms of Use
/reference resources between CDK stacks/

reference resources between CDK stacks

0

Hi Team,

I have 2 CDK stacks one in the Front end project and the second in the Backend project.

the first stack needs resources ref from the second stack (and vice versa can be true)

I have a lambda function in the backend stack that needs to call another lambda in the front end stack,

If I deploy the backend CDK stack first, how can I make a reference/call to the second lambda in the front end stack?

If I use event bridge or SNS I still need to have the name of the target lambda which is the lambda created by the CDK front end or I need the SNS ref to be shared between the 2 stacks for pub/sub.

any idea how to solve this :)

Thank you.

2 Answers
1

CloudFormation supports the concept of exporting outputs from one stack and importing their values into another stack.

In CDK, you can export a resource's output by creating a cfnOutput with an exportName property. You can also use Fn.ImportValue to import an exported value to a stack from a different stack.

Here's a blog post that illustrates this concept in further detail.

Note that neither CDK nor CloudFormation support circular stack dependencies, so you can't have stack A depend on a resource in stack B while also having stack B depend on a resource in stack A. The stack dependency graph must be acyclical.

EXPERT
answered 2 months ago
0

CDK can handle export/import of the resource variable automatically.

If you make a resource a member variable of the stack instance, and reference that stack member variable from the other stack by passing the variable as a property of stack props parameter, CDK will export the resource reference, and import it from the other stack automatically.

You can find more detailed information from https://docs.aws.amazon.com/cdk/v2/guide/resources.html#resource_stack.

Be aware that this operation only supported in a same region stacks. If you need to deploy the two stacks in two different regions, you need other mechanism.

answered 2 months ago

You are not logged in. Log in to post an answer.

A good answer clearly answers the question and provides constructive feedback and encourages professional growth in the question asker.

Guidelines for Answering Questions