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.
Anatomía de la plantilla de AWS SAM
Un archivo de plantilla de AWS SAM sigue muy de cerca el formato de un archivo de plantilla de AWS CloudFormation, que se describe en Anatomía de las plantillas de la Guía del usuario de AWS CloudFormation. Las principales diferencias entre los archivos de plantilla de AWS SAM y los archivos de plantilla de AWS CloudFormation son las siguientes:
-
Declaración de transformación. La declaración
Transform: AWS::Serverless-2016-10-31
es obligatoria para los archivos de plantilla de AWS SAM. Esta declaración identifica un archivo de plantilla de AWS CloudFormation como archivo de plantilla de AWS SAM. Para obtener más información, consulta la Transformación en la AWS CloudFormationGuía del usuario de . -
Sección Globals. La sección
Globals
es exclusiva de AWS SAM. Define las propiedades que son comunes a todas las funciones y API sin servidor. Todos los recursosAWS::Serverless::Function
,AWS::Serverless::Api
yAWS::Serverless::SimpleTable
heredan las propiedades que se definen en la secciónGlobals
. Para obtener más información, consulta Sección Globals de la plantilla de AWS SAM. -
Sección de recursos. En las plantillas de AWS SAM, la sección
Resources
puede contener una combinación de recursos de AWS CloudFormation y de AWS SAM. Para obtener más información acerca de los tipos de recursos de AWS CloudFormation, consulta Referencia de tipos de recursos y propiedades de AWS en la Guía del usuario de AWS CloudFormation. Para obtener más información acerca de recursos de AWS SAM, consulta AWS SAM recursos y propiedades.
Todas las demás secciones de un archivo de plantilla de AWS SAM corresponden a la sección del archivo de plantilla AWS CloudFormation del mismo nombre.
YAML
El siguiente ejemplo muestra un fragmento de código de plantilla con formato YAML.
Transform: AWS::Serverless-2016-10-31 Globals:
set of globals
Description:String
Metadata:template metadata
Parameters:set of parameters
Mappings:set of mappings
Conditions:set of conditions
Resources:set of resources
Outputs:set of outputs
Secciones de la plantilla
Las plantillas de AWS SAM incluyen varias secciones principales. Solo se requieren las secciones Transform
y Resources
.
Puedes incluir las secciones de la plantilla en cualquier orden. Sin embargo, si usas extensiones de idioma, debes añadirlas AWS::LanguageExtensions
antes de la transformación sin servidor (es decir, antesAWS::Serverless-2016-10-31
), como se muestra en el siguiente ejemplo:
Transform: - AWS::LanguageExtensions - AWS::Serverless-2016-10-31
Sin embargo, al crear la plantilla, puede ser útil utilizar el orden lógico de la siguiente lista. Esto se debe a que los valores de una sección pueden hacer referencia a valores de una sección anterior.
- Transformar (obligatorio)
-
En el caso de las plantillas de AWS SAM, debes incluir esta sección con un valor de
AWS::Serverless-2016-10-31
.Las transformaciones adicionales son opcionales. Para obtener más información, consulta la Transformación en la AWS CloudFormationGuía del usuario de .
- Globals (opcional)
-
Propiedades que son comunes a todas las funciones, tablas simples y API sin servidor. Todos los recursos
AWS::Serverless::Function
,AWS::Serverless::Api
yAWS::Serverless::SimpleTable
heredan las propiedades que se definen en la secciónGlobals
.La sección es exclusiva de AWS SAM. No hay una sección correspondiente en las plantillas de AWS CloudFormation.
- Descripción (opcional)
-
Una cadena de texto que describe la plantilla.
Esta sección se corresponde directamente con la sección
Description
de plantillas de AWS CloudFormation. - Metadatos (opcional)
-
Objetos que proporcionan información adicional acerca de la plantilla.
Esta sección se corresponde directamente con la sección
Metadata
de plantillas de AWS CloudFormation. - Parámetros (opcional)
-
Valores que se van a pasar a tu plantilla en tiempo de ejecución (al crear o actualizar una pila). Puedes consultar los parámetros en las secciones
Resources
yOutputs
de la plantilla. Los objetos que se declaran en la secciónParameters
hacen que el comando sam deploy --guided presente solicitudes adicionales al usuario.Los valores que se transfieren mediante el parámetro
--parameter-overrides
del comandosam deploy
(y las entradas del archivo de configuración) tienen prioridad sobre las entradas del archivo de plantilla de AWS SAM. Para obtener más información sobre el comandosam deploy
, consulta sam deploy en la referencia de comandos de la AWS SAM CLI. Para obtener más información sobre el archivo de configuración, consulta AWS SAM CLI Archivo de configuración de la de . - Mapeos (opcional)
-
Un mapeo de claves y valores asociados que puede utilizar para especificar valores de parámetros condicionales, similar a una tabla de búsqueda. Puede asociar una clave a un valor correspondiente mediante la función intrínseca
Fn::FindInMap
en las seccionesResources
yOutputs
.Esta sección se corresponde directamente con la sección
Mappings
de plantillas de AWS CloudFormation. - Condiciones (opcional)
-
Condiciones que controlan si determinados recursos se crean o si a determinadas propiedades de recursos se les asigna un valor durante la creación de la pila o la actualización. Por ejemplo, puede crear un recurso condicionalmente que depende de si la pila es para un entorno de prueba o de producción.
Esta sección se corresponde directamente con la sección
Conditions
de plantillas de AWS CloudFormation. - Recursos (obligatorio)
-
Especifica los recursos de la pila y sus propiedades, como, por ejemplo, una de instancia Amazon Elastic Compute Cloud (Amazon EC2) o un bucket de Amazon Simple Storage Service (Amazon S3). Puedes consultar los recursos en las secciones
Resources
yOutputs
de la plantilla.Esta sección es similar a la sección
Resources
de plantillas de AWS CloudFormation. En las plantillas de AWS SAM, esta sección puede contener recursos de AWS SAM además de recursos de AWS CloudFormation. - Salidas (opcional)
-
Los valores que se devuelven siempre que ve las propiedades de su pila. Por ejemplo, puedes declarar una salida para un nombre de bucket de S3 y, a continuación, llamar al comando de la
aws cloudformation describe-stacks
AWS Command Line Interface (AWS CLI) para ver el nombre.Esta sección se corresponde directamente con la sección
Outputs
de plantillas de AWS CloudFormation.
Pasos a seguir a continuación
Para descargar e implementasr un ejemplo de aplicación sin servidor que contenga un archivo de plantilla de AWS SAM, consulta Introducción a AWS SAM y sigue las instrucciones que se indican en Tutorial: Implemente una aplicación Hello World con AWS SAM.