

Aviso de fim do suporte: em 7 de outubro de 2026, AWS encerrará o suporte para AWS Proton. Depois de 7 de outubro de 2026, você não poderá mais acessar o AWS Proton console ou os AWS Proton recursos. Sua infraestrutura implantada permanecerá intacta. Para obter mais informações, consulte o Guia [AWS Proton de descontinuação e migração de serviços](https://docs.aws.amazon.com/proton/latest/userguide/proton-end-of-support.html).

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

# Detalhes e CloudFormation exemplos de parâmetros do arquivo Environment IaC
<a name="env-parameters"></a>

Você pode definir e referenciar parâmetros em seus arquivos de ambiente de infraestrutura como código (IaC). Para obter uma descrição detalhada dos AWS Proton parâmetros, dos tipos de parâmetros, do namespace do parâmetro e de como usar os parâmetros em seus arquivos IaC, consulte. [AWS Proton parâmetros](parameters.md)

## Definir os parâmetros do ambiente
<a name="env-parameters.define"></a>

Você pode definir os parâmetros de entrada e saída para arquivos IaC do ambiente.
+ **Parâmetros de entrada**: Defina os parâmetros de entrada do ambiente em seu [arquivo de esquema](ag-schema.md).

  A lista a seguir inclui exemplos de parâmetros de entrada do ambiente para casos de uso típicos.
  + Valores CIDR de VPC
  + Configurações do load balancer
  + Configurações do banco de dados
  + Tempo limite de verificação de integridade

  Como administrador, você pode fornecer valores para os parâmetros de entrada ao [criar um ambiente](ag-create-env.md):
  + Use o console para preencher um formulário baseado em esquema que AWS Proton fornece.
  + Use a CLI para fornecer uma especificação que inclua os valores.
+ **Parâmetros de saída**: Defina as saídas do ambiente nos arquivos IaC do seu ambiente. Você pode então consultar essas saídas em arquivos IaC de outros recursos.

## Leia valores de parâmetros em arquivos IaC do ambiente
<a name="env-parameters.refer"></a>

Você pode ler os parâmetros relacionados ao ambiente nos arquivos IaC do ambiente. Você lê um valor de parâmetro referindo o nome do parâmetro no namespace do parâmetro do AWS Proton .
+ **Parâmetros de entrada**: Leia um valor de entrada do ambiente fazendo referência a `environment.inputs.input-name`.
+ **Parâmetros do recurso** — Leia os parâmetros do AWS Proton recurso fazendo referência a nomes como`environment.name`.

**nota**  
Nenhum parâmetro de saída de outros recursos está disponível para os arquivos IaC do ambiente.

## Exemplos de arquivos IaC de ambiente e serviço com parâmetros
<a name="env-parameters.example"></a>

O exemplo a seguir demonstra a definição e a referência de parâmetros em um arquivo IaC do ambiente. Em seguida, o exemplo mostra como os parâmetros de saída do ambiente definidos no arquivo IaC do ambiente podem ser referenciados em um arquivo IaC do serviço.

**Example Arquivo de ambiente CloudFormation IaC**  
Neste exemplo, observe o seguinte:  
+ O namespace `environment.inputs.` se refere aos parâmetros de entrada do ambiente.
+ O parâmetro Amazon EC2 Systems Manager (SSM) `StoreInputValue` concatena as entradas do ambiente.
+ A saída `MyEnvParameterValue` expõe a mesma concatenação de parâmetros de entrada que um parâmetro de saída. Três parâmetros de saída adicionais também expõem os parâmetros de entrada individualmente.
+ Seis parâmetros de saída adicionais expõem os recursos que o ambiente fornece.

```
Resources:
  StoreInputValue:
    Type: AWS::SSM::Parameter
    Properties:
      Type: String
      Value: "{{ environment.inputs.my_sample_input }} {{ environment.inputs.my_other_sample_input}} {{ environment.inputs.another_optional_input }}"
              # input parameter references

# These output values are available to service infrastructure as code files as outputs, when given the 
# the 'environment.outputs' namespace, for example, service_instance.environment.outputs.ClusterName.
Outputs:
  MyEnvParameterValue:                                        # output definition
    Value: !GetAtt StoreInputValue.Value
  MySampleInputValue:                                         # output definition
    Value: "{{ environment.inputs.my_sample_input }}"         #   input parameter reference
  MyOtherSampleInputValue:                                    # output definition
    Value: "{{ environment.inputs.my_other_sample_input }}"   #   input parameter reference
  AnotherOptionalInputValue:                                  # output definition
    Value: "{{ environment.inputs.another_optional_input }}"  #   input parameter reference
  ClusterName:                                                # output definition
    Description: The name of the ECS cluster
    Value: !Ref 'ECSCluster'                                  #   provisioned resource
  ECSTaskExecutionRole:                                       # output definition
    Description: The ARN of the ECS role
    Value: !GetAtt 'ECSTaskExecutionRole.Arn'                 #   provisioned resource
  VpcId:                                                      # output definition
    Description: The ID of the VPC that this stack is deployed in
    Value: !Ref 'VPC'                                         #   provisioned resource
  PublicSubnetOne:                                            # output definition
    Description: Public subnet one
    Value: !Ref 'PublicSubnetOne'                             #   provisioned resource
  PublicSubnetTwo:                                            # output definition
    Description: Public subnet two
    Value: !Ref 'PublicSubnetTwo'                             #   provisioned resource
  ContainerSecurityGroup:                                     # output definition
    Description: A security group used to allow Fargate containers to receive traffic
    Value: !Ref 'ContainerSecurityGroup'                      #   provisioned resource
```

**Example Arquivo Service CloudFormation IaC**  
O namespace `environment.outputs.` se refere às saídas do ambiente de um arquivo IaC do ambiente. Por exemplo, o nome `environment.outputs.ClusterName` lê o valor do parâmetro de saída do ambiente `ClusterName`.  

```
AWSTemplateFormatVersion: '2010-09-09'
Description: Deploy a service on AWS Fargate, hosted in a public subnet, and accessible via a public load balancer.
Mappings:
  TaskSize:
    x-small:
      cpu: 256
      memory: 512
    small:
      cpu: 512
      memory: 1024
    medium:
      cpu: 1024
      memory: 2048
    large:
      cpu: 2048
      memory: 4096
    x-large:
      cpu: 4096
      memory: 8192
Resources:
  # A log group for storing the stdout logs from this service's containers
  LogGroup:
    Type: AWS::Logs::LogGroup
    Properties:
      LogGroupName: '{{service_instance.name}}' # resource parameter

  # The task definition. This is a simple metadata description of what
  # container to run, and what resource requirements it has.
  TaskDefinition:
    Type: AWS::ECS::TaskDefinition
    Properties:
      Family: '{{service_instance.name}}' # resource parameter
      Cpu: !FindInMap [TaskSize, {{service_instance.inputs.task_size}}, cpu] # input parameter
      Memory: !FindInMap [TaskSize, {{service_instance.inputs.task_size}}, memory] 
      NetworkMode: awsvpc
      RequiresCompatibilities:
        - FARGATE
      ExecutionRoleArn: '{{environment.outputs.ECSTaskExecutionRole}}'  # output reference to an environment infrastructure code file
      TaskRoleArn: !Ref "AWS::NoValue"
      ContainerDefinitions:
        - Name: '{{service_instance.name}}'  # resource parameter
          Cpu: !FindInMap [TaskSize, {{service_instance.inputs.task_size}}, cpu]
          Memory: !FindInMap [TaskSize, {{service_instance.inputs.task_size}}, memory]
          Image: '{{service_instance.inputs.image}}'
          PortMappings:
            - ContainerPort: '{{service_instance.inputs.port}}' # input parameter
          LogConfiguration:
            LogDriver: 'awslogs'
            Options:
              awslogs-group: '{{service_instance.name}}' # resource parameter
              awslogs-region: !Ref 'AWS::Region'
              awslogs-stream-prefix: '{{service_instance.name}}' # resource parameter

  # The service_instance. The service is a resource which allows you to run multiple
  # copies of a type of task, and gather up their logs and metrics, as well
  # as monitor the number of running tasks and replace any that have crashed
  Service:
    Type: AWS::ECS::Service
    DependsOn: LoadBalancerRule
    Properties:
      ServiceName: '{{service_instance.name}}'  # resource parameter
      Cluster: '{{environment.outputs.ClusterName}}' # output reference to an environment infrastructure as code file
      LaunchType: FARGATE
      DeploymentConfiguration:
        MaximumPercent: 200
        MinimumHealthyPercent: 75
      DesiredCount: '{{service_instance.inputs.desired_count}}'# input parameter
      NetworkConfiguration:
        AwsvpcConfiguration:
          AssignPublicIp: ENABLED
          SecurityGroups:
            - '{{environment.outputs.ContainerSecurityGroup}}' # output reference to an environment infrastructure as code file
          Subnets:
            - '{{environment.outputs.PublicSubnetOne}}' # output reference to an environment infrastructure as code file
            - '{{environment.outputs.PublicSubnetTwo}}' # output reference to an environment infrastructure as code file
      TaskDefinition: !Ref 'TaskDefinition'
      LoadBalancers:
        - ContainerName: '{{service_instance.name}}'  # resource parameter
          ContainerPort: '{{service_instance.inputs.port}}' # input parameter
          TargetGroupArn: !Ref 'TargetGroup'
[...]
```