本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
AWS Proton 参数
您可以在基础设施即代码 (IaC) 文件中定义和使用参数,以使其灵活且可重用。您可以通过引用参数命名空间中的参数名称来读取 IaC 文件中的 AWS Proton 参数值。 AWS Proton 将参数值注入其在资源配置期间生成的渲染的 IaC 文件中。要处理 AWS CloudFormation IaC 参数,请 AWS Proton 使用 Jinj
使用CodeBuild 预置, AWS Proton 生成您的代码可以导入的输入文件。该文件是 JSON 或 HCL 文件,具体取决于模板清单中的属性。有关更多信息,请参阅CodeBuild 配置参数详细信息和示例。
您可以引用环境、服务和组件 IaC 文件或预置代码中的参数,并具有以下要求:
-
每个参数名称的长度不超过 100 个字符。
-
参数命名空间和资源名称的总长度不超过资源名称的字符限制。
AWS Proton 如果超过这些配额,则配置将失败。
参数类型
在 AWS Proton iaC 文件中,以下参数类型可供您参考:
- 输入参数
-
环境和服务实例可以使用与环境或服务模板关联的架构文件中定义的输入参数。您可以在资源的 IaC 文件中引用资源的输入参数。组件 IaC 文件可以引用组件附加到的服务实例的输入参数。
AWS Proton 根据架构文件检查输入参数名称,并将它们与 IaC 文件中引用的参数进行匹配,以注入您在资源配置期间在规范文件中提供的输入值。
- 输出参数
-
您可以在任何 IaC 文件中定义输出。例如,输出可以是模板预置的资源之一的名称、ID 或 ARN,也可以是传递模板输入之一的方式。您可以在其他资源的 IaC 文件中引用这些输出。
在 CloudFormation IaC 文件中,在
Outputs:
模块中定义输出参数。在 Terraform IaC 文件中,使用output
语句定义每个输出参数。 - 资源参数
-
AWS Proton 自动创建 AWS Proton 资源参数。这些参数公开了 AWS Proton 资源对象的属性。一个资源参数示例是
environment.name
。
在 IaC 文件中使用 AWS Proton 参数
要读取 IaC 文件中的参数值,请在参数命名空间中引用该 AWS Proton 参数的名称。对于 AWS CloudFormation IaC 文件,您可以使用 Jinja 语法,并用成对的大括号和引号将参数括起来。
下表显示了每种支持的模板语言的参考语法以及示例。
模板语言 | 语法 | 示例:名为“VPC”的环境输入 |
---|---|---|
CloudFormation |
|
|
Terraform |
|
|
注意
如果您在 IaC 文件中使用CloudFormation 动态参数,则必须对其进行转义
下表列出了所有 AWS Proton 资源参数的命名空间名称。每个模板文件类型可以使用参数命名空间的不同子集。
模板文件 | 参数类型 | 参数名称 | 描述 |
---|---|---|---|
环境 |
资源 |
|
环境名称 |
input |
|
架构定义的环境输入 |
|
服务 |
资源 |
|
环境名称和 AWS 账户 ID |
output |
|
环境 IaC 文件输出 |
|
资源 |
|
服务名称和代码存储库 |
|
资源 |
|
服务实例名称 |
|
input |
|
架构定义的服务实例输入 |
|
资源 |
|
附加的默认组件名称 |
|
output |
|
附加的默认组件 IaC 文件输出 |
|
管道 |
资源 |
|
服务实例环境名称和 AWS 账户 ID |
output |
|
服务实例环境 IaC 文件输出 |
|
input |
|
架构定义的管道输入 |
|
资源 |
|
服务名称和代码存储库 |
|
input |
|
架构定义的服务实例输入 |
|
collection |
|
您可以循环访问的服务实例的集合 |
|
组件 |
资源 |
|
环境名称和 AWS 账户 账户 ID |
output |
|
环境 IaC 文件输出 |
|
资源 |
|
服务名称和代码存储库(附加的组件) |
|
资源 |
|
服务实例名称(附加的组件) |
|
input |
|
架构定义的服务实例输入(附加的组件) |
|
资源 |
|
组件名称 |
有关更多信息和示例,请参阅有关不同资源类型和模板语言的 IaC 模板文件中的参数的子主题。