

Dies ist das neue *CloudFormation Template Reference Guide*. Bitte aktualisieren Sie Ihre Lesezeichen und Links. Hilfe zu den ersten CloudFormation Schritten finden Sie im [AWS CloudFormation Benutzerhandbuch](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/Welcome.html).

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.

# `AWS::LanguageExtensions`-Transformation
<a name="transform-aws-languageextensions"></a>

In diesem Thema wird beschrieben, wie Sie die Transformation `AWS::LanguageExtensions` verwenden, um zusätzliche Funktionen und Möglichkeiten zu aktivieren, die standardmäßig nicht verfügbar sind. 

Das `AWS::LanguageExtensions` ist ein CloudFormation Makro, das, wenn es in Ihrer Stack-Vorlage referenziert wird, jede intrinsische Funktion, die durch die Transformation definiert wurde, auf ihren aufgelösten Wert innerhalb der Vorlage aktualisiert, wenn Sie einen Stack mithilfe eines Änderungssatzes erstellen oder aktualisieren. 

Indem Sie diese Transformation in Ihre CloudFormation Vorlage aufnehmen, können Sie auf zusätzliche Funktionen zugreifen, z. B. auf Funktionen`Fn::ForEach`, die fortgeschrittenere Operationen wie Iterationen ermöglichen. Sie können intrinsische Funktionen auch an Stellen verwenden, an denen sie normalerweise nicht erlaubt sind, wie beispielsweise in den Funktionen `Ref` und `Fn::GetAtt` .

## Usage
<a name="aws-languageextensions-usage"></a>

Um die `AWS::LanguageExtensions` Transformation verwenden zu können, müssen Sie sie auf der obersten Ebene Ihrer CloudFormation Vorlage deklarieren. Sie können `AWS::LanguageExtensions` nicht als Transformation verwenden, die in einem anderen Vorlagenabschnitt eingebettet ist.

Die Deklaration muss die Zeichenkette `AWS::LanguageExtensions` als Wert verwenden. Parameter oder Funktionen dürfen nicht zur Angabe eines Transformationswerts verwendet werden.

### Syntax
<a name="aws-languageextensions-syntax"></a>

Verwenden Sie die folgende Syntax, um diese Transformation in Ihrer CloudFormation Vorlage zu deklarieren:

### JSON
<a name="aws-languageextensions-syntax.json"></a>

```
{
  "Transform":"AWS::LanguageExtensions",
  "Resources":{
    ...
  }
}
```

### YAML
<a name="aws-languageextensions-syntax.yaml"></a>

```
Transform: AWS::LanguageExtensions
Resources:
  ...
```

Die Transformation `AWS::LanguageExtensions` ist eine eigenständige Deklaration ohne zusätzliche Parameter.

## Unterstützung für zusätzliche Funktionen
<a name="aws-languageextensions-supported-functions"></a>

Die Transformation `AWS::LanguageExtensions` unterstützt die folgenden zusätzlichen Funktionen:
+ [`Fn::ForEach`](intrinsic-function-reference-foreach.md)
+ [`Fn::Length`](intrinsic-function-reference-length.md)
+ [`Fn::ToJsonString`](intrinsic-function-reference-ToJsonString.md)

## Überlegungen
<a name="aws-languageextensions-considerations"></a>

