CreateFunction
Crea una función de Lambda. Para crear una función, necesita un paquete de implementación y un rol de ejecución. El paquete de implementación es un archivo .zip o una imagen de contenedor que contiene el código de función. El rol de ejecución concede permiso a la función para utilizar servicios de AWS, como Amazon CloudWatch Logs para el streaming de registros y X-Ray para el rastreo de solicitudes.
Se establece el tipo de paquete en Image
si el paquete de implementación es una imagen de contenedor. Para una imagen de contenedor, la propiedad del código debe incluir el URI de una imagen de contenedor en el registro de Amazon ECR. No es necesario especificar el controlador y las propiedades del tiempo de ejecución.
Se establece el tipo de paquete en Zip
si el paquete de implementación es un archivo .zip. Para un archivo .zip, la propiedad del código especifica la ubicación del archivo .zip. También debe especificar el controlador y las propiedades del tiempo de ejecución. El código del paquete de implementación debe ser compatible con la arquitectura del conjunto de instrucciones de destino de la función (x86-64
o arm64
). Si no especifica la arquitectura, el valor predeterminado es x86-64
.
Cuando crea una función, Lambda aprovisiona una instancia de la función y sus recursos auxiliares. Si su función se conecta a una VPC, este proceso puede tardar un minuto más o menos. Durante este tiempo, no puede invocar o modificar la función. Los campos State
, StateReason
y StateReasonCode
en la respuesta de GetFunctionConfiguration indica cuándo la función está lista para su invocación. Para obtener más información, consulte Estados de función.
Una función tiene una versión no publicada y puede tener versiones y alias publicados. La versión no publicada cambia al actualizar el código y la configuración de la función. Una versión publicada es una instantánea del código y la configuración de su función que no se puede cambiar. Un alias es un recurso con nombre mapeado que se asigna a una versión y se puede cambiar para asignarla a una versión diferente. Use el parámetro Publish
para crear la versión 1
de su función desde su configuración inicial.
Los demás parámetros le permiten configurar ajustes específicos de la versión y de la función. Puede modificar la configuración específica de la versión más adelante con UpdateFunctionConfiguration. La configuración de nivel de función se aplica a las versiones publicadas y no publicadas de la función, e incluye etiquetas (TagResource) y los límites de concurrencia por función (PutFunctionConcurrency).
Puede usar la firma de código si el paquete de implementación es un archivo .zip. Para habilitar la firma de código para esta función, especifique el ARN de una configuración de firma de código. Cuando un usuario intenta implementar un paquete de código con UpdateFunctionCode, Lambda comprueba que el paquete de código tenga una firma válida de un editor de confianza. La configuración de firma de código incluye un conjunto de perfiles de firma que definen los editores de confianza para esta función.
Si otra cuenta o un servicio AWS invoca su función, use AddPermission para conceder permiso mediante la creación de una política de IAM basada en recursos. Puede conceder permisos en el nivel de la función, en una versión o en un alias.
Para invocar la función directamente, use Invoke. Para invocar su función en respuesta a eventos en otros servicios AWS, cree un mapeo de fuente de eventos (CreateEventSourceMapping) o configure un desencadenador de función en el otro servicio. Para obtener más información, consulte Invocación de funciones.
Sintaxis de la solicitud
POST /2015-03-31/functions HTTP/1.1
Content-type: application/json
{
"Architectures": [ "string
" ],
"Code": {
"ImageUri": "string
",
"S3Bucket": "string
",
"S3Key": "string
",
"S3ObjectVersion": "string
",
"ZipFile": blob
},
"CodeSigningConfigArn": "string
",
"DeadLetterConfig": {
"TargetArn": "string
"
},
"Description": "string
",
"Environment": {
"Variables": {
"string
" : "string
"
}
},
"EphemeralStorage": {
"Size": number
},
"FileSystemConfigs": [
{
"Arn": "string
",
"LocalMountPath": "string
"
}
],
"FunctionName": "string
",
"Handler": "string
",
"ImageConfig": {
"Command": [ "string
" ],
"EntryPoint": [ "string
" ],
"WorkingDirectory": "string
"
},
"KMSKeyArn": "string
",
"Layers": [ "string
" ],
"MemorySize": number
,
"PackageType": "string
",
"Publish": boolean
,
"Role": "string
",
"Runtime": "string
",
"Tags": {
"string
" : "string
"
},
"Timeout": number
,
"TracingConfig": {
"Mode": "string
"
},
"VpcConfig": {
"SecurityGroupIds": [ "string
" ],
"SubnetIds": [ "string
" ]
}
}
Parámetros de solicitud del URI
La solicitud no utiliza ningún parámetro de URI.
Cuerpo de la solicitud
La solicitud acepta los siguientes datos en formato JSON.
- Architectures
-
La arquitectura del conjunto de instrucciones que admite la función. Ingrese una matriz de cadenas con uno de los valores válidos (arm64 o x86_64). El valor predeterminado es
x86_64
.Tipo: matriz de cadenas
Miembros de la matriz: número fijo de 1 elemento.
Valores válidos:
x86_64 | arm64
Obligatorio: no
- Code
-
Código de la función.
Tipo: objeto FunctionCode
Obligatorio: sí
- CodeSigningConfigArn
-
Para habilitar la firma de código para esta función, especifique el ARN de una configuración de firma de código. Una configuración de firma de código incluye un conjunto de perfiles de firma, que definen los editores de confianza para esta función.
Tipo: String
Limitaciones de longitud: longitud máxima de 200 caracteres.
Patrón:
arn:(aws[a-zA-Z-]*)?:lambda:[a-z]{2}((-gov)|(-iso(b?)))?-[a-z]+-\d{1}:\d{12}:code-signing-config:csc-[a-z0-9]{17}
Obligatorio: no
- DeadLetterConfig
-
Configuración de una cola de mensajes fallidos que especifica la cola o el tema donde Lambda envía los eventos asíncronos cuando no superan el procesamiento. Para obtener más información, consulte Colas de mensajes fallidos.
Tipo: objeto DeadLetterConfig
Obligatorio: no
- Description
-
Una descripción de la función.
Tipo: String
Limitaciones de longitud: longitud mínima de 0. La longitud máxima es de 256 caracteres.
Obligatorio: no
- Environment
-
Variables de entorno que están accesibles desde el código de la función durante la ejecución.
Tipo: objeto Environment
Obligatorio: no
- EphemeralStorage
-
El tamaño del directorio /tmp de la función en MB. El valor pequeño (predeterminado) es 512, pero puede ser cualquier número entero entre 512 y 10 240 MB.
Tipo: objeto EphemeralStorage
Obligatorio: no
- FileSystemConfigs
-
Configuración de conexión para un sistema de archivos de Amazon EFS.
Tipo: Matriz de objetos FileSystemConfig
Miembros de la matriz: número máximo de 1 elemento.
Obligatorio: no
- FunctionName
-
El nombre de la función de Lambda.
Formatos de nombre
-
Nombre de función:
my-function
. -
ARN de función:
arn:aws:lambda:us-west-2:123456789012:function:my-function
. -
ARN parcial:
123456789012:function:my-function
.
La limitación de longitud se aplica únicamente al ARN completo. Si solo especifica el nombre de la función, se limita a 64 caracteres de longitud.
Tipo: String
Limitaciones de longitud: longitud mínima de 1. La longitud máxima es de 140 caracteres.
Patrón:
(arn:(aws[a-zA-Z-]*)?:lambda:)?([a-z]{2}(-gov)?-[a-z]+-\d{1}:)?(\d{12}:)?(function:)?([a-zA-Z0-9-_]+)(:(\$LATEST|[a-zA-Z0-9-_]+))?
Obligatorio: sí
-
- Handler
-
Nombre del método dentro de su código al que Lambda llama para ejecutar su función. Se requiere un controlador si el paquete de implementación es un archivo .zip. El formato incluye el nombre del archivo. También puede incluir espacios de nombres y otros calificadores, en función del tiempo de ejecución. Para obtener más información, consulte el Modelo de programación.
Tipo: String
Limitaciones de longitud: longitud máxima de 128 caracteres.
Patrón:
[^\s]+
Obligatorio: no
- ImageConfig
-
Valores de configuración de la imagen del contenedor que anulan los valores del Dockerfile de la imagen contenedor.
Tipo: objeto ImageConfig
Obligatorio: no
- KMSKeyArn
-
El ARN de la clave de AWS Key Management Service (AWS KMS) que se utiliza para cifrar las variables de entorno de la función. Si no se proporciona, AWS Lambda utiliza una clave de servicio predeterminada.
Tipo: String
Patrón:
(arn:(aws[a-zA-Z-]*)?:[a-z0-9-.]+:.*)|()
Obligatorio: no
- Layers
-
Lista de capas de función para añadir al entorno de ejecución de la función. Especifique cada capa por su ARN, incluida la versión.
Tipo: matriz de cadenas
Limitaciones de longitud: longitud mínima de 1. La longitud máxima es de 140 caracteres.
Patrón:
arn:[a-zA-Z0-9-]+:lambda:[a-zA-Z0-9-]+:\d{12}:layer:[a-zA-Z0-9-_]+:[0-9]+
Obligatorio: no
- MemorySize
-
La cantidad de memoria disponible para la función en tiempo de ejecución. Al aumentar la memoria de la función, también se aumenta su asignación de CPU. El valor predeterminado es 128 MB. El valor puede ser cualquier múltiplo de 1 MB.
Tipo: entero
Rango válido: valor mínimo de 128. Valor máximo de 10240.
Obligatorio: no
- PackageType
-
El tipo de paquete de implementación. Establezca en
Image
para la imagen contenedor y enZip
para el archivo ZIP.Tipo: String
Valores válidos:
Zip | Image
Obligatorio: no
- Publish
-
Establezca en verdadero para publicar la primera versión de la función durante la creación.
Tipo: booleano
Obligatorio: no
- Role
-
El nombre de recurso de Amazon (ARN) del rol de ejecución de la función.
Tipo: String
Patrón:
arn:(aws[a-zA-Z-]*)?:iam::\d{12}:role/?[a-zA-Z_0-9+=,.@\-_/]+
Obligatorio: sí
- Runtime
-
Identificador del tiempo de ejecución de la función. Se requiere tiempo de ejecución si el paquete de implementación es un archivo .zip.
Tipo: String
Valores válidos:
nodejs | nodejs4.3 | nodejs6.10 | nodejs8.10 | nodejs10.x | nodejs12.x | nodejs14.x | nodejs16.x | java8 | java8.al2 | java11 | python2.7 | python3.6 | python3.7 | python3.8 | python3.9 | dotnetcore1.0 | dotnetcore2.0 | dotnetcore2.1 | dotnetcore3.1 | dotnet6 | nodejs4.3-edge | go1.x | ruby2.5 | ruby2.7 | provided | provided.al2
Obligatorio: no
- Tags
-
Lista de etiquetas que se aplican a la función.
Tipo: mapa de cadena a cadena
Obligatorio: no
- Timeout
-
La cantidad de tiempo (en segundos) durante la cual Lambda permite que se ejecute una función antes de pararla. El valor predeterminado es de 3 segundos. El valor máximo permitido es de 900 segundos. Para obtener información adicional, consulte Entorno de ejecución de Lambda.
Tipo: entero
Rango válido: valor mínimo de 1.
Obligatorio: no
- TracingConfig
-
Establezca
Mode
enActive
para realizar una muestra y un seguimiento de una subred de solicitudes entrantes con X-Ray.Tipo: objeto TracingConfig
Obligatorio: no
- VpcConfig
-
Para la conectividad de red con los recursos de AWS en una VPC, especifique una lista de grupos de seguridad y subredes en la VPC. Cuando conecte una función a un VPC, esta solo puede tener acceso a los recursos y a Internet a través de esa VPC. Para obtener más información, consulte Configuración de VPC.
Tipo: objeto VpcConfig
Obligatorio: no
Sintaxis de la respuesta
HTTP/1.1 201
Content-type: application/json
{
"Architectures": [ "string" ],
"CodeSha256": "string",
"CodeSize": number,
"DeadLetterConfig": {
"TargetArn": "string"
},
"Description": "string",
"Environment": {
"Error": {
"ErrorCode": "string",
"Message": "string"
},
"Variables": {
"string" : "string"
}
},
"EphemeralStorage": {
"Size": number
},
"FileSystemConfigs": [
{
"Arn": "string",
"LocalMountPath": "string"
}
],
"FunctionArn": "string",
"FunctionName": "string",
"Handler": "string",
"ImageConfigResponse": {
"Error": {
"ErrorCode": "string",
"Message": "string"
},
"ImageConfig": {
"Command": [ "string" ],
"EntryPoint": [ "string" ],
"WorkingDirectory": "string"
}
},
"KMSKeyArn": "string",
"LastModified": "string",
"LastUpdateStatus": "string",
"LastUpdateStatusReason": "string",
"LastUpdateStatusReasonCode": "string",
"Layers": [
{
"Arn": "string",
"CodeSize": number,
"SigningJobArn": "string",
"SigningProfileVersionArn": "string"
}
],
"MasterArn": "string",
"MemorySize": number,
"PackageType": "string",
"RevisionId": "string",
"Role": "string",
"Runtime": "string",
"SigningJobArn": "string",
"SigningProfileVersionArn": "string",
"State": "string",
"StateReason": "string",
"StateReasonCode": "string",
"Timeout": number,
"TracingConfig": {
"Mode": "string"
},
"Version": "string",
"VpcConfig": {
"SecurityGroupIds": [ "string" ],
"SubnetIds": [ "string" ],
"VpcId": "string"
}
}
Elementos de respuesta
Si la acción se realiza correctamente, el servicio devuelve una respuesta HTTP 201.
El servicio devuelve los datos siguientes en formato JSON.
- Architectures
-
La arquitectura del conjunto de instrucciones que admite la función. La arquitectura es una matriz de cadenas con uno de los valores válidos. El valor de la arquitectura predeterminada es
x86_64
.Tipo: matriz de cadenas
Miembros de la matriz: número fijo de 1 elemento.
Valores válidos:
x86_64 | arm64
- CodeSha256
-
El hash SHA256 del paquete de implementación de la función.
Tipo: String
- CodeSize
-
El tamaño del paquete de implementación de la función, en bytes.
Tipo: largo
- DeadLetterConfig
-
La cola de mensajes fallidos de la función.
Tipo: objeto DeadLetterConfig
- Description
-
Descripción de la función.
Tipo: String
Limitaciones de longitud: longitud mínima de 0. La longitud máxima es de 256 caracteres.
- Environment
-
Las variables de entorno de la función. Omitido en los registros de AWS CloudTrail.
Tipo: objeto EnvironmentResponse
- EphemeralStorage
-
El tamaño del directorio /tmp de la función en MB. El valor pequeño (predeterminado) es 512, pero puede ser cualquier número entero entre 512 y 10 240 MB.
Tipo: objeto EphemeralStorage
- FileSystemConfigs
-
Configuración de conexión para un sistema de archivos de Amazon EFS.
Tipo: Matriz de objetos FileSystemConfig
Miembros de la matriz: número máximo de 1 elemento.
- FunctionArn
-
El nombre de recurso de Amazon (ARN) de la función.
Tipo: String
Patrón:
arn:(aws[a-zA-Z-]*)?:lambda:[a-z]{2}(-gov)?-[a-z]+-\d{1}:\d{12}:function:[a-zA-Z0-9-_\.]+(:(\$LATEST|[a-zA-Z0-9-_]+))?
- FunctionName
-
El nombre de la función.
Tipo: String
Limitaciones de longitud: longitud mínima de 1. La longitud máxima es de 170 caracteres.
Patrón:
(arn:(aws[a-zA-Z-]*)?:lambda:)?([a-z]{2}(-gov)?-[a-z]+-\d{1}:)?(\d{12}:)?(function:)?([a-zA-Z0-9-_\.]+)(:(\$LATEST|[a-zA-Z0-9-_]+))?
- Handler
-
La función a la que llama Lambda para comenzar a ejecutar su función.
Tipo: String
Limitaciones de longitud: longitud máxima de 128 caracteres.
Patrón:
[^\s]+
- ImageConfigResponse
-
Los valores de configuración de la imagen de la función.
Tipo: objeto ImageConfigResponse
- KMSKeyArn
-
La AWS KMS key que se utiliza para cifrar las variables de entorno de la función. Esta clave solo se devuelve si ha configurado una clave administrada por el cliente.
Tipo: String
Patrón:
(arn:(aws[a-zA-Z-]*)?:[a-z0-9-.]+:.*)|()
- LastModified
-
La fecha y hora de la última actualización de la función, en formato ISO-8601
(AAAA-MM-DDThh:mm:ss.sTZD). Tipo: String
- LastUpdateStatus
-
El estado de la última actualización que se realizó en la función. Esto se establece primero en
Successful
después de que se complete la creación de la funciónTipo: String
Valores válidos:
Successful | Failed | InProgress
- LastUpdateStatusReason
-
El motivo de la última actualización que se realizó en la función.
Tipo: String
- LastUpdateStatusReasonCode
-
El código de motivo de la última actualización que se realizó en la función.
Tipo: String
Valores válidos:
EniLimitExceeded | InsufficientRolePermissions | InvalidConfiguration | InternalError | SubnetOutOfIPAddresses | InvalidSubnet | InvalidSecurityGroup | ImageDeleted | ImageAccessDenied | InvalidImage
- Layers
-
Las capas de la función.
Tipo: Matriz de objetos Layer
- MasterArn
-
Para las funciones Lambda@Edge, el ARN de la función principal.
Tipo: String
Patrón:
arn:(aws[a-zA-Z-]*)?:lambda:[a-z]{2}(-gov)?-[a-z]+-\d{1}:\d{12}:function:[a-zA-Z0-9-_]+(:(\$LATEST|[a-zA-Z0-9-_]+))?
- MemorySize
-
La cantidad de memoria disponible para la función en tiempo de ejecución.
Tipo: entero
Rango válido: valor mínimo de 128. Valor máximo de 10240.
- PackageType
-
El tipo de paquete de implementación. Establezca en
Image
para la imagen contenedor y configureZip
para el archivo de archivos .zip.Tipo: String
Valores válidos:
Zip | Image
- RevisionId
-
La última revisión actualizada de la función o alias.
Tipo: String
- Role
-
Rol de ejecución de la función.
Tipo: String
Patrón:
arn:(aws[a-zA-Z-]*)?:iam::\d{12}:role/?[a-zA-Z_0-9+=,.@\-_/]+
- Runtime
-
El entorno en tiempo de ejecución de la función Lambda.
Tipo: String
Valores válidos:
nodejs | nodejs4.3 | nodejs6.10 | nodejs8.10 | nodejs10.x | nodejs12.x | nodejs14.x | nodejs16.x | java8 | java8.al2 | java11 | python2.7 | python3.6 | python3.7 | python3.8 | python3.9 | dotnetcore1.0 | dotnetcore2.0 | dotnetcore2.1 | dotnetcore3.1 | dotnet6 | nodejs4.3-edge | go1.x | ruby2.5 | ruby2.7 | provided | provided.al2
- SigningJobArn
-
El ARN del trabajo de firma.
Tipo: String
Patrón:
arn:(aws[a-zA-Z0-9-]*):([a-zA-Z0-9\-])+:([a-z]{2}(-gov)?-[a-z]+-\d{1})?:(\d{12})?:(.*)
- SigningProfileVersionArn
-
El ARN de la versión del perfil de firma.
Tipo: String
Patrón:
arn:(aws[a-zA-Z0-9-]*):([a-zA-Z0-9\-])+:([a-z]{2}(-gov)?-[a-z]+-\d{1})?:(\d{12})?:(.*)
- State
-
El estado actual de la función. Cuando el estado es
Inactive
, puede reactivar la función invocándola.Tipo: String
Valores válidos:
Pending | Active | Inactive | Failed
- StateReason
-
El motivo del estado actual de la función.
Tipo: String
- StateReasonCode
-
El código de motivo del estado actual de la función. Cuando el código es
Creating
, no puede invocar ni modificar la función.Tipo: String
Valores válidos:
Idle | Creating | Restoring | EniLimitExceeded | InsufficientRolePermissions | InvalidConfiguration | InternalError | SubnetOutOfIPAddresses | InvalidSubnet | InvalidSecurityGroup | ImageDeleted | ImageAccessDenied | InvalidImage
- Timeout
-
La cantidad de tiempo en segundos durante el cual Lambda permite que se ejecute una función antes de pararla.
Tipo: entero
Rango válido: valor mínimo de 1.
- TracingConfig
-
Configuración de seguimiento de AWS X-Ray de la función.
Tipo: objeto TracingConfigResponse
- Version
-
La versión de la función Lambda.
Tipo: String
Limitaciones de longitud: longitud mínima de 1. La longitud máxima es de 1024 caracteres.
Patrón:
(\$LATEST|[0-9]+)
- VpcConfig
-
Configuración de red de la función.
Tipo: objeto VpcConfigResponse
Errores
- CodeSigningConfigNotFoundException
-
La configuración de firma de código especificado no existe.
Código de estado HTTP: 404
- CodeStorageExceededException
-
Ha superado el tamaño máximo de su código total por cuenta. Más información
Código de estado HTTP: 400
- CodeVerificationFailedException
-
La firma de código falló en una o más de las verificaciones de validación para detectar la discrepancia o la caducidad de la firma, y la política de firma de código se establece en IMPONER. Lambda bloquea la implementación.
Código de estado HTTP: 400
- InvalidCodeSignatureException
-
La firma de código falló en la verificación de integridad. Lambda siempre bloquea la implementación si falla la verificación de integridad, incluso si la política de firma de código está establecida en ADVERTENCIA.
Código de estado HTTP: 400
- InvalidParameterValueException
-
Uno de los parámetros de la solicitud no es válido.
Código de estado HTTP: 400
- ResourceConflictException
-
El recurso ya existe o hay otra operación en marcha.
Código de estado HTTP: 409
- ResourceNotFoundException
-
El recurso especificado en la solicitud no existe.
Código de estado HTTP: 404
- ServiceException
-
El servicio AWS Lambda detectó un error interno.
Código de estado HTTP: 500
- TooManyRequestsException
-
Se ha superado el límite de rendimiento de la solicitud.
Código de estado HTTP: 429
Véase también
Para obtener más información sobre el uso de esta API en un SDK de AWS de un lenguaje específico, consulte: