

Hinweis zum Ende des Supports: Am 7. Oktober 2026 AWS endet der Support für AWS Proton. Nach dem 7. Oktober 2026 können Sie nicht mehr auf die AWS Proton Konsole oder AWS Proton die Ressourcen zugreifen. Ihre bereitgestellte Infrastruktur bleibt intakt. Weitere Informationen finden Sie im [AWS Proton Service Deprecation and Migration Guide](https://docs.aws.amazon.com/proton/latest/userguide/proton-end-of-support.html).

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

# Details und Beispiele zu den Parametern der CloudFormation IaC-Datei in der Umgebung
<a name="env-parameters"></a>

Sie können Parameter in Ihrer Umgebungsinfrastruktur als Codedateien (IaC) definieren und referenzieren. Eine ausführliche Beschreibung der AWS Proton Parameter, Parametertypen, des Parameter-Namespace und der Verwendung von Parametern in Ihren IaC-Dateien finden Sie unter. [AWS Proton Parameter](parameters.md)

## Definieren Sie Umgebungsparameter
<a name="env-parameters.define"></a>

Sie können sowohl Eingabe- als auch Ausgabeparameter für IaC-Umgebungsdateien definieren.
+ **Eingabeparameter** — Definieren Sie Eingabeparameter für die Umgebung in Ihrer [Schemadatei](ag-schema.md).

  Die folgende Liste enthält Beispiele für Umgebungseingabeparameter für typische Anwendungsfälle.
  + VPC CIDR-Werte
  + Load Balancer-Einstellungen
  + Datenbank-Einstellungen
  + Ein Timeout bei der Integritätsprüfung

  Als Administrator können Sie Werte für Eingabeparameter angeben, wenn Sie [eine Umgebung erstellen](ag-create-env.md):
  + Verwenden Sie die Konsole, um ein schemabasiertes Formular auszufüllen, das AWS Proton Folgendes bietet:
  + Verwenden Sie die CLI, um eine Spezifikation bereitzustellen, die die Werte enthält.
+ **Ausgabeparameter** — Definieren Sie die Umgebungsausgaben in den IaC-Dateien Ihrer Umgebung. Sie können dann in IaC-Dateien anderer Ressourcen auf diese Ausgaben verweisen.

## Lesen Sie Parameterwerte in IaC-Umgebungsdateien
<a name="env-parameters.refer"></a>

Sie können Parameter, die sich auf die Umgebung beziehen, in IaC-Umgebungsdateien lesen. Sie lesen einen Parameterwert, indem Sie im Parameter-Namespace auf den Namen des AWS Proton Parameters verweisen.
+ **Eingabeparameter** — Lesen Sie einen Umgebungseingabewert, indem Sie ihn referenzieren. `environment.inputs.input-name`
+ **Ressourcenparameter** — Lesen Sie AWS Proton Ressourcenparameter, indem Sie auf Namen wie verweisen. `environment.name`

**Anmerkung**  
Für IaC-Umgebungsdateien sind keine Ausgabeparameter anderer Ressourcen verfügbar.

## IaC-Beispieldateien für Umgebungen und Dienste mit Parametern
<a name="env-parameters.example"></a>

Das folgende Beispiel zeigt die Parameterdefinition und Referenz in einer IaC-Umgebungsdatei. Das Beispiel zeigt dann, wie in der IaC-Umgebungsdatei definierte Umgebungsausgabeparameter in einer Service-IaC-Datei referenziert werden können.

**Example IaC-Datei für die Umgebung CloudFormation**  
Beachten Sie in diesem Beispiel Folgendes:  
+ Der `environment.inputs.` Namespace bezieht sich auf Eingabeparameter der Umgebung.
+ Der Amazon EC2 Systems Manager (SSM) -Parameter `StoreInputValue` verkettet die Umgebungseingaben.
+ Die `MyEnvParameterValue` Ausgabe stellt dieselbe Verkettung von Eingabeparametern wie ein Ausgabeparameter bereit. Drei zusätzliche Ausgabeparameter machen die Eingabeparameter ebenfalls einzeln verfügbar.
+ Sechs zusätzliche Ausgabeparameter machen Ressourcen verfügbar, die die Umwelt bereitstellt.

```
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 CloudFormation IaC-Datei für den Dienst**  
Der `environment.outputs.` Namespace bezieht sich auf Umgebungsausgaben aus einer IaC-Umgebungsdatei. Beispielsweise `environment.outputs.ClusterName` liest der Name den Wert des `ClusterName` Umgebungsausgabeparameters.  

```
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'
[...]
```