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 elMetadata
atributo 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.
YAML
Type: AWS::Serverless::Function Properties: Architectures:
List
AssumeRolePolicyDocument:JSON
AutoPublishAlias:String
AutoPublishCodeSha256:String
CodeSigningConfigArn:String
CodeUri:String | FunctionCode
DeadLetterQueue:Map | DeadLetterQueue
DeploymentPreference:DeploymentPreference
Description:String
Environment:Environment
EphemeralStorage:EphemeralStorage
EventInvokeConfig:EventInvokeConfiguration
Events:EventSource
FileSystemConfigs:List
FunctionName:String
FunctionUrlConfig:FunctionUrlConfig
Handler:String
ImageConfig:ImageConfig
ImageUri:String
InlineCode:String
KmsKeyArn:String
Layers:List
MemorySize:Integer
PackageType:String
PermissionsBoundary:String
Policies:String | List | Map
ProvisionedConcurrencyConfig:ProvisionedConcurrencyConfig
ReservedConcurrentExecutions:Integer
Role:String
Runtime:String
Tags:Map
Timeout:Integer
Tracing:String
VersionDescription:String
VpcConfig:VpcConfig
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 de
x86_64
oarm64
Type: List
Obligatorio: No
Valor predeterminado:
x86_64
AWS CloudFormationcompatibilidad: Esta propiedad se transfiere directamente al
Architectures
propiedad de unAWS::Lambda::Function
recurso. -
AssumeRolePolicyDocument
-
añade un AssumeRolePolicyDocument para el predeterminado creado
Role
para 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 la
AssumeRolePolicyDocument
propiedad de unAWS::IAM::Role
recurso.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 de
CodeUri
, 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: la
DeploymentPreference
objeto está configurado para implementaciones graduales (como se describe enImplementará gradualmente aplicaciones sin servidor), elAutoPublishAlias
se establece y no cambia entre implementaciones, y laCodeUri
se 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 el
CodeUri
se mantiene sin cambios (a diferencia del nuevo paquete de implementación que se carga en una nueva ubicación de Amazon S3 y laCodeUri
que se está cambiando a la nueva ubicación).En este escenario, para desencadenar correctamente la implementación gradual, debe proporcionar un valor único para
AutoPublishCodeSha256
.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 al
CodeSigningConfigArn
propiedad de unAWS::Lambda::Function
recurso. -
CodeUri
-
URI de Amazon S3 del código de función, ruta de acceso a la carpeta local oFunctionCodeobjeto. Esta propiedad solo se aplica si
PackageType
la propiedad se establece enZip
, de lo contrario, se pasa por alto.Notas:
1. Si el archivo de
PackageType
la propiedad se establece enZip
(predeterminado) y, a continuación, uno deCodeUri
oInlineCode
es 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 la
Code
propiedad de unAWS::Lambda::Function
recurso. 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 la
DeadLetterConfig
propiedad de unAWS::Lambda::Function
recurso. 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 una
DeploymentPreference
se especifica objeto,AWS SAMcrea unAWS::CodeDeploy::ApplicationCALLEDServerlessDeploymentApplication
(uno por pila), unAWS::CodeDeploy::DeploymentGroupCALLED
, y unAWS::IAM::RoleCALLED<function-logical-id>
DeploymentGroupCodeDeployServiceRole
.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 al
Description
propiedad de unAWS::Lambda::Function
recurso. -
Environment
-
La configuración del entorno de runtime.
Type: Entorno
Obligatorio: No
AWS CloudFormationcompatibilidad: Esta propiedad se transfiere directamente al
Environment
propiedad de unAWS::Lambda::Function
recurso. -
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 al
EphemeralStorage
propiedad de unAWS::Lambda::Function
recurso. -
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 un
DependsOn
atributo 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 al
FileSystemConfigs
propiedad de unAWS::Lambda::Function
recurso. -
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 al
FunctionName
propiedad de unAWS::Lambda::Function
recurso. -
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 el
PackageType
la propiedad se establece enZip
.Type: Cadena
Obligatorio: Condicional
AWS CloudFormationcompatibilidad: Esta propiedad se transfiere directamente al
Handler
propiedad de unAWS::Lambda::Function
recurso. -
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 al
ImageConfig
propiedad de unAWS::Lambda::Function
recurso. -
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 si
PackageType
la 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 de
PackageType
la propiedad se establece enImage
, a continuación, o bienImageUri
es necesario o debe crear su aplicación con lo necesarioMetadata
Entradas 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 necesario
Metadata
Las entradas van primero sobreImageUri
, así que si especificas ambos, entoncesImageUri
se pasa por alto.Type: Cadena
Obligatorio: No
AWS CloudFormationcompatibilidad: Esta propiedad se transfiere directamente al
ImageUri
propiedad delAWS::Lambda::Function
Code
Tipos de datos de. -
InlineCode
-
El código de función Lambda que se escribe directamente en la plantilla. Esta propiedad solo se aplica si
PackageType
la propiedad se establece enZip
, de lo contrario, se pasa por alto.Nota: Si el archivo de
PackageType
la propiedad se establece enZip
(predeterminado) y, a continuación, uno deCodeUri
oInlineCode
es obligatorio.Type: Cadena
Obligatorio: Condicional
AWS CloudFormationcompatibilidad: Esta propiedad se transfiere directamente al
ZipFile
propiedad delAWS::Lambda::Function
Code
Tipos 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 al
KmsKeyArn
propiedad de unAWS::Lambda::Function
recurso. -
Layers
-
Lista de
LayerVersion
ARN 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 al
Layers
propiedad de unAWS::Lambda::Function
recurso. -
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 al
MemorySize
propiedad de unAWS::Lambda::Function
recurso. -
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 en
Zip
(predeterminado), o bienCodeUri
oInlineCode
se aplica, yImageUri
se pasa por alto.2. Si esta propiedad está establecida en
Image
, entonces soloImageUri
se aplica, y ambosCodeUri
yInlineCode
se 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
oImage
Type: Cadena
Obligatorio: No
Valor predeterminado:
Zip
AWS CloudFormationcompatibilidad: Esta propiedad se transfiere directamente al
PackageType
propiedad de unAWS::Lambda::Function
recurso. -
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 al
PermissionsBoundary
propiedad de unAWS::IAM::Role
recurso. -
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 de
Role
La propiedad está establecida, se pasa por alto esta propiedad.Type: String | Lista | Mapa
Obligatorio: No
AWS CloudFormationcompatibilidad: Esta propiedad es similar a la
Policies
propiedad de unAWS::IAM::Role
recurso.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:
ProvisionedConcurrencyConfig
solo puede especificarse siAutoPublishAlias
está configurado. De lo contrario, se produce un error.Type: ProvisionedConcurrencyConfig
Obligatorio: No
AWS CloudFormationcompatibilidad: Esta propiedad se transfiere directamente al
ProvisionedConcurrencyConfig
propiedad de unAWS::Lambda::Alias
recurso. -
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 al
ReservedConcurrentExecutions
propiedad de unAWS::Lambda::Function
recurso. -
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 la
Role
propiedad de unAWS::Lambda::Function
recurso. 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 el
PackageType
la propiedad se establece enZip
.Nota: Si especifica el
provided
identificador para esta propiedad, puede utilizar elMetadata
atributo 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 al
Runtime
propiedad de unAWS::Lambda::Function
recurso. -
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 un
lambda:createdBy:SAM
etiqueta 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 la
Tags
propiedad de unAWS::Lambda::Function
recurso. LaTags
propiedad enAWS SAMse compone de pares clave-valor (mientras que enAWS CloudFormationesta propiedad consta de una lista deTag
objetos). Además,AWS SAMañade automáticamente unlambda:createdBy:SAM
etiqueta 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 al
Timeout
propiedad de unAWS::Lambda::Function
recurso. -
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
oPassThrough
Type: Cadena
Obligatorio: No
AWS CloudFormationcompatibilidad: Esta propiedad es similar a la
TracingConfig
propiedad de unAWS::Lambda::Function
recurso. Si el archivo deTracing
la propiedad se establece enActive
y laRole
no se especifica la propiedad, a continuaciónAWS SAMañade elarn:aws:iam::aws:policy/AWSXrayWriteOnlyAccess
de la función de ejecución de Lambda que crea para usted. -
VersionDescription
-
Especifica el
Description
que se agrega al nuevo recurso de versión de Lambda.Type: Cadena
Obligatorio: No
AWS CloudFormationcompatibilidad: Esta propiedad se transfiere directamente al
Description
propiedad de unAWS::Lambda::Version
recurso. -
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 al
VpcConfig
propiedad de unAWS::Lambda::Function
recurso.
Valores devueltos
Ref.
Cuando se proporciona el ID lógico de este recurso a laRef
función intrínseca, devuelve el nombre del recurso de la función Lambda subyacente.
Para obtener más información acerca del uso deRef
función, consulteRef
en 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::GetAtt
en laAWS CloudFormationGuía del usuario de.
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 unApi
origen 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 deImageConfig
para 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
"