

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.

# Aktionsreferenz für Befehle
<a name="action-reference-Commands"></a>

Mit der Aktion „Befehle“ können Sie Shell-Befehle in einer virtuellen Recheninstanz ausführen. Wenn Sie die Aktion ausführen, werden die in der Aktionskonfiguration angegebenen Befehle in einem separaten Container ausgeführt. Alle Artefakte, die als Eingabeartefakte für eine CodeBuild Aktion angegeben sind, sind innerhalb des Containers verfügbar, in dem die Befehle ausgeführt werden. Mit dieser Aktion können Sie Befehle angeben, ohne zuerst ein CodeBuild Projekt zu erstellen. Weitere Informationen finden Sie unter [ActionDeclaration](https://docs.aws.amazon.com/codepipeline/latest/APIReference/API_ActionDeclaration.html) und [OutputArtifact](https://docs.aws.amazon.com/codepipeline/latest/APIReference/API_OutputArtifact.html) in der *AWS CodePipeline -API-Referenz*.

**Wichtig**  
Diese Aktion verwendet CodePipeline Managed CodeBuild Compute, um Befehle in einer Build-Umgebung auszuführen. Für die Ausführung der Befehlsaktion fallen separate Gebühren in an AWS CodeBuild.

**Anmerkung**  
Die Aktion „Befehle“ ist nur für Pipelines vom Typ V2 verfügbar.

**Topics**
+ [Überlegungen zur Aktion „Befehle“](#action-reference-Commands-considerations)
+ [Richtlinienberechtigungen für die Servicerolle](#action-reference-Commands-policy)
+ [Aktionstyp](#action-reference-Commands-type)
+ [Konfigurationsparameter](#action-reference-Commands-config)
+ [Input artifacts (Eingabeartefakte)](#action-reference-Commands-input)
+ [Ausgabeartefakte](#action-reference-Commands-output)
+ [Umgebungsvariablen](#action-reference-Commands-envvars)
+ [Berechtigungen für die Servicerolle: Befehle, Aktion](#edit-role-Commands)
+ [Aktionserklärung (Beispiel)](#action-reference-Commands-example)
+ [Weitere Informationen finden Sie auch unter](#action-reference-Commands-links)

## Überlegungen zur Aktion „Befehle“
<a name="action-reference-Commands-considerations"></a>

Die folgenden Überlegungen gelten für die Aktion „Befehle“.
+ Die Befehlsaktion verwendet CodeBuild Ressourcen, die der CodeBuild Aktion ähnlich sind, erlaubt aber Befehle in einer virtuellen Recheninstanz, ohne dass ein Build-Projekt zugeordnet oder erstellt werden muss.
**Anmerkung**  
Für die Ausführung der Befehlsaktion fallen separate Gebühren in an AWS CodeBuild.
+ Da die Aktion „Befehle“ in CodeBuild Ressourcen CodePipeline verbraucht, werden die von der Aktion ausgeführten Builds den Build-Limits für Ihr Konto in CodeBuild zugeordnet. Builds, die mit der Aktion Befehle ausgeführt werden, werden auf die Limits für gleichzeitige Builds angerechnet, die für dieses Konto konfiguriert sind.
+ Das Timeout für Builds mit der Aktion Befehle beträgt 55 Minuten, je CodeBuild nach Builds.
+ Die Recheninstanz verwendet eine isolierte Build-Umgebung in CodeBuild. 
**Anmerkung**  
Da die isolierte Build-Umgebung auf Kontoebene verwendet wird, kann eine Instanz für eine andere Pipeline-Ausführung wiederverwendet werden.
+ Alle Formate außer mehrzeiligen Formaten werden unterstützt. Bei der Eingabe von Befehlen müssen Sie das einzeilige Format verwenden.
+ Die Befehlsaktion wird für kontoübergreifende Aktionen unterstützt. Um eine Aktion mit kontenübergreifenden Befehlen hinzuzufügen, fügen Sie in der Aktionserklärung die Aktion `actionRoleArn` von Ihrem Zielkonto aus hinzu.
+ Für diese Aktion CodePipeline wird die Pipeline-Dienstrolle übernommen und diese Rolle verwendet, um den Zugriff auf Ressourcen zur Laufzeit zu ermöglichen. Es wird empfohlen, die Servicerolle so zu konfigurieren, dass die Berechtigungen bis zur Aktionsebene reichen.
+ Die der CodePipeline Servicerolle hinzugefügten Berechtigungen werden unter detailliert beschrieben. [Fügen Sie der CodePipeline Servicerolle Berechtigungen hinzu](how-to-custom-role.md#how-to-update-role-new-services)
+ Die zum Anzeigen von Protokollen in der Konsole erforderlichen Berechtigungen finden Sie unter[Zum Anzeigen von Rechenprotokollen in der Konsole sind Berechtigungen erforderlich](security-iam-permissions-console-logs.md).
+ Im Gegensatz zu anderen Aktionen in CodePipeline legen Sie keine Felder in der Aktionskonfiguration fest. Sie legen die Felder für die Aktionskonfiguration außerhalb der Aktionskonfiguration fest.

## Richtlinienberechtigungen für die Servicerolle
<a name="action-reference-Commands-policy"></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 Pipeline-Namens einschränken.

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

Wenn Sie eine vorhandene Servicerolle verwenden, müssen Sie zur Verwendung der Aktion Befehle die folgenden Berechtigungen für die Servicerolle hinzufügen.
+ Protokolle: CreateLogGroup
+ Protokolle: CreateLogStream
+ Protokolle: PutLogEvents

Beschränken Sie die Berechtigungen in der Richtlinie zur Servicerolle auf die Pipeline-Ebene, wie im folgenden Beispiel gezeigt.

```
{
    "Effect": "Allow",
    "Action": [
        "logs:CreateLogGroup",
        "logs:CreateLogStream",
        "logs:PutLogEvents"
    ],
    "Resource": [
        "arn:aws:logs:*:YOUR_AWS_ACCOUNT_ID:log-group:/aws/codepipeline/YOUR_PIPELINE_NAME",
        "arn:aws:logs:*:YOUR_AWS_ACCOUNT_ID:log-group:/aws/codepipeline/YOUR_PIPELINE_NAME:*"
   ]
}
```

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).

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

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

**Befehle**  
Erforderlich: Ja  
Sie können Shell-Befehle für die Ausführung der `Commands` Aktion angeben. In der Konsole werden Befehle in separaten Zeilen eingegeben. In der CLI werden Befehle als separate Zeichenfolgen eingegeben.  
Mehrzeilige Formate werden nicht unterstützt und führen zu einer Fehlermeldung. Für die Eingabe von Befehlen in das Befehlsfeld muss ein einzeiliges Format verwendet **werden**.
Die ComputeType Werte EnvironmentType und stimmen mit denen in CodeBuild überein. Wir unterstützen eine Teilmenge der verfügbaren Typen. Weitere Informationen finden Sie unter [Erstellen von Umgebungs-Compute-Typen](https://docs.aws.amazon.com/codebuild/latest/userguide/build-env-ref-compute-types.html).

**EnvironmentType**  
Erforderlich: Nein  
Das Betriebssystem-Image für die Build-Umgebung, das die Commands-Aktion unterstützt. Die folgenden Werte sind für Build-Umgebungen gültig:  
+ LINUX\$1CONTAINER
+ WINDOWS\$1SERVER\$12022\$1CONTAINER
Die Auswahl für ermöglicht **EnvironmentType**dann den Berechnungstyp für dieses Betriebssystem im Feld. **ComputeType** Weitere Informationen zu den für diese Aktion verfügbaren CodeBuild Berechnungstypen finden Sie in der Referenz zu den [Berechnungsmodi und -typen der Build-Umgebung](https://docs.aws.amazon.com/codebuild/latest/userguide/build-env-ref-compute-types.html) im CodeBuild Benutzerhandbuch.  
Falls nicht angegeben, wird für die Build-Umgebung standardmäßig der folgende Wert für die Berechnung verwendet:  
+ **Berechnungstyp:** GENERAL1 BUILD\$1 \$1SMALL
+ **Umgebungstyp**: LINUX\$1CONTAINER

**ComputeType**  
Erforderlich: Nein  
Basierend auf der Auswahl für EnvironmentType kann der Berechnungstyp angegeben werden. Die folgenden Werte sind für die Berechnung verfügbar. Beachten Sie jedoch, dass die verfügbaren Optionen je nach Betriebssystem variieren können.  
+ BUILD\$1 \$1SMALL GENERAL1
+ BAUEN\$1 GENERAL1 \$1MITTEL
+ BAU\$1 GENERAL1 \$1GROSS
Einige Compute-Typen sind mit bestimmten Umgebungstypen nicht kompatibel. Beispielsweise ist WINDOWS\$1SERVER\$12022\$1CONTAINER nicht mit BUILD\$1 \$1SMALL kompatibel. GENERAL1 Die Verwendung inkompatibler Kombinationen führt dazu, dass die Aktion fehlschlägt und ein Laufzeitfehler generiert wird.

**Ausgabevariablen**  
Erforderlich: Nein  
Geben Sie die Namen der Variablen in Ihrer Umgebung an, die Sie exportieren möchten. Eine Referenz zu CodeBuild Umgebungsvariablen finden Sie unter [Umgebungsvariablen in Build-Umgebungen](https://docs.aws.amazon.com/codebuild/latest/userguide/build-env-ref-env-vars.html) im *CodeBuild Benutzerhandbuch*. 

**Dateien**  
Erforderlich: Nein  
Sie können Dateien, die Sie exportieren möchten, als Ausgabeartefakte für die Aktion angeben.  
Das unterstützte Format für Dateien ist dasselbe wie für CodeBuild Dateimuster. Geben Sie beispielsweise `**/` für alle Dateien ein. Weitere Informationen finden Sie unter [Referenz zur Build-Spezifikation für CodeBuild](https://docs.aws.amazon.com/codebuild/latest/userguide/build-spec-ref.html#build-spec.artifacts.files) im *CodeBuild Benutzerhandbuch*.  

![\[Die Aktionsseite „Aktion bearbeiten“ für eine neue Pipeline mit der Aktion Befehle\]](http://docs.aws.amazon.com/de_de/codepipeline/latest/userguide/images/commands-edit-screen.png)


**VpcId**  
Erforderlich: Nein  
Die VPC-ID für Ihre Ressourcen.

**Subnets**  
Erforderlich: Nein  
Die Subnetze für die VPC. Dieses Feld wird benötigt, wenn Ihre Befehle eine Verbindung zu Ressourcen in einer VPC herstellen müssen.

**SecurityGroupIds**  
Erforderlich: Nein  
Die Sicherheitsgruppen für die VPC. Dieses Feld wird benötigt, wenn Ihre Befehle eine Verbindung zu Ressourcen in einer VPC herstellen müssen.

Im Folgenden finden Sie ein JSON-Beispiel für die Aktion mit Konfigurationsfeldern für Umgebung und Rechnertyp sowie einer Beispielumgebungsvariablen.

```
 {
            "name": "Commands1",
            "actionTypeId": {
              "category": "Compute",
              "owner": "AWS",
              "provider": "Commands",
              "version": "1"
            },
            "inputArtifacts": [
              {
                "name": "SourceArtifact"
              }
            ],
            "commands": [
              "ls",
              "echo hello",
              "echo $BEDROCK_TOKEN",
            ],
            "configuration": {
              "EnvironmentType": "LINUX_CONTAINER",
              "ComputeType": "BUILD_GENERAL1_MEDIUM"
            },
            "environmentVariables": [
              {
                "name": "BEDROCK_TOKEN",
                "value": "apiTokens:bedrockToken",
                "type": "SECRETS_MANAGER"
              }
            ],
            "runOrder": 1
          }
```

## Input artifacts (Eingabeartefakte)
<a name="action-reference-Commands-input"></a>
+ **Anzahl der Artefakte:** `1 to 10`

## Ausgabeartefakte
<a name="action-reference-Commands-output"></a>
+ **Anzahl der Artefakte:** `0 to 1` 

## Umgebungsvariablen
<a name="action-reference-Commands-envvars"></a>

**Key (Schlüssel)**  
Der Schlüssel in einem Schlüssel-Wert-Umgebungsvariablenpaar, z. B. `BEDROCK_TOKEN`

**Wert**  
Der Wert für das Schlüssel-Wert-Paar, z. B. `apiTokens:bedrockToken` Der Wert kann mit Ausgabevariablen von Pipeline-Aktionen oder Pipeline-Variablen parametrisiert werden.  
Wenn Sie den `SECRETS_MANAGER` Typ verwenden, muss dieser Wert der Name eines Secrets sein, das Sie bereits in AWS Secrets Manager gespeichert haben.

**Typ**  
Gibt die Art der Verwendung des Umgebungsvariablenwerts an. Der Wert kann entweder `PLAINTEXT` oder `SECRETS_MANAGER` sein. Wenn der Wert ist`SECRETS_MANAGER`, geben Sie die Secrets-Referenz im `EnvironmentVariable` Wert an. Wenn keine Angabe gemacht wird, gilt der Standardwert `PLAINTEXT`.  
Wir raten dringend davon ab, *Klartext-Umgebungsvariablen* zum Speichern sensibler Werte, insbesondere AWS von Anmeldeinformationen, zu verwenden. Wenn Sie die CodeBuild Konsole oder verwenden AWS CLI, werden *Klartext-Umgebungsvariablen* im Klartext angezeigt. Wenn es sich um vertrauliche Werte handelt, sollten Sie stattdessen den Typ `SECRETS_MANAGER` verwenden.

**Anmerkung**  
Wenn Sie `name``value`, und `type` für Ihre Umgebungsvariablenkonfiguration eingeben, insbesondere wenn die Umgebungsvariable die Syntax der CodePipeline Ausgabevariablen enthält, sollten Sie die 1000-Zeichen-Grenze für das Wertefeld der Konfiguration nicht überschreiten. Ein Validierungsfehler wird zurückgegeben, wenn dieser Grenzwert überschritten wird.

Ein Beispiel für eine Aktionsdeklaration, die eine Umgebungsvariable zeigt, finden Sie unter. [Konfigurationsparameter](#action-reference-Commands-config)

**Anmerkung**  
Der `SECRETS_MANAGER` Typ wird nur für die Aktion Commands unterstützt.
Geheimnisse, auf die in der Aktion Befehle verwiesen wird, werden in den Build-Logs ähnlich CodeBuild wie redigiert. Pipeline-Benutzer mit **Bearbeitungszugriff** auf die Pipeline können jedoch potenziell trotzdem auf diese geheimen Werte zugreifen, indem sie die Befehle ändern.
Um die verwenden zu können SecretsManager, müssen Sie Ihrer Pipeline-Servicerolle die folgenden Berechtigungen hinzufügen:  

  ```
  {
              "Effect": "Allow",
              "Action": [
                  "secretsmanager:GetSecretValue"
              ],
              "Resource": [
                  "SECRET_ARN"
              ]
          }
  ```

## Berechtigungen für die Servicerolle: Befehle, Aktion
<a name="edit-role-Commands"></a>

Um Befehle zu unterstützen, fügen Sie Ihrer Richtlinienerklärung Folgendes hinzu:

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "logs:CreateLogGroup",
                "logs:CreateLogStream",
                "logs:PutLogEvents"
            ],
            "Resource": [
                "arn:aws:iam::*:role/Service*",
                "arn:aws:iam::*:role/Service*"
            ]
        }
    ]
}
```

------

## Aktionserklärung (Beispiel)
<a name="action-reference-Commands-example"></a>

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

```
name: Commands_action
actionTypeId:
  category: Compute
  owner: AWS
  provider: Commands
  version: '1'
runOrder: 1
configuration: {}
commands:
- ls
- echo hello
- 'echo pipeline Execution Id is #{codepipeline.PipelineExecutionId}'
outputArtifacts:
- name: BuildArtifact
  files:
  - **/
inputArtifacts:
- name: SourceArtifact
outputVariables:
- AWS_DEFAULT_REGION
region: us-east-1
namespace: compute
```

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

```
{
    "name": "Commands_action",
    "actionTypeId": {
        "category": "Compute",
        "owner": "AWS",
        "provider": "Commands",
        "version": "1"
    },
    "runOrder": 1,
    "configuration": {},
    "commands": [
        "ls",
        "echo hello",
        "echo pipeline Execution Id is #{codepipeline.PipelineExecutionId}"
    ],
    "outputArtifacts": [
        {
            "name": "BuildArtifact",
            "files": [
                "**/"
            ]
        }
    ],
    "inputArtifacts": [
        {
            "name": "SourceArtifact"
        }
    ],
    "outputVariables": [
        "AWS_DEFAULT_REGION"
    ],
    "region": "us-east-1",
    "namespace": "compute"
}
```

------

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

Die folgenden verwandten Ressourcen bieten Ihnen nützliche Informationen für die Arbeit mit dieser Aktion.
+ [Tutorial: Erstellen Sie eine Pipeline, die Befehle mit Compute ausführt (Typ V2)](tutorials-commands.md)— Dieses Tutorial enthält eine Beispiel-Pipeline mit der Aktion Commands.