AWS::Serverless::Function - 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::Serverless::Function

Crea unAWS Lambdafunción, unAWS Identity and Access Management(IAM), función de ejecución y asignaciones de orígenes de eventos que activan la función.

LaAWS::Serverless::FunctionEl recurso también admite elMetadataatributo de recurso, para que puedas instruirAWS SAMpara crear tiempos de ejecución personalizados que requiere su aplicación. Para obtener más información acerca de la creación de tiempos de ejecución personalizados, consulteCreación de Runtimes personalizados.

Sintaxis

Para declarar esta entidad en suAWS Serverless Application Model(AWS SAM), utilice la siguiente sintaxis.

Properties

Architectures

La arquitectura del conjunto de instrucciones para la función.

Para obtener más información acerca de esta propiedad, consulteArquitecturas del conjunto de instrucciones Lambdaen laAWS LambdaGuía para desarrolladores.

Valores válidos: Uno dex86_64oarm64

Type: List

Obligatorio: No

Valor predeterminado: x86_64

AWS CloudFormationcompatibilidad: Esta propiedad se transfiere directamente alArchitecturespropiedad de unAWS::Lambda::Functionrecurso.

AssumeRolePolicyDocument

añade un AssumeRolePolicyDocument para el predeterminado creadoRolepara esta función. Si no se especifica esta propiedad,AWS SAMañade un rol de asumir predeterminado para esta función.

Type: JSON

Obligatorio: No

AWS CloudFormationcompatibilidad: Esta propiedad es similar a laAssumeRolePolicyDocumentpropiedad de unAWS::IAM::Rolerecurso.AWS SAMañade esta propiedad al rol de IAM generado para esta función. Si se proporciona el nombre de recurso de Amazon (ARN) de un rol para esta función, esta propiedad no hace nada.

AutoPublishAlias

El nombre del alias de Lambda. Para obtener más información acerca de alias de Lambda, consulteAlias de función de Lambdaen laAWS LambdaGuía para desarrolladores. Para ver ejemplos que utilizan esta propiedad, consulteImplementará gradualmente aplicaciones sin servidor.

AWS SAMgeneraAWS::Lambda::VersionyAWS::Lambda::Aliasrecursos cuando se establece esta propiedad. Para obtener información acerca de esta situación, consulteSe especifica la propiedad AutoPublishAlias. Para obtener información general acerca de generadoAWS CloudFormationrecursos, consulteGeneradoAWS CloudFormationrecursos.

Type: Cadena

Obligatorio: No

AWS CloudFormationcompatibilidad: Esta propiedad es específico deAWS SAMy no tiene unAWS CloudFormationequivalente.

AutoPublishCodeSha256

Valor de cadena que se utiliza, junto con el valor deCodeUri, para determinar si debe publicarse una nueva versión de Lambda.

Esta propiedad soluciona un problema que se produce cuando unAWS SAMLa plantilla tiene las siguientes características: laDeploymentPreferenceobjeto está configurado para implementaciones graduales (como se describe enImplementará gradualmente aplicaciones sin servidor), elAutoPublishAliasse establece y no cambia entre implementaciones, y laCodeUrise establece y no cambia entre implementaciones.

Este escenario puede ocurrir cuando el paquete de implementación almacenado en una ubicación de Amazon Simple Storage Service (Amazon S3) se sustituye por un nuevo paquete de implementación que contiene el código de función Lambda actualizado, pero elCodeUrise mantiene sin cambios (a diferencia del nuevo paquete de implementación que se carga en una nueva ubicación de Amazon S3 y laCodeUrique se está cambiando a la nueva ubicación).

En este escenario, para desencadenar correctamente la implementación gradual, debe proporcionar un valor único paraAutoPublishCodeSha256.

Type: Cadena

Obligatorio: No

AWS CloudFormationcompatibilidad: Esta propiedad es específico deAWS SAMy no tiene unAWS CloudFormationequivalente.

