

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.

# Referenz zu Abbild-Definitionsdateien
<a name="file-reference"></a>

Dieser Abschnitt dient nur als Referenz. Informationen zum Erstellen einer Pipeline mit Quell- oder Bereitstellungsaktionen für Container finden Sie unter [Eine Pipeline, Phasen und Aktionen erstellen](pipelines-create.md).

AWS CodePipeline Jobworker für Container-Aktionen, wie z. B. eine Amazon ECR-Quellaktion oder Amazon ECS-Bereitstellungsaktionen, verwenden Definitionsdateien, um den Image-URI und den Container-Namen der Aufgabendefinition zuzuordnen. Jede Definitionsdatei ist eine JSON-formatierte Datei, die vom Aktionsanbieter wie folgt verwendet wird:
+ Amazon ECS-Standardbereitstellungen erfordern eine `imagedefinitions.json` Datei als Eingabe für die Bereitstellungsaktion. Ein Tutorial, das die Amazon ECS-Standardbereitstellungsaktion in verwendet CodePipeline, finden Sie unter[Tutorial: Amazon ECS-Standardbereitstellung mit CodePipeline](ecs-cd-pipeline.md). Ein weiteres Beispiel-Tutorial, das die Amazon ECS-Standardbereitstellungsaktion CodePipeline zusammen mit der ECRBuild AndPublish Aktion verwendet, finden Sie unter[Tutorial: Erstellen Sie ein Docker-Image und übertragen Sie es auf Amazon ECR mit CodePipeline (Typ V2)](tutorials-ecr-build-publish.md).
+ Amazon blue/green ECS-Bereitstellungen erfordern eine `imageDetail.json` Datei als Eingabe für die Bereitstellungsaktion. Ein Tutorial mit einer blue/green Beispielbereitstellung finden Sie unter[Tutorial: Eine Pipeline mit einer Amazon ECR-Quelle und ECS-to-CodeDeploy Bereitstellung erstellen](tutorials-ecs-ecr-codedeploy.md).
  + Amazon ECR-Quellaktionen generieren eine `imageDetail.json`-Datei, die als Ausgabe aus der Quellaktion bereitgestellt wird.

