View a markdown version of this page

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

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 configurazioni identiche RuntimeMemory, VPCConfigEnvironment, eCors. Invece di duplicare queste informazioni in ogni risorsa, puoi 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::CapacityProvider

  • AWS::Serverless::Function

  • AWS::Serverless::HttpApi

  • AWS::Serverless::SimpleTable

  • AWS::Serverless::StateMachine

  • AWS::Serverless::MicrovmImage

  • AWS::Serverless::NetworkConnector

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

Risorse e proprietà supportate

AWS SAM supporta le seguenti risorse e proprietà.

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

Tutte le risorse e le proprietà non 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 SAM crea API implicite quando si dichiara un'API nella sezione. Events Puoi usarlo Globals per sovrascrivere tutte le proprietà delle API implicite.

Proprietà sostituibili

Le risorse possono sovrascrivere le proprietà dichiarate nella sezione. Globals 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 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 devi 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 anche note 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 ha la precedenza sulla 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 su quanto 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 Globals nella 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" ]