Bei der Verwendung der `AWS::LanguageExtensions`-Transformation ist Folgendes zu beachten:
+ Wenn Sie einen Stack aktualisieren, der die `AWS::LanguageExtensions` Transformation verwendet, empfehlen wir, die Option **Vorhandene Vorlage verwenden** in der CloudFormation Konsole oder die entsprechende Befehlszeilenoption nicht zu verwenden`--use-previous-template`. Die Transformation `AWS::LanguageExtensions` löst Parameter während der Verarbeitung in Literalwerte auf. Wenn Sie verwenden`--use-previous-template`, CloudFormation verwendet diese verarbeitete Vorlage mit den alten Literalwerten, wodurch verhindert wird, dass neue Parameterwerte und Systems Manager Manager-Parameteraktualisierungen angewendet werden. Geben Sie stattdessen die ursprüngliche Vorlage an, um sicherzustellen, dass die Parameter mit den aktuellen Werten neu aufgelöst werden.
+ Kurzform-YAML-Syntax wird in einer Vorlage für intrinsische Funktionen nicht unterstützt, die nur von der `AWS::LanguageExtensions`-Transformation bereitgestellt wird. Verwenden Sie explizite Verweise auf diese Funktionen. Verwenden Sie z. B. `Fn::Length` statt `!Length`.
+ Die AWS SAM CLI unterstützt derzeit nicht die `Fn::ForEach` intrinsische Funktion der `AWS::LanguageExtensions` Transformation.
+ Nutzen Sie ein Listenformat, wenn Sie mehrere Transformationen verwenden. Wenn Sie benutzerdefinierte Makros verwenden, platzieren Sie AWS bereitgestellte Transformationen hinter Ihren benutzerdefinierten Makros. Wenn Sie sowohl `AWS::LanguageExtensions`- als auch `AWS::Serverless`-Transformationen verwenden, muss die `AWS::LanguageExtensions`-Transformation in der Liste vor der `AWS::Serverless`-Transformation stehen.
+ Funktionen und Attribute, die von der Transformation `AWS::LanguageExtensions` bereitgestellt werden, werden nur in den Abschnitten,`Resources` `Conditions`und `Outputs` Ihrer Vorlage unterstützt.

## Beispiele
<a name="aws-languageextensions-examples"></a>

Die folgenden Beispiele zeigen, wie Sie die Transformation `AWS::LanguageExtensions` verwenden, um die durch die Transformation definierte intrinsische Funktion `Fn::Length` zu verwenden.

### JSON
<a name="aws-languageextensions-example.json"></a>

```
{
    "AWSTemplateFormatVersion": "2010-09-09",
    "Transform": "AWS::LanguageExtensions",
    "Parameters": {
        "QueueList": {
            "Type": "CommaDelimitedList"
        },
        "QueueNameParam": {
            "Description": "Name for your SQS queue",
            "Type": "String"
        }
    },
    "Resources": {
        "Queue": {
            "Type": "AWS::SQS::Queue",
            "Properties": {
                "QueueName": {
                    "Ref": "QueueNameParam"
                },
                "DelaySeconds": {
                    "Fn::Length": {
                        "Ref": "QueueList"
                    }
                }
            }
        }
    }
}
```

### YAML
<a name="aws-languageextensions-example.yaml"></a>

```
AWSTemplateFormatVersion: 2010-09-09
Transform: AWS::LanguageExtensions
Parameters:
  QueueList:
    Type: CommaDelimitedList
  QueueNameParam:
    Description: Name for your SQS queue
    Type: String
Resources:
  Queue:
    Type: AWS::SQS::Queue
    Properties:
      QueueName: !Ref QueueNameParam
      DelaySeconds:
        'Fn::Length': !Ref QueueList
```

## Zugehörige Ressourcen
<a name="aws-languageextensions-related-resources"></a>

Weitere Beispiele finden Sie in den folgenden Themen.
+ [`Fn::ForEach`](intrinsic-function-reference-foreach.md)
+ [`Fn::Length`](intrinsic-function-reference-length.md)
+ [`Fn::ToJsonString`](intrinsic-function-reference-ToJsonString.md)
+ [`Ref`](intrinsic-function-reference-ref.md)
+ [`Fn::GetAtt`](intrinsic-function-reference-getatt.md)
+ [`Fn::FindInMap enhancements`](intrinsic-function-reference-findinmap-enhancements.md)

*Allgemeine Informationen zur Verwendung von Makros finden Sie im Benutzerhandbuch unter [Durchführen einer benutzerdefinierten Verarbeitung von CloudFormation Vorlagen mit Vorlagenmakros](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-macros.html).AWS CloudFormation *