

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.

# Schemadatei
<a name="ag-schema"></a>

Wenn Sie als Administrator den [Abschnitt „Offene API-Datenmodelle (Schemas)“](https://swagger.io/docs/specification/data-models/) verwenden, um eine Parameterschema-YAML-Datei für Ihr Vorlagenpaket zu definieren, AWS Proton können Sie Parameterwerteingaben anhand der Anforderungen überprüfen, die Sie in Ihrem Schema definiert haben.

Weitere Informationen zu Formaten und verfügbaren Schlüsselwörtern finden Sie im Abschnitt [Schema-Objekt](https://github.com/OAI/OpenAPI-Specification/blob/master/versions/3.0.3.md#schemaObject) der OpenAPI.

## Schemaanforderungen für Umgebungsvorlagenpakete
<a name="schema-req-env"></a>

Ihr Schema muss dem [Abschnitt Datenmodelle (Schemas)](https://swagger.io/docs/specification/data-models/) der OpenAPI im YAML-Format entsprechen. Es muss auch Teil Ihres Umgebungsvorlagenpakets sein.

Für Ihr Umgebungsschema müssen Sie die formatierten Header angeben, um sicherzustellen, dass Sie den Abschnitt Datenmodelle (Schemas) der Open API verwenden. In den folgenden Beispielen für Umgebungsschemas erscheinen diese Header in den ersten drei Zeilen.

Ein `environment_input_type` muss enthalten und mit einem von Ihnen angegebenen Namen definiert werden. In den folgenden Beispielen ist dies in Zeile 5 definiert. Indem Sie diesen Parameter definieren, verknüpfen Sie ihn mit einer AWS Proton Umgebungsressource. 

Um dem Open-API-Schemamodell zu folgen, müssen Sie Folgendes einbeziehen`types`. Im folgenden Beispiel ist dies Zeile 6.

`types`Im Folgenden müssen Sie einen `environment_input_type` Typ definieren. Sie definieren die Eingabeparameter für Ihre Umgebung als Eigenschaften von`environment_input_type`. Sie müssen mindestens eine Eigenschaft mit einem Namen angeben, der mit mindestens einem Parameter übereinstimmt, der in der Umgebungsinfrastrukturdatei als Codedatei (IaC) aufgeführt ist, die dem Schema zugeordnet ist.

Wenn Sie eine Umgebung erstellen und benutzerdefinierte Parameterwerte angeben, AWS Proton verwendet er die Schemadatei, um sie abzugleichen, zu validieren und in die Parameter mit geschweiften Klammern in der zugehörigen IaC-Datei einzufügen. CloudFormation Geben Sie für jede Eigenschaft (Parameter) ein und ein. `name` `type` Geben Sie optional auch ein `description``default`, und an`pattern`.

Zu den definierten Parametern für das folgende Beispielschema für eine *Standardumgebungsvorlage* gehören`vpc_cidr`,`subnet_one_cidr`, und `subnet_two_cidr` zusammen mit dem `default` Schlüsselwort und den Standardwerten. Wenn Sie eine Umgebung mit diesem Umgebungsvorlagen-Bundle-Schema erstellen, können Sie die Standardwerte akzeptieren oder Ihre eigenen angeben. Wenn ein Parameter *keinen* Standardwert hat und als `required` Eigenschaft (Parameter) aufgeführt ist, müssen Sie beim Erstellen einer Umgebung Werte dafür angeben.

Im zweiten Beispiel eines Schemas für eine *Standardumgebungsvorlage* ist der `required` Parameter aufgeführt`my_other_sample_input`.

Sie können ein Schema für zwei Arten von Umgebungsvorlagen erstellen. Weitere Informationen finden Sie unter [Vorlagen registrieren und veröffentlichen](template-create.md).
+ **Vorlagen *für Standardumgebungen***

  Im folgenden Beispiel wird ein Umgebungseingabetyp mit einer Beschreibung und Eingabeeigenschaften definiert. Dieses Schemabeispiel kann mit der in [Beispiel 3](ag-infrastructure-tmp-files-cloudformation.md#ag-proton-env-cfn-example) gezeigten AWS Proton CloudFormation IaC-Datei verwendet werden.

  Beispielschema für eine *Standardumgebungsvorlage*:

  ```
  schema:                            # required
    format:                          # required
      openapi: "3.0.0"               # required
    # required              defined by administrator
    environment_input_type: "PublicEnvironmentInput"
    types:                           # required
      # defined by administrator
      PublicEnvironmentInput:
        type: object
        description: "Input properties for my environment"
        properties:
          vpc_cidr:                   # parameter
            type: string
            description: "This CIDR range for your VPC"
            default: 10.0.0.0/16
            pattern: ([0-9]{1,3}\.){3}[0-9]{1,3}($|/(16|24))
          subnet_one_cidr:            # parameter
            type: string
            description: "The CIDR range for subnet one"
            default: 10.0.0.0/24
            pattern: ([0-9]{1,3}\.){3}[0-9]{1,3}($|/(16|24))
          subnet_two_cidr:            # parameter
            type: string
            description: "The CIDR range for subnet one"
            default: 10.0.1.0/24
            pattern: ([0-9]{1,3}\.){3}[0-9]{1,3}($|/(16|24))
  ```

  Beispielschema für eine *Standardumgebungsvorlage*, die einen `required` Parameter enthält:

  ```
  schema:                            # required
    format:                          # required
      openapi: "3.0.0"               # required
    # required              defined by administrator
    environment_input_type: "MyEnvironmentInputType"
    types:                           # required
      # defined by administrator
      MyEnvironmentInputType:
        type: object
        description: "Input properties for my environment"
        properties:
          my_sample_input:           # parameter
            type: string
            description: "This is a sample input"
            default: "hello world"
          my_other_sample_input:     # parameter
            type: string
            description: "Another sample input"
          another_optional_input:    # parameter
            type: string
            description: "Another optional input"
            default: "!"
        required:
          - my_other_sample_input
  ```
+ **Vorlagen *für vom Kunden verwaltete* Umgebungen**

  Im folgenden Beispiel enthält das Schema nur eine Liste von Ausgaben, die die Ausgaben der IaC replizieren, mit der Sie Ihre vom *Kunden verwaltete* Infrastruktur bereitgestellt haben. Sie müssen Ausgabewerttypen *nur als Zeichenfolgen* definieren (*nicht* als Listen, Arrays oder andere Typen). Der nächste Codeausschnitt zeigt beispielsweise den Ausgabebereich einer externen Vorlage. CloudFormation Dies ist aus der in [Beispiel](ag-infrastructure-tmp-files-cloudformation.md#ag-env-cfn-example) 1 gezeigten Vorlage. Es kann verwendet werden, um eine externe, vom *Kunden verwaltete* Infrastruktur für einen AWS Proton Fargate-Dienst zu erstellen, der aus [Beispiel 4](ag-infrastructure-tmp-files-cloudformation.md#ag-proton-svc-cfn-example) erstellt wurde.
**Wichtig**  
Als Administrator müssen Sie sicherstellen, dass Ihre bereitgestellte und verwaltete Infrastruktur und alle Ausgabeparameter mit den zugehörigen *kundenverwalteten* Umgebungsvorlagen kompatibel sind. AWS Proton kann Änderungen in Ihrem Namen nicht berücksichtigen, da diese Änderungen für Sie nicht sichtbar sind. AWS Proton Inkonsistenzen führen zu Fehlern.

  Beispiele für CloudFormation IaC-Dateiausgaben für eine vom *Kunden verwaltete Umgebungsvorlage*:

  ```
  // Cloudformation Template Outputs
  [...]
  Outputs:
    ClusterName:
      Description: The name of the ECS cluster
      Value: !Ref 'ECSCluster'
    ECSTaskExecutionRole:
      Description: The ARN of the ECS role
      Value: !GetAtt 'ECSTaskExecutionRole.Arn'
    VpcId:
      Description: The ID of the VPC that this stack is deployed in
      Value: !Ref 'VPC'
  [...]
  ```

  Das Schema für das entsprechende Vorlagenpaket für vom AWS Proton *Kunden verwaltete* Umgebungen wird im folgenden Beispiel gezeigt. Jeder Ausgabewert ist als Zeichenfolge definiert.

  Beispielschema für eine vom *Kunden verwaltete* Umgebungsvorlage:

  ```
  schema:                            # required
    format:                          # required
      openapi: "3.0.0"               # required
    # required              defined by administrator
    environment_input_type: "EnvironmentOutput"
    types:                           # required
      # defined by administrator
      EnvironmentOutput:
        type: object
        description: "Outputs of the environment"
        properties:
          ClusterName:               # parameter
            type: string
            description: "The name of the ECS cluster"
          ECSTaskExecutionRole:      # parameter
            type: string
            description: "The ARN of the ECS role"
          VpcId:                     # parameter
            type: string
            description: "The ID of the VPC that this stack is deployed in"
  [...]
  ```

## Schemaanforderungen für Service-Vorlagen-Pakete
<a name="schema-req-svc"></a>

Ihr Schema muss dem [Abschnitt Datenmodelle (Schemas)](https://swagger.io/docs/specification/data-models/) der OpenAPI im YAML-Format entsprechen, wie in den folgenden Beispielen gezeigt. Sie müssen eine Schemadatei in Ihrem Service-Template-Paket bereitstellen.

In den folgenden Beispielen für ein Serviceschema müssen Sie die formatierten Header einbeziehen. Im folgenden Beispiel ist dies in den ersten drei Zeilen. Damit stellen Sie sicher, dass Sie den Abschnitt Datenmodelle (Schemas) der Open API verwenden.

A `service_input_type` muss enthalten und mit einem von Ihnen angegebenen Namen definiert werden. Im folgenden Beispiel befindet sich dies in Zeile 5. Dadurch werden die Parameter einer AWS Proton Dienstressource zugeordnet.

Eine AWS Proton Service-Pipeline ist standardmäßig enthalten, wenn Sie die Konsole oder die CLI verwenden, um einen Service zu erstellen. Wenn Sie eine Service-Pipeline für Ihren Service hinzufügen, müssen Sie sie `pipeline_input_type` mit einem von Ihnen angegebenen Namen angeben. Im folgenden Beispiel ist dies in Zeile 7. Fügen Sie diesen Parameter *nicht* ein, wenn Sie *keine* AWS Proton Service-Pipeline einbeziehen. Weitere Informationen finden Sie unter [Vorlagen registrieren und veröffentlichen](template-create.md).

Um dem Open-API-Schemamodell zu folgen, müssen Sie Folgendes angeben: Im folgenden Beispiel steht dies in Zeile 9. `types`

`types`Im Folgenden müssen Sie einen `service_input_type` Typ definieren. Sie definieren die Eingabeparameter für Ihren Service als Eigenschaften von`service_input_type`. Sie müssen mindestens eine Eigenschaft mit einem Namen angeben, der mit mindestens einem Parameter übereinstimmt, der in der Datei Service Infrastructure as Code (IaC) aufgeführt ist, die dem Schema zugeordnet ist.

Um eine Service-Pipeline zu definieren, müssen Sie unterhalb Ihrer `service_input_type` Definition eine `pipeline_input_type` definieren. Wie oben müssen Sie mindestens eine Eigenschaft mit einem Namen angeben, der mit mindestens einem Parameter übereinstimmt, der in einer Pipeline-IaC-Datei aufgeführt ist, die dem Schema zugeordnet ist. Nehmen Sie diese Definition *nicht* auf, wenn Sie *keine* AWS Proton Service-Pipeline einbeziehen.

Wenn Sie als Administrator oder Entwickler einen Service erstellen und benutzerdefinierte Parameterwerte angeben, AWS Proton verwendet er die Schemadatei, um sie abzugleichen, zu validieren und in die Parameter der zugehörigen CloudFormation IaC-Datei mit geschweiften Klammern einzufügen. Geben Sie für jede Eigenschaft (Parameter) a und a an. `name` `type` Geben Sie optional auch ein `description``default`, und an`pattern`.

Zu den definierten Parametern für das Beispielschema gehören `port``desired_count`, `task_size` und `image` zusammen mit dem `default` Schlüsselwort und den Standardwerten. Wenn Sie einen Service mit diesem Dienstvorlagen-Bundle-Schema erstellen, können Sie die Standardwerte akzeptieren oder eigene Werte angeben. Der Parameter `unique_name` ist auch im Beispiel enthalten und *hat keinen* Standardwert. Er ist als `required` Eigenschaft (Parameter) aufgeführt. Sie als Administrator oder Entwickler müssen Werte für `required` Parameter angeben, wenn Sie Dienste erstellen.

Wenn Sie eine Dienstvorlage mit einer Service-Pipeline erstellen möchten, nehmen Sie die `pipeline_input_type` in Ihr Schema auf.

**Beispiel für eine Dienstschemadatei für einen Dienst, der eine AWS Proton Dienstpipeline enthält.**

 Dieses Schemabeispiel kann mit den in Beispiel [4 und Beispiel](ag-infrastructure-tmp-files-cloudformation.md#ag-proton-svc-cfn-example) [5](ag-infrastructure-tmp-files-cloudformation.md#ag-proton-pipeline-cfn-example) gezeigten AWS Proton IaC-Dateien verwendet werden. Eine Service-Pipeline ist enthalten.

```
schema:                            # required
  format:                          # required
    openapi: "3.0.0"               # required
  # required           defined by administrator
  service_input_type: "LoadBalancedServiceInput"
  # only include if including AWS Proton service pipeline, defined by administrator
  pipeline_input_type: "PipelineInputs"

  types:                           # required
    # defined by administrator
    LoadBalancedServiceInput:
      type: object
      description: "Input properties for a loadbalanced Fargate service"
      properties:
        port:                      # parameter
          type: number
          description: "The port to route traffic to"
          default: 80
          minimum: 0
          maximum: 65535
        desired_count:             # parameter
          type: number
          description: "The default number of Fargate tasks you want running"
          default: 1
          minimum: 1
        task_size:                 # parameter
          type: string
          description: "The size of the task you want to run"
          enum: ["x-small", "small", "medium", "large", "x-large"]
          default: "x-small"
        image:                     # parameter
          type: string
          description: "The name/url of the container image"
          default: "public.ecr.aws/z9d2n7e1/nginx:1.19.5"
          minLength: 1
          maxLength: 200
        unique_name:               # parameter
          type: string
          description: "The unique name of your service identifier. This will be used to name your log group, task definition and ECS service"
          minLength: 1
          maxLength: 100
      required:
        - unique_name
    # defined by administrator
    PipelineInputs:
      type: object
      description: "Pipeline input properties"
      properties:
        dockerfile:                # parameter
          type: string
          description: "The location of the Dockerfile to build"
          default: "Dockerfile"
          minLength: 1
          maxLength: 100
        unit_test_command:         # parameter
          type: string
          description: "The command to run to unit test the application code"
          default: "echo 'add your unit test command here'"
          minLength: 1
          maxLength: 200
```

Wenn Sie eine Dienstvorlage ohne Service-Pipeline erstellen möchten, nehmen *Sie die nicht* `pipeline_input_type` in Ihr Schema auf, wie im folgenden Beispiel gezeigt.

**Beispiel für eine Dienstschemadatei für einen Service, der *keine* AWS Proton Service-Pipeline enthält**

```
schema:                            # required
  format:                          # required
    openapi: "3.0.0"               # required
  # required            defined by administrator  
  service_input_type: "MyServiceInstanceInputType"

  types:                           # required
    # defined by administrator
    MyServiceInstanceInputType:
      type: object
      description: "Service instance input properties"
      required:
        - my_sample_service_instance_required_input
      properties:
        my_sample_service_instance_optional_input:   # parameter
          type: string
          description: "This is a sample input"
          default: "hello world"
        my_sample_service_instance_required_input:   # parameter
          type: string
          description: "Another sample input"
```