Sección Globals delAWS SAMplantilla - AWS Serverless Application Model

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 delAWS SAMplantilla

A veces los recursos que declaras en unAWS SAMla plantilla tiene configuraciones comunes. Por ejemplo, es posible que tenga una aplicación con variasAWS::Serverless::Functionrecursos que tienen idénticosRuntime,Memory,VPCConfig,Environment, yCorsconfiguraciones. En lugar de duplicar esta información en cada recurso, puede declararla una vez en elGlobalsy deja que tus recursos los hereden.

LaGlobalsestá soportada por elAWS::Serverless::Function,AWS::Serverless::Api,AWS::Serverless::HttpApi, yAWS::Serverless::SimpleTablede AWS.

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,HelloWorldFunctionyThumbnailFunctionuse «nodejs12.x» paraRuntime, «180" segundos duranteTimeouty «index.handler» paraHandler.HelloWorldFunctionañade la variable de entorno MESSAGE, además de la TABLE_NAME heredada.ThumbnailFunctionhereda todos losGlobalspropiedades y agrega un origen de eventos de API.

Recursos y propiedades admitidos

AWS SAMadmite los siguientes recursos y propiedades.

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

No se admiten los recursos ni las propiedades que no se incluya en la lista anterior. Algunas de las razones para no apoyarlas incluyen: 1) Abren posibles problemas de seguridad, o 2) Hacen que la plantilla sea difícil de entender.

API implícitas

AWS SAMcreaAPI implícitascuando declaras una API en elEventssección. Puede usarGlobalspara anular todas las propiedades de las API implícitas.

Propiedades sobrescribibles

Los recursos pueden sustituir las propiedades declaradas en elGlobalssección. Por ejemplo, puede agregar nuevas variables a un mapa de variables de entorno o anular las variables declaradas globalmente. Sin embargo, el recurso no puede eliminar una propiedad especificada en elGlobalssección.

En términos más generales, elGlobalsdeclara propiedades que comparten todos los recursos. Algunos recursos pueden proporcionar nuevos valores para las propiedades declaradas globalmente, pero no pueden eliminarlas. Si algunos recursos utilizan una propiedad pero otros no, no debe declararlos en elGlobalssección.

En las secciones siguientes, se describe el funcionamiento de la sustitución de diferentes tipos de datos.

Se sustituyen los tipos de datos primitivos

Los tipos de datos primitivos incluyen cadenas, números, booleanos, etc.

El valor especificado en laResourcessustituye el valor de laGlobalssección.

Ejemplo:

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

LaRuntimeparaMyFunctiontoma el valorpython3.6.

Los mapas se fusionan

Los mapas también se conocen como diccionarios o colecciones de pares clave-valor.

Entradas de mapa en elResourcesse fusionan con entradas de mapa globales. Si hay duplicados, elResourceentrada de sección anula elGlobalsentrada de sección.

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 deMyFunctionse han establecido como se indica a continuación:

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

Las listas son aditivas

Las listas también se conocen como matrices.

Lista de entradas en elGlobalsse anteponen a la lista delResourcessección.

Ejemplo:

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

LaSecurityGroupIdsparaMyFunction'sVpcConfigse han establecido como se indica a continuación:

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