Sezione Globals del modello AWS SAM - AWS Serverless Application Model

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Sezione Globals del modello AWS SAM

A volte le risorse dichiarate in un AWS SAM modello hanno configurazioni comuni. Ad esempio, potresti avere un'applicazione con più AWS::Serverless::Function risorse con configurazioniRuntime, Memory VPCConfigEnvironment, e Cors identiche. Invece di duplicare queste informazioni in ogni risorsa, potete dichiararle una volta nella Globals sezione e lasciare che le risorse le ereditino.

La Globals sezione supporta i seguenti tipi di risorse: AWS SAM

  • AWS::Serverless::Api

  • AWS::Serverless::Function

  • AWS::Serverless::HttpApi

  • AWS::Serverless::SimpleTable

  • AWS::Serverless::StateMachine

Esempio:

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 questo esempio, entrambi ThumbnailFunction utilizzano «nodejs12.x» perRuntime, «180" secondi per HelloWorldFunction e «index.handler» perTimeout. Handler HelloWorldFunctionaggiunge la variabile di ambiente MESSAGE, oltre alla variabile TABLE_NAME ereditata. ThumbnailFunctioneredita tutte le Globals proprietà e aggiunge una fonte di eventi API.

Risorse e proprietà supportate

AWS SAMsupporta le seguenti risorse e proprietà.

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:
Nota

Tutte le risorse e le proprietà che non sono incluse nell'elenco precedente non sono supportate. Alcuni motivi per non supportarle includono: 1) aprono potenziali problemi di sicurezza o 2) rendono il modello difficile da capire.

API implicite

AWS SAMcrea API implicite quando dichiari un'API nella sezione. Events È possibile utilizzare Globals per sovrascrivere tutte le proprietà delle API implicite.

Proprietà sovrascrivibili

Le risorse possono sovrascrivere le proprietà dichiarate nella sezione. Globals Ad esempio, è possibile aggiungere nuove variabili a una mappa di variabili di ambiente oppure sovrascrivere le variabili dichiarate globalmente. Ma la risorsa non può rimuovere una proprietà specificata nella Globals sezione.

Più in generale, la Globals sezione dichiara le proprietà condivise da tutte le risorse. Alcune risorse possono fornire nuovi valori per le proprietà dichiarate a livello globale, ma non possono rimuoverle. Se alcune risorse utilizzano una proprietà ma altre no, non è necessario dichiararle nella Globals sezione.

Le sezioni seguenti descrivono come funziona l'override per diversi tipi di dati.

I tipi di dati primitivi vengono sostituiti

I tipi di dati primitivi includono stringhe, numeri, valori booleani e così via.

Il valore specificato nella Resources sezione sostituisce il valore nella sezione. Globals

Esempio:

Globals: Function: Runtime: nodejs12.x Resources: MyFunction: Type: AWS::Serverless::Function Properties: Runtime: python3.9

Il Runtime for MyFunction è impostato su. python3.9

Le mappe vengono unite

Le mappe sono note anche come dizionari o raccolte di coppie chiave-valore.

Le voci della mappa nella Resources sezione vengono unite alle voci della mappa globale. Se sono presenti duplicati, la voce della Resource sezione sostituisce la voce della sezione. Globals

Esempio:

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

Le variabili di ambiente di MyFunction sono impostate come segue:

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

Gli elenchi sono additivi

Gli elenchi sono noti anche come matrici.

Le voci dell'elenco nella Globals sezione vengono anteposte all'elenco nella sezione. Resources

Esempio:

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

I SecurityGroupIds for MyFunction VpcConfig sono impostati come segue:

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