

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 EC2 EC2-Aktionsreferenz
<a name="action-reference-EC2Deploy"></a>

Sie verwenden eine Amazon EC2 `EC2` EC2-Aktion, um Anwendungscode für Ihre Bereitstellungsflotte bereitzustellen. Ihre Bereitstellungsflotte kann aus Amazon EC2 EC2-Linux-Instances oder von Linux SSM verwalteten Knoten bestehen. Auf Ihren Instances muss der SSM-Agent installiert sein.

**Anmerkung**  
Diese Aktion unterstützt nur Linux-Instance-Typen. Die maximale unterstützte Flottengröße beträgt 500 Instances.

Die Aktion wählt eine Anzahl von Instanzen auf der Grundlage eines angegebenen Maximums aus. Die fehlgeschlagenen Instanzen früherer Instanzen werden zuerst ausgewählt. Die Aktion überspringt die Bereitstellung auf bestimmten Instances, wenn für die Instance bereits dasselbe Eingabeartefakt bereitgestellt wurde, z. B. in einem Fall, in dem die Aktion zuvor fehlgeschlagen ist.

**Anmerkung**  
Diese Aktion wird nur für Pipelines vom Typ V2 unterstützt.

**Topics**
+ [Aktionstyp](#action-reference-EC2Deploy-type)
+ [Konfigurationsparameter](#action-reference-EC2Deploy-parameters)
+ [Input artifacts (Eingabeartefakte)](#action-reference-EC2Deploy-input)
+ [Ausgabeartefakte](#action-reference-EC2Deploy-output)
+ [Richtlinienberechtigungen für Dienstrollen für die EC2-Bereitstellungsaktion](#action-reference-EC2Deploy-permissions-action)
+ [Referenz zur Deploy-Spezifikationsdatei](#action-reference-EC2Deploy-spec-reference)
+ [Aktionsdeklaration](#action-reference-EC2Deploy-example)
+ [Aktionserklärung mit Beispiel für die Deploy-Spezifikation](#action-reference-EC2Deploy-example-spec)
+ [Weitere Informationen finden Sie auch unter](#action-reference-EC2Deploy-links)

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

## Konfigurationsparameter
<a name="action-reference-EC2Deploy-parameters"></a>

**InstanceTagKey**  
Erforderlich: Ja  
Der Tag-Schlüssel der Instances, die Sie in Amazon EC2 erstellt haben, z. B. `Name`

**InstanceTagValue**  
Erforderlich: Nein  
Der Tag-Wert der Instances, die Sie in Amazon EC2 erstellt haben, z. B. `my-instances`  
Wenn dieser Wert nicht angegeben ist, **InstanceTagKey**werden alle Instances mit zugeordnet.

**InstanceType**  
Erforderlich: Ja  
Der Typ der Instances oder SSM-Knoten, die in Amazon EC2 erstellt wurden. Die gültigen Werte sind `EC2` und `SSM_MANAGED_NODE`.  
Sie müssen den SSM-Agenten bereits auf allen Instances erstellt, markiert und installiert haben.  
Wenn Sie die Instanz erstellen, erstellen oder verwenden Sie eine vorhandene EC2-Instanzrolle. Um `Access Denied` Fehler zu vermeiden, müssen Sie der Instance-Rolle S3-Bucket-Berechtigungen hinzufügen, um die Instanzberechtigungen für den CodePipeline Artefakt-Bucket zu erteilen. Erstellen Sie eine Standardrolle oder aktualisieren Sie Ihre bestehende Rolle mit der `s3:GetObject` Berechtigung, die auf den Artefakt-Bucket für die Region Ihrer Pipeline beschränkt ist.

**TargetDirectory**  
Erforderlich: Ja (wenn das Skript angegeben ist)  
Das Verzeichnis, das auf Ihrer Amazon EC2 EC2-Instance zum Ausführen von Skripts verwendet werden soll.

**DeploySpec**  
Erforderlich: Ja (wenn die Bereitstellungsspezifikation angegeben ist)  
Die Datei, die zur Konfiguration von Installations- und Lebenszyklusereignissen für die Bereitstellung verwendet werden soll. Beschreibungen und Informationen zu Feldern mit Bereitstellungsspezifikationen finden Sie unter[Referenz zur Deploy-Spezifikationsdatei](#action-reference-EC2Deploy-spec-reference). Eine Aktionskonfiguration mit der angegebenen Deploy-Spezifikationsdatei finden Sie im Beispiel unter. [Aktionserklärung mit Beispiel für die Deploy-Spezifikation](#action-reference-EC2Deploy-example-spec)

**MaxBatch**  
Erforderlich: Nein  
Die maximale Anzahl von Instanzen, die parallel bereitgestellt werden dürfen.

**MaxError**  
Erforderlich: Nein  
Die maximale Anzahl von Instance-Fehlern, die während der Bereitstellung zulässig sind.

**TargetGroupNameList**  
Erforderlich: Nein  
Die Liste der Zielgruppennamen für die Bereitstellung. Sie müssen die Zielgruppen bereits erstellt haben.  
Zielgruppen stellen eine Reihe von Instanzen zur Bearbeitung bestimmter Anfragen bereit. Wenn die Zielgruppe angegeben ist, werden Instanzen vor der Bereitstellung aus der Zielgruppe entfernt und nach der Bereitstellung wieder der Zielgruppe hinzugefügt.

**PreScript**  
Erforderlich: Nein  
Das Skript, das vor der Bereitstellungsphase der Aktion ausgeführt werden soll.

**PostScript**  
Erforderlich: Ja  
Das Skript, das nach der Bereitstellungsphase der Aktion ausgeführt werden soll.

Die folgende Abbildung zeigt ein Beispiel für die Seite **„Bearbeiten“** für die Aktion, auf der „**Aktionskonfigurationen verwenden**“ ausgewählt ist.

![\[Die Seite „Aktion bearbeiten“ für eine neue Pipeline mit der Aktion EC2 Bereitstellen, die die Verwendung der Aktionskonfiguration angibt\]](http://docs.aws.amazon.com/de_de/codepipeline/latest/userguide/images/ec2deploy-action.png)


Die folgende Abbildung zeigt ein Beispiel für die **Bearbeitungsseite** für die Aktion, auf der „** DeploySpec Datei verwenden**“ ausgewählt ist.

![\[Die Aktionsseite „Aktion bearbeiten“ für eine neue Pipeline mit der Aktionsoption EC2 Bereitstellen zur Verwendung einer Spezifikationsdatei\]](http://docs.aws.amazon.com/de_de/codepipeline/latest/userguide/images/ec2deploy-action-spec.png)


## Input artifacts (Eingabeartefakte)
<a name="action-reference-EC2Deploy-input"></a>
+ **Anzahl der Artefakte:** `1`
+ **Beschreibung:** Die bereitgestellten Dateien, falls vorhanden, um die Skriptaktionen während der Bereitstellung zu unterstützen.

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

## Richtlinienberechtigungen für Dienstrollen für die EC2-Bereitstellungsaktion
<a name="action-reference-EC2Deploy-permissions-action"></a>

Wenn die Aktion CodePipeline ausgeführt wird, benötigt die CodePipeline Servicerolle die folgenden Berechtigungen, die entsprechend auf den Zugriff mit den geringsten Rechten beschränkt sind.

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "StatementWithAllResource",
            "Effect": "Allow",
            "Action": [
                "ec2:DescribeInstances",
                "elasticloadbalancing:DescribeTargetGroupAttributes",
                "elasticloadbalancing:DescribeTargetGroups",
                "elasticloadbalancing:DescribeTargetHealth",
                "ssm:CancelCommand",
                "ssm:DescribeInstanceInformation",
                "ssm:ListCommandInvocations"
            ],
            "Resource": [
                "*"
            ]
        },
        {
            "Sid": "StatementForLogs",
            "Effect": "Allow",
            "Action": [
                "logs:CreateLogGroup",
                "logs:CreateLogStream",
                "logs:PutLogEvents"
            ],
            "Resource": [
                "arn:aws:logs:us-east-1:111122223333:log-group:/aws/codepipeline/{{pipelineName}}:*"
            ]
        },
        {
            "Sid": "StatementForElasticloadbalancing",
            "Effect": "Allow",
            "Action": [
                "elasticloadbalancing:DeregisterTargets",
                "elasticloadbalancing:RegisterTargets"
            ],
            "Resource": [
                "arn:aws:elasticloadbalancing:us-east-1:111122223333:targetgroup/[[targetGroupName]]/*"
            ]
        },
        {
            "Sid": "StatementForSsmOnTaggedInstances",
            "Effect": "Allow",
            "Action": [
                "ssm:SendCommand"
            ],
            "Resource": [
                "arn:aws:ec2:us-east-1:111122223333:instance/*"
            ],
            "Condition": {
                "StringEquals": {
                    "aws:ResourceTag/{{tagKey}}": "{{tagValue}}"
                }
            }
        },
        {
            "Sid": "StatementForSsmApprovedDocuments",
            "Effect": "Allow",
            "Action": [
                "ssm:SendCommand"
            ],
            "Resource": [
                "arn:aws:ssm:us-east-1::document/AWS-RunPowerShellScript",
                "arn:aws:ssm:us-east-1::document/AWS-RunShellScript"
            ]
        }
    ]
}
```

------

### Protokollieren Sie Gruppen für Ihre Pipeline in Protokollen CloudWatch
<a name="action-reference-EC2Deploy-logs"></a>

Wenn die Aktion CodePipeline ausgeführt CodePipeline wird, wird eine Protokollgruppe mit dem Namen der Pipeline wie folgt erstellt. Auf diese Weise können Sie die Berechtigungen für die Protokollierung von Ressourcen mithilfe des Pipelinenamens einschränken.

```
/aws/codepipeline/MyPipelineName
```

Die folgenden Berechtigungen für die Protokollierung sind in den obigen Updates für die Servicerolle enthalten.
+ Protokolle: CreateLogGroup
+ Protokolle: CreateLogStream
+ Protokolle: PutLogEvents

Um Protokolle in der Konsole mithilfe der Dialogseite mit den Aktionsdetails anzeigen zu können, muss der Konsolenrolle die Berechtigung zum Anzeigen von Protokollen hinzugefügt werden. Weitere Informationen finden Sie im Beispiel für die Richtlinie zu Konsolenberechtigungen unter[Zum Anzeigen von Rechenprotokollen in der Konsole sind Berechtigungen erforderlich](security-iam-permissions-console-logs.md).

### Richtlinienberechtigungen für CloudWatch Protokolle mit der Servicerolle
<a name="w2aac56c13c21c11"></a>

Wenn die Aktion CodePipeline ausgeführt CodePipeline wird, wird eine Protokollgruppe mit dem Namen der Pipeline wie folgt erstellt. Auf diese Weise können Sie die Berechtigungen für die Protokollierung von Ressourcen mithilfe des Pipelinenamens einschränken.

```
/aws/codepipeline/MyPipelineName
```

Um Protokolle in der Konsole mithilfe der Dialogseite mit den Aktionsdetails anzeigen zu können, muss der Konsolenrolle die Berechtigung zum Anzeigen von Protokollen hinzugefügt werden. Weitere Informationen finden Sie im Beispiel für die Richtlinie zu Konsolenberechtigungen unter[Zum Anzeigen von Rechenprotokollen in der Konsole sind Berechtigungen erforderlich](security-iam-permissions-console-logs.md).

## Referenz zur Deploy-Spezifikationsdatei
<a name="action-reference-EC2Deploy-spec-reference"></a>

Wenn die Aktion CodePipeline ausgeführt wird, können Sie eine Spezifikationsdatei angeben, um die Bereitstellung auf Ihren Instanzen zu konfigurieren. Die Deploy-Spezifikationsdatei gibt an, was installiert werden soll und welche Lifecycle-Event-Hooks als Reaktion auf Ereignisse im Deployment-Lebenszyklus ausgeführt werden sollen. Die Deploy-Spezifikationsdatei ist immer YAML-formatiert. Die Deploy-Spezifikationsdatei wird verwendet, um:
+ Ordnen Sie die Quelldateien in Ihrer Anwendungsrevision den entsprechenden Zielen auf der Instance zu.
+ Geben Sie benutzerdefinierte Berechtigungen für bereitgestellte Dateien an.
+ Legen Sie Scripts fest, die auf jeder Instance in verschiedenen Phasen des Bereitstellungsprozesses ausgeführt werden.

Die Deploy-Spezifikationsdatei unterstützt bestimmte Bereitstellungskonfigurationsparameter, die von CodeDeploy mit der AppSpec Datei unterstützt werden. Sie können Ihre vorhandene AppSpec Datei direkt verwenden, und alle nicht unterstützten Parameter werden ignoriert. Weitere Informationen zu der AppSpec Datei in CodeDeploy finden Sie in der Referenz zur Anwendungsspezifikationsdatei im *[CodeDeploy](https://docs.aws.amazon.com/codedeploy/latest/userguide/reference-appspec-file.html)Benutzerhandbuch*.

Die Parameter für die Dateibereitstellung werden wie folgt angegeben. 
+ `files`— Die Bereitstellungsspezifikationsdatei bezeichnet die `source:` und `destination:` für die Bereitstellungsdateien. 
+ `scripts`- Die skriptbasierten Ereignisse für die Bereitstellung. Zwei Ereignisse werden unterstützt: `BeforeDeploy` und`AfterDeploy`.
+ `hooks`— Die Lifecycle-Hooks für das Ereignis. Die folgenden Hooks werden unterstützt: `ApplicationStop``BeforeInstall`,`AfterInstall`,`ApplicationStart`, und`ValidateService`.
**Anmerkung**  
Der Hooks-Parameter ist aus AppSpec Kompatibilitätsgründen verfügbar CodeDeploy und nur in Version 0.0 (AppSpec Format) verfügbar. Für dieses Format CodePipeline wird nach bestem Wissen und Gewissen eine Zuordnung der Ereignisse durchgeführt.

In der Spezifikationsdatei muss der richtige YAML-Abstand verwendet werden. Andernfalls wird ein Fehler ausgelöst, wenn die Speicherorte und die Anzahl der Leerzeichen in einer Bereitstellungsspezifikationsdatei nicht korrekt sind. Weitere Informationen über Leerzeichen finden Sie in der [YAML](http://www.yaml.org/)-Spezifikation.

Ein Beispiel für eine Deploy-Spezifikationsdatei finden Sie weiter unten. 

```
version: 0.1
files:
  - source: /index.html
    destination: /var/www/html/
scripts:
  BeforeDeploy:
    - location: scripts/install_dependencies
      timeout: 300
      runas: myuser
  AfterDeploy:
    - location: scripts/start_server
      timeout: 300
      runas: myuser
```

Eine Aktionskonfiguration mit der angegebenen Deploy-Spezifikationsdatei finden Sie im Beispiel unter. [Aktionserklärung mit Beispiel für die Deploy-Spezifikation](#action-reference-EC2Deploy-example-spec)

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

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

```
name: DeployEC2
actions:
- name: EC2
  actionTypeId:
    category: Deploy
    owner: AWS
    provider: EC2
    version: '1'
  runOrder: 1
  configuration:
    InstanceTagKey: Name
    InstanceTagValue: my-instances
    InstanceType: EC2
    PostScript: "test/script.sh",
    TargetDirectory: "/home/ec2-user/deploy"
  outputArtifacts: []
  inputArtifacts:
  - name: SourceArtifact
  region: us-east-1
```

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

```
{
    "name": "DeployEC2",
    "actions": [
        {
            "name": "EC2Deploy",
            "actionTypeId": {
                "category": "Deploy",
                "owner": "AWS",
                "provider": "EC2",
                "version": "1"
            },
            "runOrder": 1,
            "configuration": {
                "InstanceTagKey": "Name",
                "InstanceTagValue": "my-instances",
                "InstanceType": "EC2",
                "PostScript": "test/script.sh",
                "TargetDirectory": "/home/ec2-user/deploy"
            },
            "outputArtifacts": [],
            "inputArtifacts": [
                {
                    "name": "SourceArtifact"
                }
            ],
            "region": "us-east-1"
        }
    ]
},
```

------

## Aktionserklärung mit Beispiel für die Deploy-Spezifikation
<a name="action-reference-EC2Deploy-example-spec"></a>

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

```
name: DeployEC2
actions:
- name: EC2
  actionTypeId:
    category: Deploy
    owner: AWS
    provider: EC2
    version: '1'
  runOrder: 1
  configuration:
    DeploySpec: "deployspec.yaml"
    InstanceTagKey: Name
    InstanceTagValue: my-instances
    InstanceType: EC2
  outputArtifacts: []
  inputArtifacts:
  - name: SourceArtifact
  region: us-east-1
```

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

```
{
    "name": "DeployEC2",
    "actions": [
        {
            "name": "EC2Deploy",
            "actionTypeId": {
                "category": "Deploy",
                "owner": "AWS",
                "provider": "EC2",
                "version": "1"
            },
            "runOrder": 1,
            "configuration": {
                "DeploySpec": "deployspec.yaml",
                "InstanceTagKey": "Name",
                "InstanceTagValue": "my-instances",
                "InstanceType": "EC2"
            },
            "outputArtifacts": [],
            "inputArtifacts": [
                {
                    "name": "SourceArtifact"
                }
            ],
            "region": "us-east-1"
        }
    ]
},
```

------

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

Die folgenden verwandten Ressourcen bieten Ihnen nützliche Informationen für die Arbeit mit dieser Aktion.
+  [Tutorial: Bereitstellung auf Amazon EC2 EC2-Instances mit CodePipeline](tutorials-ec2-deploy.md)— Dieses Tutorial führt Sie durch die Erstellung einer EC2-Instanz, in der Sie eine Skriptdatei bereitstellen, sowie durch die Erstellung der Pipeline mithilfe der EC2-Aktion.
+ [Die EC2 Deploy-Aktion schlägt mit einer Fehlermeldung fehl `No such file`](troubleshooting.md#troubleshooting-ec2-deploy)— In diesem Thema wird die Fehlerbehebung für Fehler „Datei nicht gefunden“ mit der EC2-Aktion beschrieben.