**Topics**
+ [Datei imagedefinitions.json für Amazon ECS-Standardbereitstellungsaktionen](#pipelines-create-image-definitions)
+ [ImageDetail.json-Datei für Amazon ECS-Bereitstellungsaktionen blue/green](#file-reference-ecs-bluegreen)

## Datei imagedefinitions.json für Amazon ECS-Standardbereitstellungsaktionen
<a name="pipelines-create-image-definitions"></a>

Ein Imagedefinitionsdokument ist eine JSON-Datei, die Ihren Amazon ECS-Container-Namen sowie das Bild und das Tag beschreibt. Wenn Sie containerbasierte Anwendungen bereitstellen, müssen Sie eine Image-Definitionsdatei generieren, um dem CodePipeline Job-Worker den Amazon ECS-Container und die Image-ID zum Abrufen aus dem Image-Repository, z. B. Amazon ECR, zur Verfügung zu stellen.

**Anmerkung**  
Der Standarddateiname für die Datei ist `imagedefinitions.json`. Wenn Sie einen anderen Dateinamen verwenden, müssen Sie diesen bereitstellen, wenn Sie die Pipeline-Bereitstellungsphase erstellen.

Erstellen Sie die Datei `imagedefinitions.json`, wobei Sie Folgendes berücksichtigen:
+ Die Datei muss die UTF-8-Kodierung verwenden.
+ Die maximale Dateigröße für die Abbild-Definitionsdatei ist 100 KB.
+ Sie müssen die Datei als Quell- oder Build-Artefakt erstellen, damit sie ein Eingabeartefakt für die Bereitstellungsaktion ist. Mit anderen Worten, stellen Sie sicher, dass die Datei entweder an Ihren Quellspeicherort, z. B. in Ihr CodeCommit Repository, hochgeladen oder als integriertes Ausgabeartefakt generiert wird.

Die Datei `imagedefinitions.json` stellt den Containernamen und den Abbild-URI bereit. Dieser muss mit dem folgenden Satz von Schlüssel-Wert-Paaren konstruiert werden.


| Key (Schlüssel) | Value (Wert) | 
| --- | --- | 
| Name | container\$1name | 
| imageUri | imageUri | 

**Anmerkung**  
Das Namensfeld wird für den Namen des Container-Images verwendet, was den Namen für das Docker-Image bedeutet.

Dies ist die JSON-Struktur, wobei der Containername `sample-app`, der Abbild-URI `ecs-repo` und der Tag `latest` ist:

```
[
  {
    "name": "sample-app",
    "imageUri": "11111EXAMPLE.dkr.ecr.us-west-2.amazonaws.com/ecs-repo:latest"
  }
]
```

Sie können die Datei auch so konstruieren, dass mehrere Container-Abbild-Paare aufgelistet werden. 

JSON-Struktur:

```
[
  {
    "name": "simple-app",
    "imageUri": "httpd:2.4"
  },
  {
    "name": "simple-app-1",
    "imageUri": "mysql"
  },
  {
    "name": "simple-app-2",
    "imageUri": "java1.8"
  }
]
```

Führen Sie vor Erstellung Ihrer Pipeline die die folgenden Schritte aus, um die `imagedefinitions.json` einzurichten.

1. Planen Sie während der Planung der Bereitstellung Container-basierter Anwendungen für Ihre Pipeline die Quell- und die Build-Phase, sofern vorhanden.

1. Wählen Sie eine der folgenden Optionen:

   1.  Wenn Ihre Pipeline so erstellt wurde, dass sie die Erstellungsphase überspringt, müssen Sie die JSON-Datei manuell erstellen und in Ihr Quell-Repository hochladen, damit die Quellaktion das Artefakt bereitstellen kann. Erstellen Sie die Datei mit einem Texteditor und geben Sie der Datei einen Namen oder verwenden Sie den Standarddateinamen `imagedefinitions.json`. Verschieben Sie die Abbild-Definitionsdatei in Ihr Quell-Repository.
**Anmerkung**  
Wenn es sich bei Ihrem Quell-Repository um einen Amazon S3 S3-Bucket handelt, denken Sie daran, die JSON-Datei zu komprimieren.

   1. Wenn Ihre Pipeline eine Build-Phase enthält, fügen Sie Ihrer Build Spec-Datei einen Befehl hinzu, der die Abbild-Definitionsdatei während der Build-Phase in Ihr Quell-Repository ausgibt. Im folgenden Beispiel wird der Befehl **printf** verwendet, um eine `imagedefinitions.json`-Datei zu erstellen. Listen Sie diesen Befehl im Abschnitt `post_build` der Datei `buildspec.yml` auf:

      ```
      printf '[{"name":"container_name","imageUri":"image_URI"}]' >
      imagedefinitions.json
      ```

      Sie müssen die Abbild-Definitionsdatei als Ausgabeartefakt in die Datei `buildspec.yml` einfügen.

1. Wenn Sie Ihre Pipeline in der Konsole erstellen, geben Sie auf der Seite **Deploy (Bereitstellen)** des Assistenten **Create Pipeline (Pipeline erstellen)** in **Image Filename (Name der Abbilddatei)** den Namen der Abbild-Definitionsdatei ein.

Ein step-by-step Tutorial zum Erstellen einer Pipeline, die Amazon ECS als Bereitstellungsanbieter verwendet, finden Sie unter [Tutorial: Continuous Deployment with CodePipeline](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-cd-pipeline.html).

## ImageDetail.json-Datei für Amazon ECS-Bereitstellungsaktionen blue/green
<a name="file-reference-ecs-bluegreen"></a>

Ein `imageDetail.json` Dokument ist eine JSON-Datei, die Ihren Amazon ECS-Image-URI beschreibt. Wenn Sie containerbasierte Anwendungen für eine blue/green Bereitstellung bereitstellen, müssen Sie die `imageDetail.json` Datei generieren, um dem Amazon ECS und dem CodeDeploy Jobworker die Image-ID zur Verfügung zu stellen, die sie aus dem Image-Repository abrufen können, z. B. Amazon ECR.

**Anmerkung**  
Der Name der Datei muss `imageDetail.json` sein.

Eine Beschreibung der Aktion und ihrer Parameter finden Sie unter. [Referenz für Amazon Elastic Container Service und CodeDeploy blaugrüne Bereitstellungsaktionen](action-reference-ECSbluegreen.md)

Sie müssen die Datei `imageDetail.json` als Quell- oder Build-Artefakt erstellen, damit sie ein Eingabeartefakt für die Bereitstellungsaktion ist. Sie können eine dieser Methoden verwenden, um die `imageDetail.json`-Datei in der Pipeline bereitzustellen: 
+ Fügen Sie die `imageDetail.json` Datei in Ihrem Quellverzeichnis ein, sodass sie in der Pipeline als Eingabe für Ihre Amazon blue/green ECS-Bereitstellungsaktion bereitgestellt wird.
**Anmerkung**  
Wenn es sich bei Ihrem Quell-Repository um einen Amazon S3 S3-Bucket handelt, denken Sie daran, die JSON-Datei zu komprimieren.
+ Amazon ECR-Quellaktionen generieren automatisch eine `imageDetail.json` Datei als Eingabeartefakt für die nächste Aktion.
**Anmerkung**  
Da die Amazon ECR-Quellaktion diese Datei erstellt, müssen Pipelines mit einer Amazon ECR-Quellaktion keine Datei manuell bereitstellen. `imageDetail.json`   
Ein Tutorial zum Erstellen einer Pipeline, die eine Amazon ECR-Quellphase enthält, finden Sie unter[Tutorial: Eine Pipeline mit einer Amazon ECR-Quelle und ECS-to-CodeDeploy Bereitstellung erstellen](tutorials-ecs-ecr-codedeploy.md).

![\[Diagramm, das die Datei ImageDetail.json zeigt, die im Artefakt-Bucket enthalten ist\]](http://docs.aws.amazon.com/de_de/codepipeline/latest/userguide/images/imageDetail_file_diagram.png)


Die `imageDetail.json`-Datei stellt den Abbild-URI bereit. Er muss mit dem Schlüssel-Wert-Paar konstruiert werden.


| Key (Schlüssel) | Value (Wert) | 
| --- | --- | 
| ImageURI | image\$1URI | 

------
#### [ imageDetail.json ]

Dies ist die JSON-Struktur, wobei der Abbild-URI `ACCOUNTID.dkr.ecr.us-west-2.amazonaws.com/dk-image-repo@sha256:example3` ist:

```
{
"ImageURI": "ACCOUNTID.dkr.ecr.us-west-2.amazonaws.com/dk-image-repo@sha256:example3"
}
```

------
#### [ imageDetail.json (generated by ECR) ]

Jedes Mal, wenn eine Änderung in das Image-Repository übertragen wird, wird von der Amazon ECR-Quellaktion automatisch eine `imageDetail.json` Datei generiert. Die von Amazon ECR `imageDetail.json` generierten Quellaktionen werden als Ausgabeartefakt von der Quellaktion zur nächsten Aktion in der Pipeline bereitgestellt.

Dies ist die JSON-Struktur, wobei der Name des Repositorys `dk-image-repo`, der Abbild-URI `ecs-repo` und das Image-Tag `latest` ist:

```
{
    "ImageSizeInBytes": "44728918",
    "ImageDigest": "sha256:EXAMPLE11223344556677889900bfea42ea2d3b8a1ee8329ba7e68694950afd3",
    "Version": "1.0",
    "ImagePushedAt": "Mon Jan 21 20:04:00 UTC 2019",
    "RegistryId": "EXAMPLE12233",
    "RepositoryName": "dk-image-repo",
    "ImageURI": "ACCOUNTID.dkr.ecr.us-west-2.amazonaws.com/dk-image-repo@sha256:example3",
    "ImageTags": [
        "latest"
    ]
}
```

Die `imageDetail.json` Datei ordnet den Image-URI und den Container-Namen der Amazon ECS-Aufgabendefinition wie folgt zu:
+ `ImageSizeInBytes`: Die Größe des Abbilds im Repository in Bytes.
+ `ImageDigest`: Der `sha256`-Digest des Abbildmanifests.
+ `Version`: Die Abbildversion.
+ `ImagePushedAt`: Datum und Uhrzeit der Push-Übertragung des neuesten Abbilds an das Repository.
+ `RegistryId`: Die AWS Konto-ID, die der Registrierung zugeordnet ist, die das Repository enthält.
+ `RepositoryName`: Der Name des Amazon ECR-Repositorys, in das das Bild übertragen wurde.
+ `ImageURI`: Der URI für das Abbild.
+ `ImageTags`: Das Tag für das Abbild.

------

Führen Sie vor Erstellung Ihrer Pipeline die die folgenden Schritte aus, um die `imageDetail.json` einzurichten.

1. Planen Sie im Rahmen der Planung der containerbasierten blue/green Anwendungsbereitstellung für Ihre Pipeline die Quellphase und gegebenenfalls die Erstellungsphase.

1. Wählen Sie eine der folgenden Optionen:

   1.  Wenn Ihre Pipeline die Erstellungsphase übersprungen hat, müssen Sie die JSON-Datei manuell erstellen und sie z. B. in Ihr Quell-Repository hochladen CodeCommit, damit die Quellaktion das Artefakt bereitstellen kann. Erstellen Sie die Datei mit einem Texteditor und geben Sie der Datei einen Namen oder verwenden Sie den Standarddateinamen `imageDetail.json`. Übertragen Sie die `imageDetail.json`-Datei per Push zu Ihrem Quell-Repository.

   1. Wenn Ihre Pipeline eine Build-Phase enthält, führen Sie die folgenden Aktionen aus:

      1. Fügen Sie Ihrer Build-Spezifikationsdatei einen Befehl hinzu, der die Abbild-Definitionsdatei während der Build-Phase in Ihr Quell-Repository ausgibt. Im folgenden Beispiel wird der Befehl **printf** verwendet, um eine `imageDetail.json`-Datei zu erstellen. Listen Sie diesen Befehl im Abschnitt `post_build` der Datei buildspec.yml auf:

         ```
         printf '{"ImageURI":"image_URI"}' > imageDetail.json
         ```

         Sie müssen die Datei `imageDetail.json` als Ausgabeartefakt in die Datei `buildspec.yml` einfügen.

      1. Fügen Sie die Datei `imageDetail.json` als Artefakt zur Datei `buildspec.yml` hinzu.

         ```
         artifacts:
           files:
             - imageDetail.json
         ```