Sezione Globals delAWS SAM modello - 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 delAWS SAM modello

A volte le risorse dichiarate in unAWS SAM modello hanno configurazioni comuni. Ad esempio, potresti avere un'applicazione con piùAWS::Serverless::Function risorse conCors configurazioni identicheRuntimeMemoryVPCConfigEnvironment,, e. Invece di duplicare queste informazioni in ogni risorsa, puoi dichiararle una volta nellaGlobals sezione e lasciare che le tue risorse le ereditino.

LaGlobals sezione è supportata daAWS::Serverless::FunctionAWS::Serverless::Api,AWS::Serverless::HttpApi, eAWS::Serverless::SimpleTable risorse.

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, entrambiHelloWorldFunction eThumbnailFunction usa «nodejs12.x» perRuntime, «180" secondi perTimeout e «index.handler» perHandler. HelloWorldFunctionaggiunge la variabile di ambiente MESSAGE, oltre alla variabile TABLE_NAME ereditata. ThumbnailFunctioneredita tutte leGlobals proprietà e aggiunge un'origine di eventi API.

Risorse e proprietà supportate

AWS SAMsupporta le seguenti risorse e proprietà.

Globals: Function: Handler: Runtime: CodeUri: DeadLetterQueue: Description: MemorySize: Timeout: VpcConfig: Environment: Tags: Tracing: KmsKeyArn: Layers: AutoPublishAlias: DeploymentPreference: PermissionsBoundary: ReservedConcurrentExecutions: ProvisionedConcurrencyConfig: AssumeRolePolicyDocument: EventInvokeConfig: Architectures: EphemeralStorage: Api: Auth: Name: DefinitionUri: CacheClusterEnabled: CacheClusterSize: Variables: EndpointConfiguration: MethodSettings: BinaryMediaTypes: MinimumCompressionSize: Cors: GatewayResponses: AccessLogSetting: CanarySetting: TracingEnabled: OpenApiVersion: Domain: HttpApi: Auth: AccessLogSettings: StageVariables: Tags: SimpleTable: SSESpecification:
Nota

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

API implicite

AWS SAMcrea API implicite quando si dichiara un'API nellaEvents sezione. Puoi usarloGlobals per sovrascrivere tutte le proprietà delle API implicite.

Proprietà sovrascribili

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

Più in generale, laGlobals 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 rimuoverli. Se alcune risorse utilizzano una proprietà ma altre no, non devi dichiararle nellaGlobals sezione.

Nelle sezioni seguenti viene descritto 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 nellaResources sezione sostituisce il valore nellaGlobals sezione.

Esempio:

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

LaRuntime formaMyFunction è impostata supython3.9.

Le mappe vengono unite

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

Le voci della mappa nellaResources sezione vengono unite alle voci globali della mappa. Se sono presenti duplicati, la voce diResource sezione sostituisce la voce diGlobals sezione.

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 diMyFunction sono impostate come segue:

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

Gli elenchi sono additivi

Gli elenchi sono noti anche come array.

Le voci dell'elencoGlobals nella sezione vengono anteposte all'elenco nellaResources sezione.

Esempio:

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

SecurityGroupIdsI formMyFunctionVpcConfig sono impostati come segue:

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