

这是 AWS CDK v2 开发者指南。旧版 CDK v1 于 2022 年 6 月 1 日进入维护阶段，并于 2023 年 6 月 1 日终止支持。

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 参数和 AWS CDK
<a name="parameters"></a>

 *参数*是在部署时提供的自定义值。[参数](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/parameters-section-structure.html)是 AWS CloudFormation 的一项功能。由于 AWS 云开发工具包 (AWS CDK) 合成了 AWS CloudFormation 模板，因此它还支持 deployment-time 参数。

## 关于参数
<a name="parameters-about"></a>

AWS CDK 可用于定义参数，然后这些参数可以在您创建的构造的属性中使用。您也可以部署包含参数的堆栈。

使用 AWS CDK CLI 部署 AWS CloudFormation 模板时，应在命令行上提供参数值。如果您通过 AWS CloudFormation 控制台部署模板，则系统会提示您提供参数值。

一般而言，我们建议不要在 AWS CDK 中使用 AWS CloudFormation 参数。将值传递到 AWS CDK 应用程序的常用方法是[上下文值](context.md)和环境变量。由于参数值在合成时不可用，因此在 CDK 应用程序中无法轻易地将其用于流量控制和其他用途。

**注意**  
要使用参数控制流量，可以使用 [https://docs.aws.amazon.com/cdk/api/v2/docs/aws-cdk-lib.CfnCondition.html](https://docs.aws.amazon.com/cdk/api/v2/docs/aws-cdk-lib.CfnCondition.html) 构造，尽管与原生 `if` 语句相比，这看起来很突兀。

使用参数需要注意所编写的代码在部署时和合成时的行为。这使得理解和解释 AWS CDK 应用程序的难度更大，在许多情况下，几乎没有好处。

通常，最好让 CDK 应用程序以明确定义的方式接受必要信息，然后直接使用这些信息在 CDK 应用程序中声明构造。理想的 AWS CDK 生成的 AWS CloudFormation 模板是具体的，在部署时没有尚待指定的值。

但是，在某些使用案例中，AWS CloudFormation 参数存在一一对应关系。例如，如果由不同团队来定义和部署基础设施，则可以使用参数使生成的模板用途更为广泛。此外，由于 AWS CDK 支持 AWS CloudFormation 参数，您可以将 AWS CDK 与使用 AWS CloudFormation 模板的 AWS 服务（例如 Service Catalog）搭配使用。这些 AWS 服务使用参数来配置要部署的模板。

## 了解更多
<a name="parameters-learn"></a>

有关使用参数开发 CDK 应用程序的说明，请参阅[使用 CloudFormation 参数获取 CloudFormation 值](get-cfn-param.md)。