

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.

# Verwenden von Funktionen zum Überschreiben von Parametern mit CodePipeline Pipelines
<a name="continuous-delivery-codepipeline-parameter-override-functions"></a>

In einer CodePipeline Phase können Sie [Parameterüberschreibungen](continuous-delivery-codepipeline-action-reference.md) für CloudFormation Aktionen angeben. Mit Parameterüberschreibungen können Sie Vorlagenparameterwerte angeben, die Werte in einer Vorlagenkonfigurationsdatei überschreiben. CloudFormation stellt Funktionen bereit, mit denen Sie dynamische Werte angeben können (Werte, die erst bekannt sind, wenn die Pipeline ausgeführt wird).

**Topics**
+ [`Fn::GetArtifactAtt`](#w2aac21c17b7)
+ [`Fn::GetParam`](#w2aac21c17b9)
+ [Weitere Informationen finden Sie auch unter](#w2aac21c17c11)

## `Fn::GetArtifactAtt`
<a name="w2aac21c17b7"></a>

Die `Fn::GetArtifactAtt`-Funktion ruft den Wert eines Attributs aus einem Eingabeartefakt ab, z. B. den Namen des S3-Buckets, in dem das Artefakt gespeichert ist. Verwenden Sie diese Funktion, um Attribute eines Artefakts anzugeben, z. B. seinen Datei- oder Amazon S3 Bucket-Namen.

Wenn Sie eine Pipeline ausführen, CodePipeline kopiert und schreibt sie in den Artefaktspeicher der Pipeline (einen S3-Bucket). CodePipeline generiert die Dateinamen im Artefaktspeicher. Diese Dateinamen sind nicht bekannt, bevor Sie die Pipeline ausführen.

In Ihrer Pipeline könnten Sie beispielsweise eine Quellstufe haben, in der der Quellcode Ihrer AWS Lambda Funktion in den Artefaktspeicher CodePipeline kopiert wird. In der nächsten Phase haben Sie eine CloudFormation Vorlage, die die Lambda-Funktion erstellt, aber den Dateinamen CloudFormation benötigt, um die Funktion zu erstellen. Sie müssen die `Fn::GetArtifactAtt`-Funktion verwenden, um den genauen S3-Bucket- und Dateinamen zu übergeben.

### Syntax
<a name="w2aac21c17b7b9"></a>

Verwenden Sie die folgende Syntax zum Abrufen eines Attributwerts eines Artefakts.

```
{ "Fn::GetArtifactAtt" : [ "artifactName", "attributeName" ] }
```

`artifactName`  
Der Name des Eingabeartefakts. Sie müssen dieses Artefakt als Eingabe für die zugehörige Aktion deklarieren.

`attributeName`  
Der Name des Artefaktattributs, dessen Wert Sie abrufen möchten. Details zu den einzelnen Artefakten finden Sie im folgenden Abschnitt "Attribute".

### Beispiel
<a name="w2aac21c17b7c11"></a>

Die folgenden Parameter-Überschreibungen geben die Parameter `BucketName` und `ObjectKey` durch Abrufen des S3-Bucket-Namens und Dateinamens des `LambdaFunctionSource`-Artefakts an. In diesem Beispiel wird davon ausgegangen, dass der Quellcode der Lambda-Funktion CodePipeline kopiert und als Artefakt gespeichert wurde, beispielsweise als Teil einer Quellstufe.

```
{
  "BucketName" : { "Fn::GetArtifactAtt" : ["LambdaFunctionSource", "BucketName"]},
  "ObjectKey" : { "Fn::GetArtifactAtt" : ["LambdaFunctionSource", "ObjectKey"]}
}
```

### Attribute
<a name="w2aac21c17b7c13"></a>

Sie können die folgenden Attribute für ein Artefakt abrufen.

`BucketName`  
Der Name des S3-Buckets, in dem das Artefakt gespeichert ist.

`ObjectKey`  
Der Name der `.zip` Datei, die das Artefakt enthält, das von generiert wurde CodePipeline, z. B. `1ABCyZZ.zip`

`URL`  
Die Amazon Simple Storage Service (Amazon S3) URL des Artefakts, z. B. `https://s3.us-west-2.amazonaws.com/artifactstorebucket-yivczw8jma0c/test/TemplateSo/1ABCyZZ.zip`.

## `Fn::GetParam`
<a name="w2aac21c17b9"></a>

Die `Fn::GetParam`-Funktion gibt einen Wert aus einem Schlüssel-Wert-Paar in einer JSON-formatierten Datei zurück. Die JSON-Datei muss in ein Artefakt eingeschlossen sein.

Verwenden Sie diese Funktion, um Ausgabewerte aus einem CloudFormation Stapel abzurufen und sie als Eingabe für eine andere Aktion zu verwenden. Wenn Sie beispielsweise einen Ausgabedateinamen für eine CloudFormation Aktion angeben, CodePipeline speichern Sie die Ausgabe in einer JSON-Datei und fügen sie dann der `.zip` Datei des Ausgabeartefakts hinzu. Verwenden Sie die `Fn::GetParam`-Funktion, um den Ausgabewert abzurufen, und verwenden Sie ihn als Eingabe für eine andere Aktion.

### Syntax
<a name="w2aac21c17b9b7"></a>

Verwenden Sie die folgende Syntax, um einen Wert aus einem Schlüssel-Wert-Paar abzurufen.

```
{ "Fn::GetParam" : [ "artifactName", "JSONFileName", "keyName" ] }
```

`artifactName`  
Der Name des Artefakts, das als Eingabeartefakt für die zugehörige Aktion eingeschlossen werden muss.

`JSONFileName`  
Der Name einer JSON-Datei, die in dem Artefakt enthalten ist.

`keyName`  
Der Name des Schlüssels, dessen Wert Sie abrufen möchten.

### Beispiele
<a name="w2aac21c17b9b9"></a>

Die folgenden Beispiele zeigen, wie die `Fn::GetParam`-Funktion in einer Parameterüberschreibung verwendet wird.

#### Syntax
<a name="w2aac21c17b9b9b5"></a>

Die folgende Parameterüberschreibung gibt den `WebSiteURL`-Parameter an, indem der Wert des Schlüssels `URL` aus der Datei `stack-output.json` abgerufen wird, die im Artefakt `WebStackOutput` enthalten ist.

```
{
  "WebSiteURL" : { "Fn::GetParam" : ["WebStackOutput", "stack-output.json", "URL"]}
}
```

#### CloudFormation Schnipsel aus Vorlagen
<a name="w2aac21c17b9b9b7"></a>

Die folgenden CloudFormation Vorlagenausschnitte aus einer CodePipeline Pipeline zeigen, wie Stack-Ausgaben übergeben werden. Diese Codeausschnitte zeigen zwei Phasen der Pipeline-Definition. In der ersten Phase wird ein Stack erstellt und dessen Ausgaben werden in der Datei `TestOutput.json` im Artefakt `StackAOutput` gespeichert. Diese Werte werden mit den Eigenschaften `OutputFileName` und `OutputArtifacts` angegeben.

Der Name des Quelleingangsartefakts für die Phasen lautet `TemplateSource`. Der Dateiname für die Stack-Vorlage lautet `teststackA.yaml` und der Dateiname für die Konfigurationsdatei `test-configuration.json`. In beiden Phasen werden diese Werte wie dargestellt für die Eigenschaften `TemplateConfiguration` und `TemplatePath` angegeben.

```
TemplateConfiguration: TemplateSource::test-configuration.json
TemplatePath: TemplateSource::teststackA.yaml
```

**Example Erstellen der Stack A-Phase**  

```
- Name: CreateTestStackA
  Actions:
    - Name: CloudFormationCreate
      ActionTypeId:
        Category: Deploy
        Owner: AWS
        Provider: CloudFormation
        Version: '1'
      Configuration:
        ActionMode: CREATE_UPDATE
        Capabilities: CAPABILITY_IAM
        OutputFileName: TestOutput.json
        RoleArn: !GetAtt [CFNRole, Arn]
        StackName: StackA
        TemplateConfiguration: TemplateSource::test-configuration.json
        TemplatePath: TemplateSource::teststackA.yaml
      InputArtifacts:
        - Name: TemplateSource
      OutputArtifacts:
        - Name: StackAOutput
      RunOrder: '1'
```

In einer nachfolgenden Phase verwendet Stack B die Ausgaben von Stack A. In der `ParameterOverrides`-Eigenschaft wird im Beispiel die `Fn::GetParam`-Funktion zur Angabe des `StackBInputParam`-Parameters verwendet. Die resultierende Wert ist der Wert, der dem Schlüssel `StackAOutputName` zugeordnet ist.

**Example Erstellen der Stack B-Phase**  

```
- Name: CreateTestStackB
  Actions:
    - Name: CloudFormationCreate
      ActionTypeId:
        Category: Deploy
        Owner: AWS
        Provider: CloudFormation
        Version: '1'
      Configuration:
        ActionMode: CREATE_UPDATE
        Capabilities: CAPABILITY_IAM
        RoleArn: !GetAtt [CFNRole, Arn]
        StackName: StackB
        TemplateConfiguration: TemplateSource::test-configuration.json
        TemplatePath: TemplateSource::teststackB.yaml
        ParameterOverrides: |
          {
            "StackBInputParam" : { "Fn::GetParam" : ["StackAOutput", "TestOutput.json", "StackAOutputName"]}
          }
      InputArtifacts:
        - Name: TemplateSource
        - Name: StackAOutput
      RunOrder: '1'
```

## Weitere Informationen finden Sie auch unter
<a name="w2aac21c17c11"></a>

Die folgenden verwandten Ressourcen unterstützen Sie bei der Arbeit mit diesen Parametern.
+ Weitere Informationen zu den CloudFormation Aktionsparametern in CodePipeline finden Sie in der [Konfigurationsreferenz für CloudFormation Bereitstellungsaktionen](https://docs.aws.amazon.com/codepipeline/latest/userguide/action-reference-CloudFormation.html) im *AWS CodePipeline Benutzerhandbuch*.
+ Beispiels-Vorlagenwerte nach Aktionsanbietern, wie etwa für das `Owner`-Feld oder die `configuration`-Felder, finden Sie in der [Referenz zur Aktionsstruktur](https://docs.aws.amazon.com/codepipeline/latest/userguide/action-reference.html) im *Benutzerhandbuch für AWS CodePipeline *.
+ Um Beispielvorlagen für Pipeline-Stacks im YAML- oder JSON-Format herunterzuladen, siehe [Tutorial: Erstellen einer Pipeline mit CloudFormation](https://docs.aws.amazon.com/codepipeline/latest/userguide/tutorials-cloudformation.html) im *AWS CodePipeline -Benutzerhandbuch*.