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 identicheRuntime
Memory
VPCConfig
Environment
,, 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::Function
AWS::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
. HelloWorldFunction
aggiunge la variabile di ambiente MESSAGE, oltre alla variabile TABLE_NAME ereditata. ThumbnailFunction
eredita 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:
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
SecurityGroupIds
I formMyFunction
VpcConfig
sono impostati come segue:
[ "sg-123", "sg-456", "sg-first" ]