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 -Cors
Konfigurationen 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 Timeout
und „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" ]