CodeSigningConfigArn

El ARN de laAWS::Lambda::CodeSigningConfigrecurso, utilizado para habilitar la firma de código para esta función. Para obtener más información acerca de la firma de código, consulteConfigurar la firma de código paraAWS SAMAplicaciones de.

Type: Cadena

Obligatorio: No

AWS CloudFormationcompatibilidad: Esta propiedad se transfiere directamente alCodeSigningConfigArnpropiedad de unAWS::Lambda::Functionrecurso.

CodeUri

URI de Amazon S3 del código de función, ruta de acceso a la carpeta local oFunctionCodeobjeto. Esta propiedad solo se aplica siPackageTypela propiedad se establece enZip, de lo contrario, se pasa por alto.

Notas:

1. Si el archivo dePackageTypela propiedad se establece enZip(predeterminado) y, a continuación, uno deCodeUrioInlineCodees obligatorio.

2. Si un URI de Amazon S3 oFunctionCodese proporciona, el objeto Amazon S3 al que se hace referencia debe ser válidopaquete de implementación de Lambda.

3. Si se proporciona la ruta a una carpeta local, para que el código se transforme correctamente, la plantilla debe pasar por el flujo de trabajo que incluyesam buildseguido de cualquiera de los dossam deployosam package. De forma predeterminada, las rutas relativas se resuelven con respecto alAWS SAMubicación de la plantilla.

Type: String |FunctionCode

Obligatorio: Condicional

AWS CloudFormationcompatibilidad: Esta propiedad es similar a laCodepropiedad de unAWS::Lambda::Functionrecurso. Las propiedades de Amazon S3 anidadas tienen un nombre diferente.

DeadLetterQueue

Configura un tema de Amazon Simple Notification Service (Amazon SNS) o una cola de Amazon Simple Queue Service (Amazon SQS) donde Lambda envía eventos que no puede procesar. Para obtener más información acerca de la funcionalidad de cola de mensajes fallidos, consulteAWS Lambdacolas de mensajes fallidos de funciones deen laAWS LambdaGuía para desarrolladores.

Nota: Si el origen de eventos de su función de Lambda es una cola de Amazon SQS, configure una cola de mensajes fallidos para la cola de origen y no para la función de Lambda. La cola de mensajes fallidos que configure para una función se utiliza para lacola de invocación asincrónica, no para colas de origen de eventos.

Type: Mapa |Cola Deadletter

Obligatorio: No

AWS CloudFormationcompatibilidad: Esta propiedad es similar a laDeadLetterConfigpropiedad de unAWS::Lambda::Functionrecurso. EnAWS CloudFormationEl tipo se obtiene deTargetArn, mientras que enAWS SAMdebe pasar el tipo junto con elTargetArn.

DeploymentPreference

Configuración para habilitar implementaciones graduales de Lambda.

Si unaDeploymentPreferencese especifica objeto,AWS SAMcrea unAWS::CodeDeploy::ApplicationCALLEDServerlessDeploymentApplication(uno por pila), unAWS::CodeDeploy::DeploymentGroupCALLED<function-logical-id>DeploymentGroup, y unAWS::IAM::RoleCALLEDCodeDeployServiceRole.

Type: DeploymentPreference

Obligatorio: No

AWS CloudFormationcompatibilidad: Esta propiedad es específico deAWS SAMy no tiene unAWS CloudFormationequivalente.

Véase también: Para obtener más información acerca de esta propiedad, consulte Implementará gradualmente aplicaciones sin servidor.

Description

Una descripción de la función.

Type: Cadena

Obligatorio: No

AWS CloudFormationcompatibilidad: Esta propiedad se transfiere directamente alDescriptionpropiedad de unAWS::Lambda::Functionrecurso.

Environment

La configuración del entorno de runtime.

Type: Entorno

Obligatorio: No

