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 SAM anatomía de la plantilla
Un archivo AWS SAM de plantilla sigue de cerca el formato de un archivo de CloudFormation plantilla, que se describe en Anatomía de la plantilla de la Guía del AWS CloudFormation usuario. Las principales diferencias entre los archivos AWS SAM de CloudFormation plantilla y los archivos de plantilla son las siguientes:
-
Declaración de transformación. La declaración
Transform: AWS::Serverless-2016-10-31es obligatoria para los archivos de plantilla de AWS SAM . Esta declaración identifica un archivo CloudFormation de plantilla como un archivo AWS SAM de plantilla. Para obtener más información, consulta la Transformación en la AWS CloudFormation Guía del usuario de . -
Sección Globals. La
Globalssección es exclusiva de AWS SAM. Define las propiedades que son comunes a todas las funciones sin servidor y APIs. Todos losAWS::Serverless::StateMachinerecursosAWS::Serverless::FunctionAWS::Serverless::Api,AWS::Serverless::CapacityProvider,AWS::Serverless::HttpApiAWS::Serverless::SimpleTable, y heredan las propiedades que se definen en laGlobalssección. Para obtener más información, consulta Sección Globals de la plantilla de AWS SAM. -
Sección de recursos. En AWS SAM las plantillas, la
Resourcessección puede contener una combinación de CloudFormation recursos y AWS SAM recursos. Para obtener más información sobre CloudFormation los recursos, consulte la referencia sobre los tipos de AWS recursos y propiedades en la Guía del AWS CloudFormation usuario. Para obtener más información sobre AWS SAM los recursos, consulteAWS SAM recursos y propiedades.
Todas las demás secciones de un archivo de AWS SAM plantilla corresponden a la sección del archivo de CloudFormation 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 globalsDescription:StringMetadata:template metadataParameters:set of parametersMappings:set of mappingsConditions:set of conditionsResources:set of resourcesOutputs:set of outputs
Secciones de la plantilla
AWS SAM las plantillas pueden incluir varias secciones principales. Solo se requieren las secciones Transform y Resources.
Puedes incluir las secciones de la plantilla en cualquier orden. Sin embargo, si usa extensiones de idioma, debe agregar AWS::LanguageExtensions antes de la transformación sin servidor (es decir, antes de AWS::Serverless-2016-10-31), como se muestra en el siguiente ejemplo:
Transform: - AWS::LanguageExtensions - AWS::Serverless-2016-10-31
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 AWS SAM caso de las plantillas, debe 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 CloudFormation Guía del usuario de .
- Globals (opcional)
-
Propiedades comunes a todas las funciones sin servidor y a APIs las tablas sencillas. Todos los
AWS::Serverless::StateMachinerecursosAWS::Serverless::FunctionAWS::Serverless::Api,AWS::Serverless::CapacityProvider,AWS::Serverless::HttpApiAWS::Serverless::SimpleTable, y heredan las propiedades que se definen en laGlobalssección.Esta sección es exclusiva de. AWS SAM No hay una sección correspondiente en las plantillas de CloudFormation .
- Descripción (opcional)
-
Una cadena de texto que describe la plantilla.
Esta sección se corresponde directamente con la
Descriptionsección de CloudFormation plantillas. - Metadatos (opcional)
-
Objetos que proporcionan información adicional acerca de la plantilla.
Esta sección se corresponde directamente con la
Metadatasección de CloudFormation plantillas. - 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
ResourcesyOutputsde la plantilla. Los objetos que se declaran en la secciónParametershacen que el comando sam deploy --guided presente solicitudes adicionales al usuario.Los valores que se transfieren mediante el parámetro
--parameter-overridesdel 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 Archivo de configuración de la CLI de AWS SAM. - 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::FindInMapen las seccionesResourcesyOutputs.Esta sección se corresponde directamente con la
Mappingssección de CloudFormation plantillas. - 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
Conditionssección de CloudFormation plantillas. - Recursos (obligatorio)
-
Los recursos de la pila y sus propiedades, como una instancia de Amazon Elastic Compute Cloud (Amazon EC2) o un depósito de Amazon Simple Storage Service (Amazon S3). Puedes consultar los recursos en las secciones
ResourcesyOutputsde la plantilla.Esta sección es similar a la sección
Resourcesde plantillas de CloudFormation . En AWS SAM las plantillas, esta sección puede contener AWS SAM recursos además de los CloudFormation recursos. - Salidas (opcional)
-
Los valores que se devuelven siempre que ve las propiedades de su pila. Por ejemplo, puede declarar un resultado para el nombre de un bucket de S3 y, a continuación, llamar al comando
aws cloudformation describe-stacksAWS Command Line Interface (AWS CLI) para ver el nombre.Esta sección se corresponde directamente con la sección
Outputsde plantillas de CloudFormation .
Pasos a seguir a continuación
Para descargar e implementar un ejemplo de aplicación sin servidor que contenga un archivo de AWS SAM plantilla, consulta Empezar con AWS SAM y sigue las instrucciones que se indican enTutorial: Implemente una aplicación Hello World con AWS SAM.