Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.
Sección Globals de la plantilla de AWS SAM
A veces, los recursos que declaras en una AWS SAM plantilla tienen configuraciones comunes. Por ejemplo, es posible que tenga una aplicación con varios recursos de AWS::Serverless::Function
que tengan configuraciones Runtime
, Memory
, VPCConfig
, Environment
y Cors
idénticas. En lugar de duplicar esta información en todos los recursos, puede declararlos una vez en la sección Globals
y dejar que los recursos los hereden.
La Globals
sección admite los siguientes tipos AWS SAM de recursos:
-
AWS::Serverless::Api
-
AWS::Serverless::Function
-
AWS::Serverless::HttpApi
-
AWS::Serverless::SimpleTable
-
AWS::Serverless::StateMachine
Ejemplo:
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
En este ejemplo, ambos HelloWorldFunction
ThumbnailFunction
utilizan «nodejs12.x» paraRuntime
, «180" segundos para y «index.handler» paraTimeout
. Handler
HelloWorldFunction
añade la variable de MESSAGE entorno, además del _ heredado. TABLE NAME ThumbnailFunction
hereda todas las Globals
propiedades y añade una fuente de API eventos.
Recursos y propiedades compatibles
AWS SAM admite los siguientes recursos y propiedades.
Globals: Api: AccessLogSetting: Auth: BinaryMediaTypes: CacheClusterEnabled: CacheClusterSize: CanarySetting: Cors: DefinitionUri: Domain: EndpointConfiguration: GatewayResponses: MethodSettings: MinimumCompressionSize: Name: OpenApiVersion: PropagateTags: TracingEnabled: Variables: Function: Architectures: AssumeRolePolicyDocument: AutoPublishAlias: CodeSigningConfigArn: CodeUri: DeadLetterQueue: DeploymentPreference: Description: Environment: EphemeralStorage: EventInvokeConfig: FileSystemConfigs: FunctionUrlConfig: Handler: KmsKeyArn: Layers: LoggingConfig: MemorySize: PermissionsBoundary: PropagateTags: ProvisionedConcurrencyConfig: RecursiveLoop: ReservedConcurrentExecutions: RolePath: Runtime: RuntimeManagementConfig: SnapStart: SourceKMSKeyArn: Tags: Timeout: Tracing: VpcConfig: HttpApi: AccessLogSettings: Auth: PropagateTags: StageVariables: Tags: SimpleTable: SSESpecification: StateMachine: PropagateTags:
nota
No se admiten recursos y propiedades que no se incluyan en la lista anterior. Algunas de las razones por las que no se admiten son: 1) Presentan posibles problemas de seguridad o 2) Hacen que la plantilla sea difícil de entender.
Implícito APIs
AWS SAM se crea de forma implícita APIs al declarar una API en la Events
sección. Se puede utilizar Globals
para anular todas las propiedades de lo implícito. APIs
Propiedades anulables
Los recursos pueden anular las propiedades que declare en la sección Globals
. Por ejemplo, puede añadir nuevas variables a un mapa de variables de entorno o puede anular las variables declaradas globalmente. Sin embargo, el recurso no puede eliminar una propiedad especificada en la sección Globals
.
De forma más general, la sección Globals
declara las propiedades que comparten todos los recursos. Algunos recursos pueden proporcionar nuevos valores para las propiedades declaradas globalmente, pero no pueden eliminarlos. Si algunos recursos usan una propiedad pero otros no, no debe declararlos en la sección Globals
.
En las secciones siguientes, se describe cómo funciona la anulación para distintos tipos de datos.
Se sustituyen los tipos de datos primitivos
Entre estos tipos de datos primitivos se incluyen cadenas, números, valores booleanos, etc.
El valor especificado en la sección Resources
reemplaza al valor de la sección Globals
.
Ejemplo:
Globals: Function: Runtime: nodejs12.x Resources: MyFunction: Type: AWS::Serverless::Function Properties: Runtime: python3.9
El Runtime
para MyFunction
está establecido en python3.9
.
Los mapas se fusionan
Los mapas también se conocen como diccionarios o colecciones de pares de clave-valor.
Las entradas de mapas de la sección Resources
se fusionan con las entradas de mapas globales. Si hay duplicados, la entrada de la sección Resource
anula la entrada de la sección Globals
.
Ejemplo:
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
Las variables de entorno MyFunction
se establecen de la siguiente manera:
{ "STAGE": "Production", "TABLE_NAME": "resource-table", "NEW_VAR": "hello" }
Las listas son acumulativas
Las listas también se conocen como matrices.
Las entradas de la lista de la sección Globals
se anteponen a la lista de la sección Resources
.
Ejemplo:
Globals: Function: VpcConfig: SecurityGroupIds: - sg-123 - sg-456 Resources: MyFunction: Type: AWS::Serverless::Function Properties: VpcConfig: SecurityGroupIds: - sg-first
Los SecurityGroupIds
para la VpcConfig
de MyFunction
establecen de la siguiente manera:
[ "sg-123", "sg-456", "sg-first" ]