

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::Serverless`-Transformation
<a name="transform-aws-serverless"></a>

In diesem Thema wird beschrieben, wie Sie die `AWS::Serverless` Transformation verwenden, um eine in der AWS SAM-Syntax ( AWS Serverless Application Model) geschriebene Vorlage zu verarbeiten und sie in eine konforme CloudFormation Vorlage umzuwandeln. 

Weitere Informationen zur Verwendung der `AWS::Serverless`-Transformation finden Sie unter [AWS SAM transform](https://github.com/aws/serverless-application-model) on GitHub.

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

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

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

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

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

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

```
{
  "Transform":"AWS::Serverless-2016-10-31",
  "Resources":{
    ...
  }
}
```

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

```
Transform: AWS::Serverless-2016-10-31
Resources:
  ...
```

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

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

Die folgenden Beispiele zeigen, wie Sie die `AWS::Serverless`-Transformation und die AWS SAM -Syntax verwenden, um die Deklaration einer Lambda-Funktion und ihre Ausführungsrolle zu vereinfachen.

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

```
{
  "Transform":"AWS::Serverless-2016-10-31",
  "Resources":{
    "MyFunction":{
      "Type":"AWS::Serverless::Function",
      "Properties":{
        "Handler":"index.handler",
        "Runtime":"nodejs20.x",
        "CodeUri":"s3://amzn-s3-demo-bucket/MySourceCode.zip"
      }
    }
  }
}
```

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

```
Transform: AWS::Serverless-2016-10-31
Resources:
  MyFunction:
    Type: AWS::Serverless::Function
    Properties:
      Handler: index.handler
      Runtime: nodejs20.x
      CodeUri: 's3://amzn-s3-demo-bucket/MySourceCode.zip'
```

Wenn Sie einen Änderungssatz anhand der Vorlage erstellen, CloudFormation wird die durch die Transformation definierte AWS SAM Syntax erweitert. Die verarbeitete Vorlage erweitert die Ressource `AWS::Serverless::Function` und deklariert eine Lambda-Funktion und eine Ausführungsrolle.

```
{
  "Resources": {
    "MyFunction": {
      "Type": "AWS::Lambda::Function",
      "Properties": {
        "Handler": "index.handler",
        "Code": {
          "S3Bucket": "amzn-s3-demo-bucket",
          "S3Key": "MySourceCode.zip"
        },
        "Role": {
          "Fn::GetAtt": ["MyFunctionRole", "Arn"]
        },
        "Runtime": "nodejs20.x"
      }
    },
    "MyFunctionRole": {
      "Type": "AWS::IAM::Role",
      "Properties": {
        "ManagedPolicyArns": ["arn:aws:iam::aws:policy/service-role/AWSLambdaBasicExecutionRole"],
        "AssumeRolePolicyDocument": {
          "Version": "2012-10-17",		 	 	 
          "Statement": [{
            "Action": ["sts:AssumeRole"],
            "Effect": "Allow",
            "Principal": {
              "Service": ["lambda.amazonaws.com"]
            }
          }]
        }
      }
    }
  }
}
```

## Verwenden von `AWS::Serverless` mit `AWS::LanguageExtensions`
<a name="aws-serverless-language-extensions"></a>

Wenn Sie die Transformationen `AWS::Serverless` und `AWS::LanguageExtensions` verwenden, erfordert die Referenzierung von Ressourcen wie `AWS::ApiGateway::Stage` eine spezielle Syntax, wenn der Stufenname als Nicht-`NoEcho`-Parameterwert übergeben wird.

Verwenden Sie diese Option, um die logische ID-Referenz `Fn::Sub` zu generieren, anstatt die AWS SAM Syntax für die Referenz (`MyApi.Stage`) zu verwenden. Beispiel, `"Ref": {"Fn::Sub": "${MyApi}${StageName}Stage"}`. Dadurch wird zur Laufzeit die richtige logische ID erstellt.

Der Grund für dieses spezielle Format ist, dass diese beiden Transformationen Werte unterschiedlich behandeln:
+ `AWS::LanguageExtensions` löst intrinsische Funktionen in ihre tatsächlichen Werte auf.
+ `AWS::Serverless`erzeugt unterschiedliche logische Werte, IDs je nachdem, ob sie einen statischen Wert oder eine systeminterne Funktion empfängt.

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

[Weitere Informationen zu serverlosen Anwendungen und dem AWS Serverless Application Model (AWS SAM) finden Sie im Entwicklerhandbuch.AWS Serverless Application Model](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/what-is-sam.html)

Informationen zu den spezifischen Ressourcen- und Eigenschaftstypen finden Sie unter [AWS SAM Ressourcen und Eigenschaften](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-specification-resources-and-properties.html) im *AWS Serverless Application Model Entwicklerhandbuch*. AWS SAM

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