AWS CloudFormationcompatibilidad: Esta propiedad se transfiere directamente alEnvironmentpropiedad de unAWS::Lambda::Functionrecurso.

EphemeralStorage

Objeto que especifica el espacio en disco, en MB, disponible para la función Lambda en/tmp.

Para obtener más información acerca de esta propiedad, consulteEntorno de ejecución de Lambdaen laAWS LambdaGuía para desarrolladores.

Type: EphemeralStorage

Obligatorio: No

AWS CloudFormationcompatibilidad: Esta propiedad se transfiere directamente alEphemeralStoragepropiedad de unAWS::Lambda::Functionrecurso.

EventInvokeConfig

Objeto que describe la configuración de invocación de eventos en una función Lambda.

Type: Configuración de invocación de eventos

Obligatorio: No

AWS CloudFormationcompatibilidad: Esta propiedad es específico deAWS SAMy no tiene unAWS CloudFormationequivalente.

Events

Especifica los eventos que desencadenan esta función. Los eventos constan de un tipo y un conjunto de propiedades que dependen del tipo.

Type: EventSource

Obligatorio: No

AWS CloudFormationcompatibilidad: Esta propiedad es específico deAWS SAMy no tiene unAWS CloudFormationequivalente.

FileSystemConfigs

lista deFileSystemConfigobjetos que especifican la configuración de conexión para un sistema de archivos Amazon Elastic File System (Amazon EFS).

Si la plantilla contiene unAWS::EFS::MountTarget, también debe especificar unDependsOnatributo de recurso para asegurarse de que el destino de montaje se crea o actualiza antes de la función.

Type: List

Obligatorio: No

AWS CloudFormationcompatibilidad: Esta propiedad se transfiere directamente alFileSystemConfigspropiedad de unAWS::Lambda::Functionrecurso.

FunctionName

Un nombre para la función. Si no especifica un nombre, se genera un nombre único para usted.

Type: Cadena

Obligatorio: No

AWS CloudFormationcompatibilidad: Esta propiedad se transfiere directamente alFunctionNamepropiedad de unAWS::Lambda::Functionrecurso.

FunctionUrlConfig

Objeto que describe la URL de una función. La URL de una función es un extremo HTTPS que puede utilizar para invocar la función.

Para obtener más información, consulteURL de funcionesen laAWS LambdaGuía para desarrolladores.

Type: Configuración URL de función

Obligatorio: No

AWS CloudFormationcompatibilidad: Esta propiedad es específico deAWS SAMy no tiene unAWS CloudFormationequivalente.

Handler

Función dentro del código que se llama para iniciar la ejecución. Este establecimiento solo es obligatorio si elPackageTypela propiedad se establece enZip.

Type: Cadena

Obligatorio: Condicional

AWS CloudFormationcompatibilidad: Esta propiedad se transfiere directamente alHandlerpropiedad de unAWS::Lambda::Functionrecurso.

ImageConfig

Objeto utilizado para configurar los ajustes de imagen del contenedor Lambda. Para obtener más información, consulteUso de imágenes de contenedor con Lambdaen laAWS LambdaGuía para desarrolladores.

Type: ImageConfig

Obligatorio: No

AWS CloudFormationcompatibilidad: Esta propiedad se transfiere directamente alImageConfigpropiedad de unAWS::Lambda::Functionrecurso.

ImageUri

URI del repositorio Amazon Elastic Container Registry (Amazon ECR) para la imagen del contenedor de la función de Lambda. Esta propiedad solo se aplica siPackageTypela propiedad se establece enImage, de lo contrario, se pasa por alto. Para obtener más información, consulteUso de imágenes de contenedor con Lambdaen laAWS LambdaGuía para desarrolladores.

Nota: Si el archivo dePackageTypela propiedad se establece enImage, a continuación, o bienImageUries necesario o debe crear su aplicación con lo necesarioMetadataEntradas en elAWS SAMArchivo de plantilla de. Para obtener más información, consulte Creación de aplicaciones.

