AWS SAMAnatomía de la plantilla - 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.

AWS SAMAnatomía de la plantilla

UnAWS SAMfichero de plantilla sigue de cerca el formato de unAWS CloudFormationarchivo de plantilla, que se describe enAnatomía de la plantillaen laAWS CloudFormationGuía del usuario de. Las principales diferencias entreAWS SAMarchivos de plantilla yAWS CloudFormationlos archivos de plantilla son los siguientes:

  • Declaración de transformación. La declaraciónTransform: AWS::Serverless-2016-10-31es necesario paraAWS SAMarchivos de plantilla. Esta declaración identifica unAWS CloudFormationArchivo de plantilla comoAWS SAMArchivo de plantilla. Para obtener más información acerca de las transformaciones, consulteTransformaciónen laAWS CloudFormationGuía del usuario de.

  • Sección Globals. LaGlobalssección es exclusiva deAWS SAM. Define las propiedades que son comunes a todas las funciones y API sin servidor. Todos losAWS::Serverless::Function,AWS::Serverless::Api, yAWS::Serverless::SimpleTablelos recursos heredan las propiedades que se definen enGlobalssección. Para obtener más información acerca de esta sección, consulteSección Globals delAWS SAMplantilla.

  • Sección Resources. EnAWS SAM templates the Resourcespuede contener una combinación deAWS CloudFormationrecursos yAWS SAMde AWS. Para obtener más información acerca deAWS CloudFormationrecursos, consulteAWSReferencia de tipos de recursos y propiedades deen laAWS CloudFormationGuía del usuario de. Para obtener más información acerca de recursos de AWS SAM, consulte AWS SAMreferencia de recursos y propiedades.

  • Sección Parameters. Objetos declarados en elParameterscausasam deploy --guidedpara presentar solicitudes adicionales al usuario. Para ver ejemplos de objetos declarados y las solicitudes correspondientes, consultesam deployen laAWS SAMReferencia de los comandos de la CLI.

Todas las demás secciones de unAWS SAMarchivo de plantilla corresponde alAWS CloudFormationsección de archivo de plantilla 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

AWS SAMLas plantillas pueden incluir varias secciones principales. SoloTransformyResourceslas secciones son obligatorias.

Puede incluir secciones de plantilla en cualquier orden. Sin embargo, al crear la plantilla, puede ser útil utilizar el orden lógico que se muestra en la siguiente lista. Esto se debe a que los valores de una sección podrían hacer referencia a valores de una sección anterior.

Transformación (obligatorio)

ParaAWS SAMplantillas, debe incluir esta sección con un valor deAWS::Serverless-2016-10-31.

Las transformaciones adicionales son opcionales. Para obtener más información acerca de las transformaciones, consulteTransformaciónen laAWS CloudFormationGuía del usuario de.

Globals (opcional)

Propiedades comunes a todas las funciones sin servidor, API y tablas sencillas. Todos losAWS::Serverless::Function,AWS::Serverless::Api, yAWS::Serverless::SimpleTablelos recursos heredan las propiedades que se definen enGlobalssección.

Esta sección es específica deAWS SAM. No hay una sección correspondiente enAWS CloudFormationplantillas.

Descripción (opcional)

Una cadena de texto que describe la plantilla.

Esta sección se corresponde directamente con laDescriptionsección deAWS CloudFormationplantillas.

Metadatos (opcional)

Objetos que proporcionan información adicional acerca de la plantilla.

Esta sección se corresponde directamente con laMetadatasección deAWS CloudFormationplantillas.

Parámetros (opcional)

Valores que se van a pasar a su plantilla en tiempo de ejecución (al crear o actualizar una pila). Puede consultar los parámetros en las secciones Resources y Outputs de la plantilla.

Valores que se pasan mediante el--parameter-overridesparámetro desam deploycomando (y las entradas del archivo de configuración) tienen precendencia sobre las entradas delAWS SAMArchivo de plantilla. Para obtener más información acerca desam deploycomando, consultesam deployen laAWS SAMReferencia de los comandos de la CLI. Para obtener más información sobre el archivo de configuración, consulte AWS SAMArchivo de configuración de la CLI.

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 medianteFn::FindInMapfunción intrínseca enResourcesyOutputssecciones.

Esta sección se corresponde directamente con laMappingssección deAWS CloudFormationplantillas.

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 laConditionssección deAWS CloudFormationplantillas.

Recursos (obligatorio)

Los recursos de la pila y sus propiedades, como, por ejemplo, una instancia Amazon Elastic Compute Cloud (Amazon EC2) o un bucket de Amazon Simple Storage Service (Amazon S3). Puede consultar los recursos en las secciones Resources y Outputs de la plantilla.

Esta sección es similar aResourcessección deAWS CloudFormationplantillas. EnAWS SAMplantillas, esta sección puede contenerAWS SAMrecursos además deAWS CloudFormationde AWS.

Salidas (opcional)

Los valores que se devuelven siempre que ve las propiedades de su pila. Por ejemplo, puede declarar una salida para un nombre de bucket de S3 y, a continuación, llamar alaws cloudformation describe-stacks AWS Command Line Interface(AWS CLI) para ver el nombre.

Esta sección se corresponde directamente con laOutputssección deAWS CloudFormationplantillas.

Pasos siguientes

Para descargar e implementar una aplicación sin servidor de ejemplo que contiene unAWS SAMArchivo de plantilla, consulteIntroducción a AWS SAMy siga las instrucciones enTutorial: Implementar una aplicación Hello World.