

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.

# Abschnitt „Globals“ der Vorlage AWS SAM
<a name="sam-specification-template-anatomy-globals"></a>

Manchmal haben Ressourcen, die Sie in einer AWS SAM Vorlage deklarieren, gemeinsame Konfigurationen. Beispielsweise haben Sie möglicherweise eine Anwendung mit mehreren `AWS::Serverless::Function` Ressourcen, die identische`Runtime`,`Memory`, `VPCConfig``Environment`, und `Cors` Konfigurationen haben. Anstatt diese Informationen in jeder Ressource zu duplizieren, können Sie sie einmal in dem `Globals` Abschnitt deklarieren und Ihre Ressourcen sie erben lassen.

Der `Globals` Abschnitt unterstützt die folgenden AWS SAM Ressourcentypen:
+ `AWS::Serverless::Api`
+ `AWS::Serverless::CapacityProvider`
+ `AWS::Serverless::Function`
+ `AWS::Serverless::HttpApi`
+ `AWS::Serverless::SimpleTable`
+ `AWS::Serverless::StateMachine`

Beispiel:

```
Globals:
  Function:
    Runtime: nodejs12.x
    Timeout: 180
    Handler: index.handler
    Environment:
      Variables:
        TABLE_NAME: data-table

Resources:
  HelloWorldFunction:
    Type: AWS::Serverless::Function
    Properties:
      Environment:
        Variables:
          MESSAGE: "Hello From SAM"

  ThumbnailFunction:
    Type: AWS::Serverless::Function
    Properties:
      Events:
        Thumbnail:
          Type: Api
          Properties:
            Path: /thumbnail
            Method: POST
```

In diesem Beispiel `ThumbnailFunction` verwenden Sie beide `HelloWorldFunction` und „nodejs12.x“ für`Runtime`, „180" Sekunden für und „index.handler“ für`Timeout`. `Handler` `HelloWorldFunction`fügt die Umgebungsvariable MESSAGE zusätzlich zur geerbten Datei TABLE\$1NAME hinzu. `ThumbnailFunction`erbt alle `Globals` Eigenschaften und fügt eine API-Ereignisquelle hinzu.

## Unterstützte Ressourcen und Eigenschaften
<a name="sam-specification-template-anatomy-globals-supported-resources-and-properties"></a>

AWS SAM unterstützt die folgenden Ressourcen und Eigenschaften.

```
Globals:
  Api:
    AccessLogSetting:
    Auth:
    BinaryMediaTypes:
    CacheClusterEnabled:
    CacheClusterSize:
    CanarySetting:
    Cors:
    DefinitionUri:
    Domain:
    EndpointConfiguration:
    GatewayResponses:
    MethodSettings:
    MinimumCompressionSize:
    Name:
    OpenApiVersion:
    PropagateTags:
    TracingEnabled:
    Variables:
  
  CapacityProvider:
    InstanceRequirements:
    KmsKeyArn:
    OperatorRole:
    PropagateTags:
    ScalingConfig:
    Tags:
    VpcConfig:
  
  Function:
    Architectures:
    AssumeRolePolicyDocument:
    AutoPublishAlias:
    AutoPublishAliasAllProperties:
    CapacityProviderConfig:
    CodeSigningConfigArn:
    CodeUri:
    DeadLetterQueue:
    DeploymentPreference:
    Description:
    DurableConfig:
    Environment:
    EphemeralStorage:
    EventInvokeConfig:
    FileSystemConfigs:
    FunctionScalingConfig:
    FunctionUrlConfig:
    Handler:
    KmsKeyArn:
    Layers:
    LoggingConfig:
    MemorySize:
    PermissionsBoundary:
    PropagateTags:
    ProvisionedConcurrencyConfig:
    PublishToLatestPublished:
    RecursiveLoop:
    ReservedConcurrentExecutions:
    RolePath:
    Runtime:
    RuntimeManagementConfig:
    SnapStart:
    SourceKMSKeyArn:
    Tags:
    TenancyConfig:
    Timeout:
    Tracing:
    VersionDeletionPolicy:
    VpcConfig:

  HttpApi:
    AccessLogSettings:
    Auth:
    PropagateTags:
    StageVariables:
    Tags:

  SimpleTable:
    SSESpecification:
    
  StateMachine:
    PropagateTags:
```

