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.
Sektion Globales der AWS SAM Vorlage
Manchmal haben Ressourcen, die Sie in einer AWS SAM Vorlage deklarieren, gemeinsame Konfigurationen. Beispielsweise könnten Sie eine Anwendung mit mehreren AWS::Serverless::Function Ressourcen haben, die identische RuntimeMemory, VPCConfigEnvironment, und Cors Konfigurationen haben. Anstatt diese Informationen in jeder Ressource zu duplizieren, können Sie sie einmal im 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 -
AWS::Serverless::MicrovmImage -
AWS::Serverless::NetworkConnector
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 beide HelloWorldFunction und „nodejs12.x“ fürRuntime, „180" Sekunden für und „index.handler“ fürTimeout. Handler HelloWorldFunctionfügt die MESSAGE-Umgebungsvariable zusätzlich zum geerbten TABLE_NAME hinzu. 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: EndpointAccessMode: GatewayResponses: MethodSettings: MinimumCompressionSize: Name: OpenApiVersion: PropagateTags: SecurityPolicy: TracingEnabled: Variables: CapacityProvider: InstanceRequirements: KmsKeyArn: LoggingConfig: ManagedResourceTags: 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: MicrovmImage: BaseImageArn: BaseImageVersion: BuildRoleArn: Hooks: EnvironmentVariables: EgressNetworkConnectors: CpuConfigurations: Resources: AdditionalOsCapabilities: Logging: Tags: PropagateTags: NetworkConnector: OperatorRole: Tags: PropagateTags:
Anmerkung
Alle Ressourcen und Eigenschaften, die nicht in der vorherigen Liste enthalten sind, werden nicht unterstützt. Sie werden u. a. aus folgenden Gründen nicht unterstützt: 1) Sie führen zu potenziellen Sicherheitsproblemen oder 2) Sie erschweren das Verständnis der Vorlage.
Implizite APIs
AWS SAM erstellt implizite APIs, wenn Sie eine API im Abschnitt deklarieren. Events Sie können es verwendenGlobals, um alle Eigenschaften impliziter APIs zu überschreiben.
Überschreibbare Eigenschaften
Ressourcen können die Eigenschaften überschreiben, die Sie in dem 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 in dem Globals Abschnitt angegeben ist.
Allgemeiner ausgedrückt deklariert der Globals Abschnitt Eigenschaften, die alle Ihre Ressourcen gemeinsam haben. 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 im 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
Das Runtime Formular 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 es Duplikate gibt, ü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 auf Folgendes 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 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 Felder MyFunction VpcConfig sind wie folgt gesetzt:
[ "sg-123", "sg-456", "sg-first" ]