AWS Proton 参数 - AWS Proton

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

AWS Proton 参数

您可以在基础设施即代码 (IaC) 文件中定义和使用参数,以使其灵活且可重用。您可以通过引用参数命名空间中的参数名称来读取 IaC 文件中的 AWS Proton 参数值。 AWS Proton 将参数值注入其在资源配置期间生成的渲染的 IaC 文件中。要处理 AWS CloudFormation IaC 参数,请 AWS Proton 使用 Jinj a。要处理 Terraform iaC 参数,需要 AWS Proton 生成 Terraform 参数值文件,并依赖 HCL 内置的参数化功能。

使用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

"{{ parameter-name }}"

"{{ environment.inputs.VPC }}"

Terraform

var.parameter-name

var.environment.inputs.VPC

生成的 Terraform 变量定义

注意

如果您在 IaC 文件中使用CloudFormation 动态参数,则必须对其进行转义以防止 Jinja 误解错误。有关更多信息,请参阅 排除 AWS Proton 的故障

下表列出了所有 AWS Proton 资源参数的命名空间名称。每个模板文件类型可以使用参数命名空间的不同子集。

模板文件 参数类型 参数名称 描述

环境

资源

environment.name

环境名称

input

environment.inputs.input-name

架构定义的环境输入

服务

资源

environment.name

environment.account_id

环境名称和 AWS 账户 ID

output

environment.outputs.output-name

环境 IaC 文件输出

资源

service.branch_name

service.name

service.repository_connection_arn

service.repository_id

服务名称和代码存储库

资源

service_instance.name

服务实例名称

input

service_instance.inputs.input-name

架构定义的服务实例输入

资源

service_instance.components.default.name

附加的默认组件名称

output

service_instance.components.default.outputs.output-name

附加的默认组件 IaC 文件输出

管道

资源

service_instance.environment.name

service_instance.environment.account_id

服务实例环境名称和 AWS 账户 ID

output

service_instance.environment.outputs.output-name

服务实例环境 IaC 文件输出

input

pipeline.inputs.input-name

架构定义的管道输入

资源

service.branch_name

service.name

service.repository_connection_arn

service.repository_id

服务名称和代码存储库

input

service_instance.inputs.input-name

架构定义的服务实例输入

collection

{% for service_instance in service_instances %}...{% endfor %}

您可以循环访问的服务实例的集合

组件

资源

environment.name

environment.account_id

环境名称和 AWS 账户 账户 ID

output

environment.outputs.output-name

环境 IaC 文件输出

资源

service.branch_name

service.name

service.repository_connection_arn

service.repository_id

服务名称和代码存储库(附加的组件)

资源

service_instance.name

服务实例名称(附加的组件)

input

service_instance.inputs.input-name

架构定义的服务实例输入(附加的组件)

资源

component.name

组件名称

有关更多信息和示例,请参阅有关不同资源类型和模板语言的 IaC 模板文件中的参数的子主题。