Creación de su aplicación con lo necesarioMetadataLas entradas van primero sobreImageUri, así que si especificas ambos, entoncesImageUrise pasa por alto.

Type: Cadena

Obligatorio: No

AWS CloudFormationcompatibilidad: Esta propiedad se transfiere directamente alImageUripropiedad delAWS::Lambda::Function CodeTipos de datos de.

InlineCode

El código de función Lambda que se escribe directamente en la plantilla. Esta propiedad solo se aplica siPackageTypela propiedad se establece enZip, de lo contrario, se pasa por alto.

Nota: Si el archivo dePackageTypela propiedad se establece enZip(predeterminado) y, a continuación, uno deCodeUrioInlineCodees obligatorio.

Type: Cadena

Obligatorio: Condicional

AWS CloudFormationcompatibilidad: Esta propiedad se transfiere directamente alZipFilepropiedad delAWS::Lambda::Function CodeTipos de datos de.

KmsKeyArn

El ARN de unAWS Key Management Service(AWS KMS) que Lambda utiliza para cifrar y descifrar las variables de entorno de su función.

Type: Cadena

Obligatorio: No

AWS CloudFormationcompatibilidad: Esta propiedad se transfiere directamente alKmsKeyArnpropiedad de unAWS::Lambda::Functionrecurso.

Layers

Lista deLayerVersionARN que debe utilizar esta función. El orden especificado aquí es el orden en que se importarán al ejecutar la función Lambda.

Type: List

Obligatorio: No

AWS CloudFormationcompatibilidad: Esta propiedad se transfiere directamente alLayerspropiedad de unAWS::Lambda::Functionrecurso.

MemorySize

Tamaño de la memoria en MB asignada por invocación de la función.

Type: Entero

Obligatorio: No

AWS CloudFormationcompatibilidad: Esta propiedad se transfiere directamente alMemorySizepropiedad de unAWS::Lambda::Functionrecurso.

PackageType

El tipo de paquete de implementación de la función de Lambda. Para obtener más información, consultePaquetes de implementación de Lambdaen laAWS LambdaGuía para desarrolladores.

Notas:

1. Si esta propiedad está establecida enZip(predeterminado), o bienCodeUrioInlineCodese aplica, yImageUrise pasa por alto.

2. Si esta propiedad está establecida enImage, entonces soloImageUrise aplica, y ambosCodeUriyInlineCodese omiten. El repositorio Amazon ECR necesario para almacenar la imagen del contenedor funcional se puede crear auto mediante elAWS SAMCLI. Para obtener más información, consulte sam deploy.

Valores válidos: Zip o Image

Type: Cadena

Obligatorio: No

Valor predeterminado: Zip

AWS CloudFormationcompatibilidad: Esta propiedad se transfiere directamente alPackageTypepropiedad de unAWS::Lambda::Functionrecurso.

PermissionsBoundary

ARN de un límite de permisos que se utilizará para el rol de ejecución de esta función. Esta propiedad solo funciona si el rol se genera por usted.

Type: Cadena

Obligatorio: No

AWS CloudFormationcompatibilidad: Esta propiedad se transfiere directamente alPermissionsBoundarypropiedad de unAWS::IAM::Rolerecurso.

Policies

Una o varias políticas de que necesita esta función. Se anexarán al rol predeterminado de esta función.

Esta propiedad acepta una sola cadena o una lista de cadenas y puede ser el nombre deAWSpolíticas administradas oAWS SAMplantillas de políticas o documentos de políticas de IAM en línea formateados en YAML.

Para obtener más información acerca deAWSpolíticas administradas de, consulteAWSpolíticas administradasen la guía del usuario de IAM. Para obtener más información acerca deAWS SAMplantillas de políticas, consulteAWS SAM policy templatesen laAWS Serverless Application ModelGuía para desarrolladores de . Para obtener más información acerca de las políticas de línea de, consultePolíticas insertadasen la guía del usuario de IAM.

