Reference cross-instance StackSet outputs

0

Let's assume two StackSets, "BucketStack" and "LambdaStack".

  • BucketStack get's deployed to account A, region us-west-1, we have now instance Bucket1 with output bucketArn
  • LambdaStack get's deployed to account A, region us-west-1, we have now instance Lambda1
  • Withing Lambda1 I want to access bucketArn in instance Bucket1

Is there any way to achieve that? Best case would be a direct CDK way.

Jonas
已提問 7 個月前檢視次數 247 次
1 個回答
1
已接受的答案

Hi Jonas,

Yes, you can export the output from one stack and import its value into another stack in Cloudformation and CDK.

Since you are using CDK, you can export a resource's output by creating a cfnOutput with an exportName property.
You can then use Fn.ImportValue to import the exported value to another stack.

I think this blog [1] outlines exactly the use case that you are looking for.

Also, please make a note of the following, in case you plan to have multiple stack instances exporting the output with the same export name bucketArn [2]:

For each AWS account, Export names must be unique within a region.

References:
[1] https://bobbyhadz.com/blog/import-value-aws-cdk-cross-stack
[2] https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/walkthrough-crossstackref.html

Regards,
Atul

profile picture
已回答 7 個月前
profile pictureAWS
專家
已審閱 7 個月前
  • Thanks a lot, especially for the first reference link. I probably searched too much just for StackSets. Do you know if there is an more implicit way in AWS CDK? With usual Stacks and Nested Stacks and so on you can use code references in the other stacks and CDK makes all of the output/import stuff.

您尚未登入。 登入 去張貼答案。

一個好的回答可以清楚地回答問題並提供建設性的意見回饋,同時有助於提問者的專業成長。

回答問題指南