使用 jenkins 管道部署时,如何将参数从第一个 cdk 堆栈的输出传递到另一个 cdk 堆栈的输入?

How do i pass parameters from first cdk stack's output to another cdk stack's input, when deploying using jenkins pipeline?

我有一个 bitbucket 存储库,在那个存储库中,我在一个单独的文件夹中有 4 个 CDK 堆栈。现在我想创建一个 Jenkins 管道,就像在第一阶段第一个堆栈已经构建和部署一样,

现在我想将第一个堆栈输出用作第二个堆栈的输入,第三个和第四个文件夹也是如此。

要使用另一个堆栈的输出,请使用 Fn.importValue function

像这样:

imported_output = cdk.Fn.import_value("OUTPUT_NAME")

一个不错的选择是将所有堆栈一起部署在一个 CDK 应用程序中,并只在堆栈之间传递对象引用。

CDK 将在后台找出必要的 outputs/imports,并自动以正确的顺序部署堆栈。

这是来自 docs 的示例:

prod = cdk.Environment(account="123456789012", region="us-east-1")

stack1 = StackThatProvidesABucket(app, "Stack1", env=prod)

# stack2 will take a property "bucket"
stack2 = StackThatExpectsABucket(app, "Stack2", bucket=stack1.bucket, env=prod)