**Anmerkung**  
Ressourcen und Eigenschaften, die nicht in der vorherigen Liste enthalten sind, werden nicht unterstützt. Zu den Gründen, warum sie nicht unterstützt werden, gehören: 1) Sie führen zu potenziellen Sicherheitsproblemen oder 2) Sie machen die Vorlage schwer verständlich.

## Implizit APIs
<a name="sam-specification-template-anatomy-globals-implicit-apis"></a>

AWS SAM erzeugt *implizit, APIs* wenn Sie eine API in dem `Events` Abschnitt deklarieren. Sie können verwenden`Globals`, um alle Eigenschaften von implicit APIs zu überschreiben.

## Überschreibbare Eigenschaften
<a name="sam-specification-template-anatomy-globals-overrideable"></a>

Ressourcen können die Eigenschaften, die Sie im Abschnitt deklarieren, außer Kraft setzen. `Globals` Sie können beispielsweise einer Umgebungsvariablenübersicht neue Variablen hinzufügen oder global deklarierte Variablen überschreiben. Die Ressource kann jedoch keine Eigenschaft entfernen, die im `Globals` Abschnitt angegeben ist.

Allgemeiner ausgedrückt werden in `Globals` diesem Abschnitt Eigenschaften deklariert, die alle Ihre Ressourcen gemeinsam nutzen. Einige Ressourcen können neue Werte für global deklarierte Eigenschaften bereitstellen, sie können sie jedoch nicht entfernen. Wenn einige Ressourcen eine Eigenschaft verwenden, andere jedoch nicht, dürfen Sie sie nicht in dem `Globals` Abschnitt deklarieren.

In den folgenden Abschnitten wird beschrieben, wie das Überschreiben für verschiedene Datentypen funktioniert.

### Primitive Datentypen werden ersetzt
<a name="sam-specification-template-anatomy-globals-overrideable-primitives"></a>

Zu den primitiven Datentypen gehören Zeichenketten, Zahlen, Boolesche Werte usw.

Der im `Resources` Abschnitt angegebene Wert ersetzt den Wert im `Globals` Abschnitt.

Beispiel:

```
Globals:
  Function:
    Runtime: nodejs12.x

Resources:
  MyFunction:
    Type: AWS::Serverless::Function
    Properties:
      Runtime: python3.9
```

Der `Runtime` Wert für `MyFunction` ist auf gesetzt`python3.9`.

### Karten werden zusammengeführt
<a name="sam-specification-template-anatomy-globals-overrideable-maps"></a>

Karten werden auch als Wörterbücher oder Sammlungen von Schlüssel-Wert-Paaren bezeichnet.

Karteneinträge in `Resources` diesem Abschnitt werden mit globalen Karteneinträgen zusammengeführt. Wenn Duplikate vorhanden sind, überschreibt der `Resource` Abschnittseintrag den `Globals` Abschnittseintrag.

Beispiel:

```
Globals:
  Function:
    Environment:
      Variables:
        STAGE: Production
        TABLE_NAME: global-table

Resources:
  MyFunction:
    Type: AWS::Serverless::Function
    Properties:
      Environment:
        Variables:
          TABLE_NAME: resource-table
          NEW_VAR: hello
```

Die Umgebungsvariablen von `MyFunction` sind wie folgt gesetzt:

```
{
  "STAGE": "Production",
  "TABLE_NAME": "resource-table",
  "NEW_VAR": "hello"
}
```

### Listen sind additiv
<a name="sam-specification-template-anatomy-globals-overrideable-lists"></a>

Listen werden auch als Arrays bezeichnet.

Listeneinträge im `Globals` Abschnitt werden der Liste im Abschnitt vorangestellt. `Resources`

Beispiel:

```
Globals:
  Function:
    VpcConfig:
      SecurityGroupIds:
        - sg-123
        - sg-456

Resources:
  MyFunction:
    Type: AWS::Serverless::Function
    Properties:
      VpcConfig:
        SecurityGroupIds:
          - sg-first
```

Die `SecurityGroupIds` `MyFunction` For-Werte `VpcConfig` sind wie folgt festgelegt:

```
[ "sg-123", "sg-456", "sg-first" ]
```