Globaler Abschnitt der AWS SAM Vorlage - 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.

Globaler Abschnitt der AWS SAM Vorlage

Manchmal haben Ressourcen, die Sie in einer -AWS SAMVorlage deklarieren, gemeinsame Konfigurationen. Sie könnten beispielsweise eine Anwendung mit mehreren AWS::Serverless::Function Ressourcen haben, die identische Runtime-, -Memory, VPCConfig-Environment, - und -CorsKonfigurationen haben. Anstatt diese Informationen in jeder Ressource zu duplizieren, können Sie sie einmal im Globals Abschnitt deklarieren und sie von Ihren Ressourcen 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 sowohl HelloWorldFunction als auch „nodejs12.x“ für Runtime, „180“ Sekunden für Timeoutund „index.handler“ für Handler. HelloWorldFunction fügt zusätzlich zum geerbten TABLE_NAME die Umgebungsvariable MESSAGE hinzu. ThumbnailFunction erbt 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: CodeUri: DeadLetterQueue: DeploymentPreference: Description: Environment: EphemeralStorage: EventInvokeConfig: Handler: KmsKeyArn: Layers: MemorySize: PermissionsBoundary: PropagateTags: ProvisionedConcurrencyConfig: ReservedConcurrentExecutions: Runtime: Tags: Timeout: Tracing: VpcConfig: HttpApi: AccessLogSettings: Auth: PropagateTags: StageVariables: Tags: SimpleTable: SSESpecification: StateMachine: PropagateTags:
Anmerkung

Alle Ressourcen und Eigenschaften, die nicht in der vorherigen Liste enthalten sind, werden nicht unterstützt. Einige Gründe dafür, sie nicht zu unterstützen, sind: 1) Sie öffnen potenzielle Sicherheitsprobleme oder 2) Sie machen die Vorlage schwer verständlich.

Implizite APIs

AWS SAM erstellt implizite APIs, wenn Sie eine API im Events Abschnitt deklarieren. Sie können verwendenGlobals, um alle Eigenschaften impliziter APIs zu überschreiben.

Überschreibbare Eigenschaften

Ressourcen können die Eigenschaften überschreiben, die Sie im Globals Abschnitt deklarieren. Sie können beispielsweise einer Umgebungsvariablenzuordnung neue Variablen hinzufügen oder global deklarierte Variablen überschreiben. Die Ressource kann jedoch keine Eigenschaft entfernen, die im Globals Abschnitt angegeben ist.

Im Allgemeinen deklariert der Globals Abschnitt Eigenschaften, die alle Ihre Ressourcen gemeinsam nutzen. Einige Ressourcen können neue Werte für global deklarierte Eigenschaften bereitstellen, aber sie können sie nicht entfernen. Wenn einige Ressourcen eine -Eigenschaft verwenden, andere jedoch nicht, dürfen Sie sie nicht im Globals Abschnitt deklarieren.

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

Primitive Datentypen werden ersetzt

Zu den primmitiven Datentypen gehören Zeichenfolgen, 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

Die Runtime für MyFunction ist auf festgelegtpython3.9.

Zuordnungen werden zusammengeführt

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

Karteneinträge im Resources 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 festgelegt:

{ "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 Resources Abschnitt vorangestellt.

Beispiel:

Globals: Function: VpcConfig: SecurityGroupIds: - sg-123 - sg-456 Resources: MyFunction: Type: AWS::Serverless::Function Properties: VpcConfig: SecurityGroupIds: - sg-first

Die SecurityGroupIds für MyFunction VpcConfig werden auf Folgendes festgelegt:

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