

终止支持通知：2026 年 10 月 7 日， AWS 将终止对的支持。 AWS Proton 2026 年 10 月 7 日之后，您将无法再访问 AWS Proton 控制台或 AWS Proton 资源。您部署的基础架构将保持不变。有关更多信息，请参阅《[AWS Proton 服务弃用和迁移指南》](https://docs.aws.amazon.com/proton/latest/userguide/proton-end-of-support.html)。

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

# 服务 CloudFormation IaC 文件参数详细信息和示例
<a name="svc-parameters"></a>

您可以在服务和管道基础设施即代码 (IaC) 文件中定义和引用参数。有关 AWS Proton 参数、参数类型、参数命名空间以及如何在 IaC 文件中使用参数的详细说明，请参阅[AWS Proton 参数](parameters.md)。

## 定义服务参数
<a name="svc-parameters.define"></a>

您可以为服务 IaC 文件定义输入和输出参数。
+ **输入参数** - 在[架构文件](ag-schema.md)中定义服务输入参数。

  以下列表包括典型使用案例的服务输入参数示例。
  + 端口
  + 任务大小
  + 图像
  + 预期数量
  + Docker 文件
  + 单元测试命令

  您可以在[创建服务](ag-create-svc.md)时提供输入参数的值：
  + 使用控制台填写基于架构的表单，该 AWS Proton 表单提供了。
  + 使用 CLI 提供包含这些值的规范。
+ **输出参数** - 在服务 IaC 文件中定义服务实例输出。然后，您可以在其他资源的 IaC 文件中引用这些输出。

## 读取服务 IaC 文件中的参数值
<a name="svc-parameters.refer"></a>

您可以在服务 IaC 文件中读取与服务和其他资源相关的参数。您可以通过在参数命名空间中引用参数的名称来读取 AWS Proton 参数值。
+ **输入参数** - 引用 `service_instance.inputs.input-name` 以读取服务实例输入值。
+ **资源参数**-通过引用`service.name`、`service_instance.name`和`environment.name`等名称来读取 AWS Proton 资源参数。
+ **输出参数** - 引用 `environment.outputs.output-name` 或 `service_instance.components.default.outputs.output-name` 以读取其他资源的输出。

## 包含参数的示例服务 IaC 文件
<a name="svc-parameters.example"></a>

以下示例是服务 CloudFormation IaC 文件中的一段片段。`environment.outputs.` 命名空间引用环境 IaC 文件的输出。`service_instance.inputs.` 命名空间引用服务实例输入参数。该`service_instance.name`属性指的是 AWS Proton 资源参数。

```
Resources:
  StoreServiceInstanceInputValue:
    Type: AWS::SSM::Parameter
    Properties:
      Type: String
      Value: "{{ service.name }} {{ service_instance.name }} {{ service_instance.inputs.my_sample_service_instance_required_input }} {{ service_instance.inputs.my_sample_service_instance_optional_input }} {{ environment.outputs.MySampleInputValue }} {{ environment.outputs.MyOtherSampleInputValue }}"
              #  resource parameter references               # input parameter references                                                                                                                    # output references to an environment infrastructure as code file
Outputs:
  MyServiceInstanceParameter:                                                         # output definition
    Value: !Ref StoreServiceInstanceInputValue 
  MyServiceInstanceRequiredInputValue:                                                # output definition
    Value: "{{ service_instance.inputs.my_sample_service_instance_required_input }}"  # input parameter reference
  MyServiceInstanceOptionalInputValue:                                                # output definition
    Value: "{{ service_instance.inputs.my_sample_service_instance_optional_input }}"  # input parameter reference
  MyServiceInstancesEnvironmentSampleOutputValue:                                     # output definition
    Value: "{{ environment.outputs.MySampleInputValue }}"                             # output reference to an environment IaC file
  MyServiceInstancesEnvironmentOtherSampleOutputValue:                                # output definition
    Value: "{{ environment.outputs.MyOtherSampleInputValue }}"                        # output reference to an environment IaC file
```