

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.

# Amazon Elastic Container Service und Referenz für Bereitstellungsaktionen in CodeDeploy Blaugrün
<a name="action-reference-ECSbluegreen"></a>

Sie können eine Pipeline konfigurieren AWS CodePipeline , die Containeranwendungen mithilfe einer blue/green Bereitstellung bereitstellt. In einer blue/green Bereitstellung können Sie neben der alten Version eine neue Version Ihrer Anwendung starten und die neue Version testen, bevor Sie den Datenverkehr dorthin umleiten. Sie können auch den Bereitstellungsprozess überwachen und bei Problemen schnell ein Rollback durchführen.

Die fertige Pipeline erkennt Änderungen an Ihren Images oder Ihrer Aufgabendefinitionsdatei und verwendet CodeDeploy sie, um den Datenverkehr an einen Amazon ECS-Cluster und Load Balancer weiterzuleiten und bereitzustellen. CodeDeploy erstellt einen neuen Listener auf Ihrem Load Balancer, der Ihre neue Aufgabe über einen speziellen Port ansprechen kann. Sie können die Pipeline auch so konfigurieren, dass sie einen Quellspeicherort, z. B. ein CodeCommit Repository, verwendet, in dem Ihre Amazon ECS-Aufgabendefinition gespeichert ist.

Bevor Sie Ihre Pipeline erstellen, müssen Sie die Amazon ECS-Ressourcen, die Ressourcen sowie den CodeDeploy Load Balancer und die Zielgruppe bereits erstellt haben. Sie müssen das Image bereits mit Tags versehen und in Ihrem Image-Repository gespeichert und die Aufgabendefinition und die Datei in Ihr AppSpec Datei-Repository hochgeladen haben.

**Anmerkung**  
In diesem Thema wird die Aktion zur CodeDeploy blue/green Bereitstellung von Amazon ECS beschrieben CodePipeline. Referenzinformationen zu den standardmäßigen Bereitstellungsaktionen von Amazon ECS finden Sie unter[Referenz zur Amazon Elastic Container Service-Bereitstellungsaktion](action-reference-ECS.md). CodePipeline

