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::Function
recursos que tienen idénticosRuntime
,Memory
,VPCConfig
,Environment
, yCors
configuraciones. En lugar de duplicar esta información en cada recurso, puede declararla una vez en elGlobals
y deja que tus recursos los hereden.
LaGlobals
está soportada por elAWS::Serverless::Function
,AWS::Serverless::Api
,AWS::Serverless::HttpApi
, yAWS::Serverless::SimpleTable
de 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,HelloWorldFunction
yThumbnailFunction
use «nodejs12.x» paraRuntime
, «180" segundos duranteTimeout
y «index.handler» paraHandler
.HelloWorldFunction
añade la variable de entorno MESSAGE, además de la TABLE_NAME heredada.ThumbnailFunction
hereda todos losGlobals
propiedades 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:
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 elEvents
sección. Puede usarGlobals
para anular todas las propiedades de las API implícitas.
Propiedades sobrescribibles
Los recursos pueden sustituir las propiedades declaradas en elGlobals
secció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 elGlobals
sección.
En términos más generales, elGlobals
declara 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 elGlobals
secció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 laResources
sustituye el valor de laGlobals
sección.
Ejemplo:
Globals: Function: Runtime: nodejs12.x Resources: MyFunction: Type: AWS::Serverless::Function Properties: Runtime: python3.6
LaRuntime
paraMyFunction
toma 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 elResources
se fusionan con entradas de mapa globales. Si hay duplicados, elResource
entrada de sección anula elGlobals
entrada 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 deMyFunction
se 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 elGlobals
se anteponen a la lista delResources
sección.
Ejemplo:
Globals: Function: VpcConfig: SecurityGroupIds: - sg-123 - sg-456 Resources: MyFunction: Type: AWS::Serverless::Function Properties: VpcConfig: SecurityGroupIds: - sg-first
LaSecurityGroupIds
paraMyFunction
'sVpcConfig
se han establecido como se indica a continuación:
[ "sg-123", "sg-456", "sg-first" ]