Nota: Si el archivo deRoleLa propiedad está establecida, se pasa por alto esta propiedad.

Type: String | Lista | Mapa

Obligatorio: No

AWS CloudFormationcompatibilidad: Esta propiedad es similar a laPoliciespropiedad de unAWS::IAM::Rolerecurso.AWS SAMes compatible conAWSnombres de políticas administradas de yAWS SAMplantillas de políticas, además de documentos de políticas JSON.AWS CloudFormationsolo acepta documentos de políticas JSON.

ProvisionedConcurrencyConfig

La configuración de simultaneidad aprovisionada del alias de una función.

Nota:ProvisionedConcurrencyConfigsolo puede especificarse siAutoPublishAliasestá configurado. De lo contrario, se produce un error.

Type: ProvisionedConcurrencyConfig

Obligatorio: No

AWS CloudFormationcompatibilidad: Esta propiedad se transfiere directamente alProvisionedConcurrencyConfigpropiedad de unAWS::Lambda::Aliasrecurso.

ReservedConcurrentExecutions

El número máximo de ejecuciones simultáneas que desea reservar para la función.

Para obtener más información acerca de esta propiedad, consulteEscalado de funciones Lambdaen laAWS LambdaGuía para desarrolladores.

Type: Entero

Obligatorio: No

AWS CloudFormationcompatibilidad: Esta propiedad se transfiere directamente alReservedConcurrentExecutionspropiedad de unAWS::Lambda::Functionrecurso.

Role

El ARN de un rol de IAM que se utilizará como rol de ejecución de esta función.

Type: Cadena

Obligatorio: No

AWS CloudFormationcompatibilidad: Esta propiedad es similar a laRolepropiedad de unAWS::Lambda::Functionrecurso. Esto se requiere enAWS CloudFormationpero no enAWS SAM. Si no se especifica un rol, se crea uno para usted con un ID lógico de<function-logical-id>Role.

Runtime

Identificador del tiempo de ejecución de la función. Este establecimiento solo es obligatorio si elPackageTypela propiedad se establece enZip.

Nota: Si especifica elprovidedidentificador para esta propiedad, puede utilizar elMetadataatributo de recurso para instruirAWS SAMpara crear el tiempo de ejecución personalizado que requiere esta función. Para obtener más información acerca de la creación de tiempos de ejecución personalizados, consulteCreación de Runtimes personalizados.

Type: Cadena

Obligatorio: Condicional

AWS CloudFormationcompatibilidad: Esta propiedad se transfiere directamente alRuntimepropiedad de unAWS::Lambda::Functionrecurso.

Tags

Un mapa (cadena a cadena) que especifica las etiquetas añadidas a esta función. Para obtener más información sobre las claves y los valores válidos para las etiquetas, consulteRequisitos de las claves y los valores de las etiquetasen laAWS LambdaGuía para desarrolladores.

Cuando se crea la pila,AWS SAMañade automáticamente unlambda:createdBy:SAMetiqueta a esta función Lambda y a los roles predeterminados que se generan para esta función.

Type: Mapeo

Obligatorio: No

AWS CloudFormationcompatibilidad: Esta propiedad es similar a laTagspropiedad de unAWS::Lambda::Functionrecurso. LaTagspropiedad enAWS SAMse compone de pares clave-valor (mientras que enAWS CloudFormationesta propiedad consta de una lista deTagobjetos). Además,AWS SAMañade automáticamente unlambda:createdBy:SAMetiqueta a esta función Lambda y a los roles predeterminados que se generan para esta función.

Timeout

Tiempo máximo en segundos que la función puede ejecutarse antes de que se detenga.

Type: Entero

Obligatorio: No

Valor predeterminado: 3

AWS CloudFormationcompatibilidad: Esta propiedad se transfiere directamente alTimeoutpropiedad de unAWS::Lambda::Functionrecurso.

