我如何在没有部署的情况下获得 CfnOutput

How do i get CfnOutput without deploy

我已经创建了 CDK 存储库。

将输出导出到 cdk-export.json 文件。 git 被忽略了。

现在我的队友在克隆 repo 后需要这个文件。 (但他不想部署整个基础设施)

是否有任何命令可以在不部署的情况下获取 CfnOutput?

如果您传递给输出的值是标记,那么它们将在部署期间而不是之前解析为实际值。

现在,如果其他用户需要这些值,他们应该只导入它们 - 他们不需要这些值来执行此操作。为此使用 Fn.importValue。他们只需要在 CDK 代码中定义的导出名称。

如果您想在与实际部署不同的流程中重用输出,我建议使用 Systems Manager Parameter Store。您可以在此处存储值,例如 API 端点,这些值在部署期间作为 CDK 代码的一部分生成。然后您可以使用 CDK 或 SDK 读取这些值。

Article about writing and reading parameters in CDK

This one covers reading using the AWS SDK 如果您想直接使用与部署过程断开连接的应用程序中的值。

这两种方法都允许您使用单个 CDK/CloudFormation 堆栈,而不是使用 CfnOutput ,后者需要您设置多个堆栈,因为这些值将被标记化,如 gshpychka 解释的那样在他的回答中。