**Topics**
+ [Aktionstyp](#action-reference-ECSbluegreen-type)
+ [Konfigurationsparameter](#action-reference-ECSbluegreen-config)
+ [Input artifacts (Eingabeartefakte)](#action-reference-ECSbluegreen-input)
+ [Ausgabeartefakte](#action-reference-ECSbluegreen-output)
+ [Berechtigungen für Servicerollen: `CodeDeployToECS` Aktion](#edit-role-codedeploy-ecs)
+ [Aktionsdeklaration](#action-reference-ECSbluegreen-example)
+ [Weitere Informationen finden Sie auch unter](#action-reference-ECSbluegreen-links)

## Aktionstyp
<a name="action-reference-ECSbluegreen-type"></a>
+ Kategorie: `Deploy`
+ Eigentümer: `AWS`
+ Anbieter: `CodeDeployToECS`
+ Version: `1`

## Konfigurationsparameter
<a name="action-reference-ECSbluegreen-config"></a>

**ApplicationName**  
Erforderlich: Ja  
Der Name der Anwendung in CodeDeploy. Bevor Sie Ihre Pipeline erstellen, müssen Sie die Anwendung bereits in erstellt haben CodeDeploy.

**DeploymentGroupName**  
Erforderlich: Ja  
Die Bereitstellungsgruppe, die für Amazon ECS-Aufgabensätze angegeben wurde, die Sie für Ihre CodeDeploy Anwendung erstellt haben. Bevor Sie Ihre Pipeline erstellen, müssen Sie die Bereitstellungsgruppe bereits in erstellt haben CodeDeploy.

**TaskDefinitionTemplateArtifact**  
Erforderlich: Ja  
Der Name des Eingabe-Artefakts, das die Aufgabendefinitionsdatei für die Bereitstellungsaktion bereitstellt. Dies ist im Allgemeinen der Name des Ausgabeartefakts der Quellaktion. Wenn Sie die Konsole verwenden, lautet der Standardname für das Ausgabe-Artefakt der Quellaktion. `SourceArtifact`

**AppSpecTemplateArtifact**  
Erforderlich: Ja  
Der Name des Eingabeartefakts, das die AppSpec Datei für die Bereitstellungsaktion bereitstellt. Dieser Wert wird aktualisiert, wenn Ihre Pipeline ausgeführt wird. Dies ist im Allgemeinen der Name des Ausgabeartefakts aus der Quellaktion. Wenn Sie die Konsole verwenden, lautet der Standardname für das Ausgabe-Artefakt der Quellaktion. `SourceArtifact` `TaskDefinition`In der AppSpec Datei können Sie den `<TASK_DEFINITION>` Platzhaltertext wie hier gezeigt [ beibehalten. ](tutorials-ecs-ecr-codedeploy.md#tutorials-ecs-ecr-codedeploy-taskdefinition)

**AppSpecTemplatePath**  
Erforderlich: Nein  
Der Dateiname der Datei, die am AppSpec Speicherort der Pipeline-Quelldatei gespeichert ist, z. B. im CodeCommit Repository Ihrer Pipeline. Der Standarddateiname ist `appspec.yaml`. Wenn Ihre AppSpec Datei denselben Namen hat und auf der Stammebene in Ihrem Datei-Repository gespeichert ist, müssen Sie den Dateinamen nicht angeben. Wenn der Pfad nicht der Standardpfad ist, geben Sie den Pfad und den Dateinamen ein.

**TaskDefinitionTemplatePath**  
Erforderlich: Nein  
Der Dateiname der Aufgabendefinition, der im Quellverzeichnis der Pipeline-Datei gespeichert ist, z. B. im CodeCommit Repository Ihrer Pipeline. Der Standarddateiname ist `taskdef.json`. Wenn Ihre Aufgabendefinitionsdatei denselben Namen hat und auf der Stammebene in Ihrem Datei-Repository gespeichert ist, müssen Sie den Dateinamen nicht angeben. Wenn der Pfad nicht der Standardpfad ist, geben Sie den Pfad und den Dateinamen ein.

**Bild <Number>ArtifactName**  
Erforderlich: Nein  
Der Name des Eingabeartefakts, das das Bild für die Bereitstellungsaktion bereitstellt. Dies ist in der Regel das Ausgabe-Artefakt des Bild-Repositorys, z. B. die Ausgabe der Amazon ECR-Quellaktion.  
Verfügbare Werte für `<Number>` sind 1 bis 4.

**Bild <Number>ContainerName**  
Erforderlich: Nein  
Der Name des Images, das im Image-Repository verfügbar ist, z. B. im Amazon ECR-Quell-Repository.  
Verfügbare Werte für `<Number>` sind 1 bis 4.

## Input artifacts (Eingabeartefakte)
<a name="action-reference-ECSbluegreen-input"></a>
+ **Anzahl der Artefakte:** `1 to 5`
+ **Beschreibung: ** Die `CodeDeployToECS` Aktion sucht zuerst nach der Aufgabendefinitionsdatei und der AppSpec Datei im Quelldatei-Repository, dann nach dem Image im Image-Repository, generiert dann dynamisch eine neue Revision der Aufgabendefinition und führt schließlich die AppSpec Befehle aus, um das Task-Set und den Container im Cluster bereitzustellen.

  Die `CodeDeployToECS` Aktion sucht nach einer `imageDetail.json` Datei, die die Image-URI dem Bild zuordnet. Wenn Sie eine Änderung an Ihrem Amazon ECR-Image-Repository festschreiben, erstellt die Pipeline-ECR-Quellaktion eine `imageDetail.json` Datei für diesen Commit. Sie können auch manuell eine `imageDetail.json` Datei für eine Pipeline hinzufügen, bei der die Aktion nicht automatisiert ist. Informationen zur `imageDetail.json`-Datei finden Sie unter [Detail.json Image-Datei für Amazon blue/green ECS-Bereitstellungsaktionen](file-reference.md#file-reference-ecs-bluegreen).

  Die `CodeDeployToECS` Aktion generiert dynamisch eine neue Version der Aufgabendefinition. In dieser Phase ersetzt diese Aktion Platzhalter in der Aufgabendefinitionsdatei durch Bild-URI, die aus Detail.json Bilddateien abgerufen wurde. Wenn Sie beispielsweise * IMAGE1\_NAME * als Image1ContainerName Parameter festlegen, sollten Sie den Platzhalter * <IMAGE1\_NAME>*als Wert des Bildfeldes in Ihrer Aufgabendefinitionsdatei angeben. In diesem Fall ersetzt die CodeDeployToECS Aktion den Platzhalter * * durch die <IMAGE1\_NAME>tatsächliche Bild-URI, die aus dem Bild Detail.json in dem von Ihnen angegebenen Artefakt abgerufen wurde. Image1ArtifactName

  Bei Aktualisierungen von Aufgabendefinitionen enthält die CodeDeploy `AppSpec.yaml` Datei die `TaskDefinition` Eigenschaft. 

  ```
  TaskDefinition: <TASK_DEFINITION>
  ```

  Diese Eigenschaft wird durch die `CodeDeployToECS` Aktion aktualisiert, nachdem die neue Aufgabendefinition erstellt wurde.

  <TASK\_DEFINITION>Für den Wert des `TaskDefinition` Feldes muss der Platzhaltertext lauten. Die `CodeDeployToECS` Aktion ersetzt diesen Platzhalter durch den tatsächlichen ARN der dynamisch generierten Aufgabendefinition.

## Ausgabeartefakte
<a name="action-reference-ECSbluegreen-output"></a>
+ **Anzahl der Artefakte:** `0` 
+ **Beschreibung: ** Ausgabeartefakte gelten für diesen Aktionstyp nicht.

## Berechtigungen für Servicerollen: `CodeDeployToECS` Aktion
<a name="edit-role-codedeploy-ecs"></a>

Für die `CodeDeployToECS` Aktion (blue/green Bereitstellungen) sind die folgenden Mindestberechtigungen erforderlich, um Pipelines mit einer Aktion CodeDeploy zur Amazon blue/green ECS-Bereitstellung zu erstellen.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "AllowCodeDeployDeploymentActions",
            "Action": [
                "codedeploy:CreateDeployment",
                "codedeploy:GetDeployment"
            ],
            "Resource": [
                "arn:aws:codedeploy:*:{{111122223333}}:deploymentgroup:[[ApplicationName]]/*"
            ],
            "Effect": "Allow"
        },
        {
            "Sid": "AllowCodeDeployApplicationActions",
            "Action": [
                "codedeploy:GetApplication",
                "codedeploy:GetApplicationRevision",
                "codedeploy:RegisterApplicationRevision"
            ],
            "Resource": [
                "arn:aws:codedeploy:*:{{111122223333}}:application:[[ApplicationName]]",
                "arn:aws:codedeploy:*:{{111122223333}}:application:[[ApplicationName]]/*"
            ],
            "Effect": "Allow"
        },
        {
            "Sid": "AllowCodeDeployDeploymentConfigAccess",
            "Action": [
                "codedeploy:GetDeploymentConfig"
            ],
            "Resource": [
                "arn:aws:codedeploy:*:{{111122223333}}:deploymentconfig:*"
            ],
            "Effect": "Allow"
        },
        {
            "Sid": "AllowECSRegisterTaskDefinition",
            "Action": [
                "ecs:RegisterTaskDefinition"
            ],
            "Resource": [
                "*"
            ],
            "Effect": "Allow"
        },
        {
            "Sid": "AllowPassRoleToECS",
            "Effect": "Allow",
            "Action": "iam:PassRole",
            "Resource": [
                "arn:aws:iam::{{111122223333}}:role/[[PassRoles]]"
            ],
            "Condition": {
                "StringEquals": {
                    "iam:PassedToService": [
                        "ecs.amazonaws.com",
                        "ecs-tasks.amazonaws.com"
                    ]
                }
            }
        }
    ]
}
```

------

Sie können sich für die Verwendung der Tagging-Autorisierung in Amazon ECS entscheiden. Wenn Sie sich anmelden, müssen Sie die folgenden Berechtigungen gewähren:. `ecs:TagResource` Weitere Informationen zur Anmeldung und zur Feststellung, ob die Genehmigung erforderlich ist und ob die Tag-Autorisierung durchgesetzt wird, finden Sie [ im Zeitplan für die ](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-account-settings.html#tag-resources-timeline) Tagging-Autorisierung im Amazon Elastic Container Service Developer Guide.

Sie müssen auch die `iam:PassRole` Berechtigungen hinzufügen, um IAM-Rollen für Aufgaben verwenden zu können. Weitere Informationen finden Sie unter IAM-Rolle für die [ Amazon ECS-Aufgabenausführung ](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task_execution_IAM_role.html) und [ IAM-Rollen für Aufgaben. ](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-iam-roles.html)

Sie können die Liste der Dienste unter dieser `iam:PassedToService` Bedingung auch erweitern`ecs-tasks.amazonaws.com`, wie im obigen Beispiel gezeigt.

## Aktionsdeklaration
<a name="action-reference-ECSbluegreen-example"></a>

------
#### [ YAML ]

```
Name: Deploy
Actions:
  - Name: Deploy
    ActionTypeId:
      Category: Deploy
      Owner: AWS
      Provider: CodeDeployToECS
      Version: '1'
    RunOrder: 1
    Configuration:
      AppSpecTemplateArtifact: SourceArtifact
      ApplicationName: ecs-cd-application
      DeploymentGroupName: ecs-deployment-group
      Image1ArtifactName: MyImage
      Image1ContainerName: IMAGE1_NAME
      TaskDefinitionTemplatePath: taskdef.json
      AppSpecTemplatePath: appspec.yaml
      TaskDefinitionTemplateArtifact: SourceArtifact
    OutputArtifacts: []
    InputArtifacts:
      - Name: SourceArtifact
      - Name: MyImage
    Region: us-west-2
    Namespace: DeployVariables
```

------
#### [ JSON ]

```
{
    "Name": "Deploy",
    "Actions": [
        {
            "Name": "Deploy",
            "ActionTypeId": {
                "Category": "Deploy",
                "Owner": "AWS",
                "Provider": "CodeDeployToECS",
                "Version": "1"
            },
            "RunOrder": 1,
            "Configuration": {
                "AppSpecTemplateArtifact": "SourceArtifact",
                "ApplicationName": "ecs-cd-application",
                "DeploymentGroupName": "ecs-deployment-group",
                "Image1ArtifactName": "MyImage",
                "Image1ContainerName": "IMAGE1_NAME",
                "TaskDefinitionTemplatePath": "taskdef.json",
                "AppSpecTemplatePath": "appspec.yaml",
                "TaskDefinitionTemplateArtifact": "SourceArtifact"
            },
            "OutputArtifacts": [],
            "InputArtifacts": [
                {
                    "Name": "SourceArtifact"
                },
                {
                    "Name": "MyImage"
                }
            ],
            "Region": "us-west-2",
            "Namespace": "DeployVariables"
        }
    ]
}
```

------

## Weitere Informationen finden Sie auch unter
<a name="action-reference-ECSbluegreen-links"></a>

Die folgenden verwandten Ressourcen bieten Ihnen nützliche Informationen für die Arbeit mit dieser Aktion.
+ [Tutorial: Erstellen Sie eine Pipeline mit einer Amazon ECR-Quelle und Bereitstellung ECS-to-CodeDeploy](tutorials-ecs-ecr-codedeploy.md)— Dieses Tutorial führt Sie Schritt für Schritt durch die Erstellung der CodeDeploy Amazon ECS-Ressourcen, die Sie für eine blue/green Bereitstellung benötigen. Das Tutorial zeigt Ihnen, wie Sie ein Docker-Image an Amazon ECR übertragen und eine Amazon ECS-Aufgabendefinition erstellen, in der Ihr Docker-Image-Name, Ihr Containername, Ihr Amazon ECS-Servicename und Ihre Load Balancer-Konfiguration aufgeführt sind. Das Tutorial führt Sie dann durch die Erstellung der AppSpec Datei und der Pipeline für Ihre Bereitstellung.
**Anmerkung**  
In diesem Thema und Tutorial wird die CodeDeploy/ECS blue/green Aktion für beschrieben CodePipeline. Informationen zu ECS-Standardaktionen finden Sie unter [ Tutorial: Continuous Deployment with CodePipeline](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-cd-pipeline.html). CodePipeline
+ *AWS CodeDeploy Benutzerhandbuch * — Informationen zur Verwendung des Load Balancers, des Produktions-Listeners, der Zielgruppen und Ihrer Amazon ECS-Anwendung in einer blue/green Bereitstellung finden Sie unter [ Tutorial: Bereitstellen eines Amazon ECS-Service. ](https://docs.aws.amazon.com/codedeploy/latest/userguide/tutorial-ecs-deployment.html) Diese Referenzinformationen im *AWS CodeDeploy Benutzerhandbuch * bieten einen Überblick über blue/green Bereitstellungen mit Amazon ECS und. AWS CodeDeploy
+ *Amazon Elastic Container Service Developer Guide * — Informationen zur Arbeit mit Docker-Images und -Containern, ECS-Services und -Clustern sowie ECS-Aufgabensets finden Sie unter [ Was ist Amazon ECS? ](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/)