Tracing

Cadena que especifica el modo de seguimiento de X-Ray de la función. Para obtener más información acerca de X-Ray, consulteUso deAWS LambdaconAWS X-Rayen laAWS LambdaGuía para desarrolladores.

Valores válidos: Active o PassThrough

Type: Cadena

Obligatorio: No

AWS CloudFormationcompatibilidad: Esta propiedad es similar a laTracingConfigpropiedad de unAWS::Lambda::Functionrecurso. Si el archivo deTracingla propiedad se establece enActivey laRoleno se especifica la propiedad, a continuaciónAWS SAMañade elarn:aws:iam::aws:policy/AWSXrayWriteOnlyAccessde la función de ejecución de Lambda que crea para usted.

VersionDescription

Especifica elDescriptionque se agrega al nuevo recurso de versión de Lambda.

Type: Cadena

Obligatorio: No

AWS CloudFormationcompatibilidad: Esta propiedad se transfiere directamente alDescriptionpropiedad de unAWS::Lambda::Versionrecurso.

VpcConfig

La configuración que permite a esta función obtener acceso a los recursos privados de su nube virtual privada (VPC).

Type: VpcConfig

Obligatorio: No

AWS CloudFormationcompatibilidad: Esta propiedad se transfiere directamente alVpcConfigpropiedad de unAWS::Lambda::Functionrecurso.

Valores devueltos

Ref.

Cuando se proporciona el ID lógico de este recurso a laReffunción intrínseca, devuelve el nombre del recurso de la función Lambda subyacente.

Para obtener más información acerca del uso deReffunción, consulteRefen laAWS CloudFormationGuía del usuario de.

Fn::GetAtt

Fn::GetAtt devuelve un valor para un atributo especificado de este tipo. Los valores siguientes son los atributos disponibles y los valores devueltos de ejemplo.

Para obtener más información acerca del uso deFn::GetAtt, consulteFn::GetAtten laAWS CloudFormationGuía del usuario de.

Arn

El ARN de la función de Lambda subyacente.

Ejemplos

Función sencilla

A continuación se muestra un ejemplo básico deAWS::Serverless::Functionrecurso de tipo de paqueteZip(predeterminado) y código de función en un bucket de Amazon S3.

YAML

Type: AWS::Serverless::Function Properties: Handler: index.handler Runtime: python3.6 CodeUri: s3://bucket-name/key-name

Ejemplo de propiedades de funciones de

A continuación se muestra un ejemplo deAWS::Serverless::Functionde tipo de paqueteZip(predeterminado) que utilizaInlineCode,Layers,Tracing,Policies,Amazon EFS, y unApiorigen de eventos.

YAML

Type: AWS::Serverless::Function DependsOn: MyMountTarget # This is needed if an AWS::EFS::MountTarget resource is declared for EFS Properties: Handler: index.handler Runtime: python3.6 InlineCode: | def handler(event, context): print("Hello, world!") ReservedConcurrentExecutions: 30 Layers: - Ref: MyLayer Tracing: Active Timeout: 120 FileSystemConfigs: - Arn: !Ref MyEfsFileSystem LocalMountPath: /mnt/EFS Policies: - AWSLambdaExecute - Version: '2012-10-17' Statement: - Effect: Allow Action: - s3:GetObject - s3:GetObjectACL Resource: 'arn:aws:s3:::my-bucket/*' Events: ApiEvent: Type: Api Properties: Path: /path Method: get

Ejemplo de ImageConfig

A continuación se muestra un ejemplo deImageConfigpara una función de Lambda de tipo de paqueteImage.

YAML

HelloWorldFunction: Type: AWS::Serverless::Function Properties: PackageType: Image ImageUri: account-id.dkr.ecr.region.amazonaws.com/ecr-repo-name:image-name ImageConfig: Command: - "app.lambda_handler" EntryPoint: - "entrypoint1" WorkingDirectory: "workDir"