Abschnitt „Globals“ der Vorlage AWS SAM - AWS Serverless Application Model

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

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 identischeRuntime,Memory, VPCConfigEnvironment, 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::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ürRuntime, „180" Sekunden für und „index.handler“ fürTimeout. Handler HelloWorldFunctionfügt die MESSAGE Umgebungsvariable zusätzlich zur geerbten Variable _ hinzu. TABLE NAME ThumbnailFunctionerbt alle Globals Eigenschaften und fügt eine API Ereignisquelle hinzu.

Unterstützte Ressourcen und Eigenschaften

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: Function: Architectures: AssumeRolePolicyDocument: AutoPublishAlias: CodeSigningConfigArn: CodeUri: DeadLetterQueue: DeploymentPreference: Description: Environment: EphemeralStorage: EventInvokeConfig: FileSystemConfigs: FunctionUrlConfig: Handler: KmsKeyArn: Layers: LoggingConfig: MemorySize: PermissionsBoundary: PropagateTags: ProvisionedConcurrencyConfig: RecursiveLoop: ReservedConcurrentExecutions: RolePath: Runtime: RuntimeManagementConfig: SnapStart: SourceKMSKeyArn: Tags: Timeout: Tracing: 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

AWS SAM erzeugt implizit, APIs wenn Sie API im Abschnitt eine deklarieren. Events Sie können verwendenGlobals, um alle Eigenschaften von implicit APIs zu überschreiben.

Überschreibbare Eigenschaften

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

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 gesetztpython3.9.

Karten werden zusammengeführt

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

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" ]