服务 CloudFormation IaC 文件参数详细信息和示例 - AWS Proton

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

服务 CloudFormation IaC 文件参数详细信息和示例

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

定义服务参数

您可以为服务 IaC 文件定义输入和输出参数。

  • 输入参数 - 在架构文件中定义服务输入参数。

    以下列表包括典型使用案例的服务输入参数示例。

    • 端口

    • 任务大小

    • 图像

    • 预期数量

    • Docker 文件

    • 单元测试命令

    您可以在创建服务时提供输入参数的值:

    • 使用控制台填写基于架构的表单,该 AWS Proton 表单提供了。

    • 使用 CLI 提供包含这些值的规范。

  • 输出参数 - 在服务 IaC 文件中定义服务实例输出。然后,您可以在其他资源的 IaC 文件中引用这些输出。

读取服务 IaC 文件中的参数值

您可以在服务 IaC 文件中读取与服务和其他资源相关的参数。您可以通过在参数命名空间中引用参数的名称来读取 AWS Proton 参数值。

  • 输入参数 - 引用 service_instance.inputs.input-name 以读取服务实例输入值。

  • 资源参数-通过引用service.nameservice_instance.nameenvironment.name等名称来读取 AWS Proton 资源参数。

  • 输出参数 - 引用 environment.outputs.output-nameservice_instance.components.default.outputs.output-name 以读取其他资源的输出。

包含参数的示例服务 IaC 文件

以下示例是服务 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