CreateFunction - AWS Lambda

CreateFunction

Cria uma função do Lambda. Para criar uma função, você precisa de um pacote de implantação e de uma função de execução. O pacote de implantação é um arquivamento de arquivo.zip ou uma imagem de contêiner que contém seu código de função. O perfil de execução concede à função permissão para usar os Serviços da AWS, como o Amazon CloudWatch Logs para streaming de logs e o AWS X-Ray para rastreamento de solicitações.

Se o pacote de implantação for uma imagem de contêiner, defina o tipo de pacote como Image. Para uma imagem de contêiner, a propriedade code deve incluir o URI de uma imagem de contêiner no registro do Amazon ECR. Você não precisa especificar as propriedades do manipulador e do runtime.

Se o pacote de implantação for um arquivo .zip, defina o tipo de pacote como Zip. Para um arquivamento de arquivo.zip, a propriedade code especifica a localização do arquivo.zip. Você também deve especificar as propriedades do manipulador e do runtime. O código no pacote de implantação deve ser compatível com a arquitetura do conjunto de instruções de destino da função (x86-64 ou arm64). Se você não especificar a arquitetura, o valor padrão será x86-64.

Quando você cria uma função, o Lambda provisiona uma instância da função e seus recursos de suporte. Se sua função se conecta a uma VPC, esse processo pode demorar mais ou menos um minuto. Durante esse período, não será possível invocar ou modificar a função. Os campos State, StateReason e StateReasonCode na resposta de GetFunctionConfiguration indicam quando a função está pronta para ser invocada. Para obter mais informações, consulte Estados da função do Lambda.

Uma função tem uma versão não publicada e pode ter versões e aliases publicados. A versão não publicada muda quando você atualiza o código e a configuração da função. Uma versão publicada é um snapshot do código e da configuração da função que não pode ser alterado. Um alias é um recurso nomeado que mapeia para uma versão e pode ser alterado para mapear para uma versão diferente. Use o parâmetro Publish para criar a versão 1 de sua função com base em sua configuração inicial.

Os outros parâmetros permitem que você defina configurações específicas da versão e em nível de função. Você pode modificar configurações específicas da versão posteriormente com UpdateFunctionConfiguration. As configurações em nível de função se aplicam às versões não publicadas e publicadas da função e incluem etiquetas (TagResource) e limites de simultaneidade por função (PutFunctionConcurrency).

Você pode usar a assinatura de código se o pacote de implantação for um arquivamento do arquivo .zip. Para ativar a assinatura de código para essa função, especifique o ARN de uma configuração de assinatura de código. Quando um usuário tenta implantar um pacote de código com UpdateFunctionCode, o Lambda verifica se o pacote de código tem uma assinatura válida de um fornecedor confiável. A configuração de assinatura de código inclui um conjunto de perfis de assinatura, que define os editores confiáveis ​​para esta função.

Se outra Conta da AWS ou um AWS service (Serviço da AWS) invocar sua função, use AddPermission para conceder permissões ao criar uma política do AWS Identity and Access Management (IAM) baseada em recursos. Você pode conceder permissões em nível de função, em uma versão ou em um alias.

Para invocar sua função diretamente, use Invoke. Para invocar sua função em resposta a eventos em outros Serviços da AWS, crie um mapeamento da origem do evento (CreateEventSourceMapping) ou configure um acionador de função no outro serviço. Para obter mais informações, consulte Invocar funções do Lambda.

Sintaxe da Solicitação

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" ], "LoggingConfig": { "ApplicationLogLevel": "string", "LogFormat": "string", "LogGroup": "string", "SystemLogLevel": "string" }, "MemorySize": number, "PackageType": "string", "Publish": boolean, "Role": "string", "Runtime": "string", "SnapStart": { "ApplyOn": "string" }, "Tags": { "string" : "string" }, "Timeout": number, "TracingConfig": { "Mode": "string" }, "VpcConfig": { "Ipv6AllowedForDualStack": boolean, "SecurityGroupIds": [ "string" ], "SubnetIds": [ "string" ] } }

Parâmetros da solicitação de URI

A solicitação não usa nenhum parâmetro de URI.

Corpo da Solicitação

A solicitação aceita os dados a seguir no formato JSON.

Architectures

A arquitetura do conjunto de instruções compatível com a função. Insira uma matriz de strings com um dos valores válidos (arm64 ou x86_64). O valor padrão é x86_64.

Tipo: matriz de strings

Membros da matriz: número fixo de 1 item.

Valores Válidos: x86_64 | arm64

Obrigatório: não

Code

O código da função.

Tipo: objeto FunctionCode

Obrigatório: sim

CodeSigningConfigArn

Para ativar a assinatura de código para essa função, especifique o ARN de uma configuração de assinatura de código. Uma configuração de assinatura de código inclui um conjunto de perfis de assinatura que define os editores confiáveis para essa função.

Tipo: string

Restrições de tamanho: tamanho máximo de 200.

Padrão: 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}

Obrigatório: não

DeadLetterConfig

Uma configuração de fila de mensagens não entregues que especifica a fila ou o tópico para o qual o Lambda envia eventos assíncronos quando eles apresentam falhas no processamento. Para obter mais informações, consulte Filas de mensagens não entregues.

Tipo: objeto DeadLetterConfig

Obrigatório: não

Description

Uma descrição da função.

Tipo: string

Restrições de comprimento: comprimento mínimo 0. Comprimento máximo de 256.

Obrigatório: não

Environment

As variáveis de ambiente que são acessíveis pelo código de função durante a execução.

Tipo: objeto Environment

Obrigatório: não

EphemeralStorage

O tamanho do diretório /tmp da função em MB. O valor padrão é 512, mas pode ser qualquer número inteiro entre 512 e 10.240 MB. Para obter mais informações, consulte Como configurar o armazenamento temporário (console).

Tipo: objeto EphemeralStorage

Obrigatório: não

FileSystemConfigs

Configurações de conexão para um sistema de arquivos do Amazon EFS.

Tipo: matriz de objetos FileSystemConfig

Membros da matriz: número máximo de 1 item.

Obrigatório: não

FunctionName

O nome da função do Lambda.

Formatos de nome
  • Nome da função: my-function.

  • ARN da função: arn:aws:lambda:us-west-2:123456789012:function:my-function.

  • ARN parcial: 123456789012:function:my-function.

A restrição de comprimento se aplica apenas ao ARN completo. Se você especificar apenas o nome da função, ele será limitado a 64 caracteres.

Tipo: string

Restrições de tamanho: tamanho mínimo 1. Tamanho máximo de 140.

Padrão: (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-_]+))?

Exigido: Sim

Handler

O nome do método em seu código que o Lambda chama para executar a função. O manipulador é necessário quando o pacote de implantação é um arquivo do arquivo .zip. O formato inclui o nome do arquivo. Ele também pode incluir namespaces e outros qualificadores, dependendo do runtime. Para obter mais informações, consulte Modelo de programação do Lambda.

Tipo: string

Restrições de tamanho: tamanho máximo de 128.

Padrão: [^\s]+

Obrigatório: não

ImageConfig

Valores de configuração da imagem do contêiner que substituem os valores do Dockerfile da imagem do contêiner.

Tipo: objeto ImageConfig

Obrigatório: não

KMSKeyArn

O ARN da chave gerenciada pelo cliente do AWS Key Management Service (AWS KMS) que é usada para criptografar as variáveis de ambiente da sua função. Quando o Lambda SnapStart é ativado, o Lambda também usa essa chave para criptografar o snapshot da função. Se você implantar a função usando uma imagem de contêiner, o Lambda também usará essa chave para criptografar a função quando ela for implantada. Essa não é a mesma chave usada para proteger a imagem do contêiner no Amazon Elastic Container Registry (Amazon ECR). Se você não fornecer uma chave gerenciada pelo cliente, o Lambda usará uma chave de serviço padrão.

Tipo: string

Padrão: (arn:(aws[a-zA-Z-]*)?:[a-z0-9-.]+:.*)|()

Obrigatório: não

Layers

Uma lista de camadas de função para adicionar ao ambiente de execução da função. Especifique cada camada por seu ARN, incluindo a versão.

Tipo: matriz de strings

Restrições de tamanho: tamanho mínimo 1. Tamanho máximo de 140.

Padrão: arn:[a-zA-Z0-9-]+:lambda:[a-zA-Z0-9-]+:\d{12}:layer:[a-zA-Z0-9-_]+:[0-9]+

Obrigatório: não

LoggingConfig

As configurações do Amazon CloudWatch Logs da função.

Tipo: objeto LoggingConfig

Obrigatório: não

MemorySize

A quantidade de memória disponível para a função no runtime. Aumentar a memória de função também aumenta sua alocação de CPU. O valor padrão é 128 MB. O valor pode ser qualquer múltiplo de 1 MB.

Tipo: inteiro

Intervalo válido: valor mínimo de 128. Valor máximo de 10240.

Obrigatório: não

PackageType

O tipo de pacote de implantação. Defina como Image para a imagem de contêiner e defina Zip para o arquivo .zip.

Tipo: string

Valores Válidos: Zip | Image

Obrigatório: não

Publish

Defina como “true” para publicar a primeira versão da função durante a criação.

Tipo: booliano

Obrigatório: não

Role

O nome de recurso da Amazon (ARN) da função de execução da função.

Tipo: string

Padrão: arn:(aws[a-zA-Z-]*)?:iam::\d{12}:role/?[a-zA-Z_0-9+=,.@\-_/]+

Exigido: Sim

Runtime

O identificador do runtime da função. O runtime é necessário quando o pacote de implantação é um arquivo .zip.

A lista a seguir inclui os tempos de execução obsoletos. Para obter mais informações, consulte a Política de descontinuação de runtime.

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 | nodejs18.x | python3.10 | java17 | ruby3.2 | python3.11 | nodejs20.x | provided.al2023 | python3.12 | java21

Obrigatório: não

SnapStart

A configuração do SnapStart da função.

Tipo: objeto SnapStart

Obrigatório: não

Tags

Uma lista de tags para aplicar à função.

Tipo: mapa de string para string

Obrigatório: não

Timeout

A quantidade de tempo (em segundos) que o Lambda permite que uma função seja executada antes de encerrá-la. O padrão é 3 segundos. O valor máximo permitido é de 900 segundos. Para obter mais informações, consulte Ambiente de execução do Lambda.

Tipo: inteiro

Intervalo válido: valor mínimo de 1.

Obrigatório: não

TracingConfig

Defina Mode como Active para criar uma amostra e rastrear um subconjunto de solicitações de entrada com o x-Ray.

Tipo: objeto TracingConfig

Obrigatório: não

VpcConfig

Para a conectividade de rede para os recursos da AWS em uma VPC, especifique uma lista de grupos de segurança e sub-redes na VPC. Quando você conecta uma função a uma VPC, ela poderá acessar os recursos e a Internet somente por meio dessa VPC. Para obter mais informações, consulte Configuração de uma função do Lambda para acessar recursos em uma VPC.

Tipo: objeto VpcConfig

Obrigatório: não

Sintaxe da Resposta

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" } ], "LoggingConfig": { "ApplicationLogLevel": "string", "LogFormat": "string", "LogGroup": "string", "SystemLogLevel": "string" }, "MasterArn": "string", "MemorySize": number, "PackageType": "string", "RevisionId": "string", "Role": "string", "Runtime": "string", "RuntimeVersionConfig": { "Error": { "ErrorCode": "string", "Message": "string" }, "RuntimeVersionArn": "string" }, "SigningJobArn": "string", "SigningProfileVersionArn": "string", "SnapStart": { "ApplyOn": "string", "OptimizationStatus": "string" }, "State": "string", "StateReason": "string", "StateReasonCode": "string", "Timeout": number, "TracingConfig": { "Mode": "string" }, "Version": "string", "VpcConfig": { "Ipv6AllowedForDualStack": boolean, "SecurityGroupIds": [ "string" ], "SubnetIds": [ "string" ], "VpcId": "string" } }

Elementos de Resposta

Se a ação for bem-sucedida, o serviço retornará uma resposta HTTP 201.

Os dados a seguir são retornados no formato JSON pelo serviço.

Architectures

A arquitetura do conjunto de instruções compatível com a função. A arquitetura é uma matriz de strings com um dos valores válidos. O valor da arquitetura padrão é x86_64.

Tipo: matriz de strings

Membros da matriz: número fixo de 1 item.

Valores Válidos: x86_64 | arm64

CodeSha256

O hash SHA256 do pacote de implantação da função.

Tipo: string

CodeSize

O tamanho do pacote de implantação da função em bytes.

Tipo: longo

DeadLetterConfig

A fila de mensagens mortas da função.

Tipo: objeto DeadLetterConfig

Description

A descrição da função.

Tipo: string

Restrições de comprimento: comprimento mínimo 0. Comprimento máximo de 256.

Environment

As variáveis de ambiente da função. Omitido dos logs do AWS CloudTrail.

Tipo: objeto EnvironmentResponse

EphemeralStorage

O tamanho do diretório /tmp da função em MB. O valor padrão é 512, mas pode ser qualquer número inteiro entre 512 e 10.240 MB. Para obter mais informações, consulte Como configurar o armazenamento temporário (console).

Tipo: objeto EphemeralStorage

FileSystemConfigs

Configurações de conexão para um sistema de arquivos do Amazon EFS.

Tipo: matriz de objetos FileSystemConfig

Membros da matriz: número máximo de 1 item.

FunctionArn

O nome do recurso da Amazon (ARN) da função.

Tipo: string

Padrão: 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

Nome da função.

Tipo: string

Restrições de tamanho: tamanho mínimo 1. Tamanho máximo de 170.

Padrão: (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

A função que o Lambda chama para começar a executar sua função.

Tipo: string

Restrições de tamanho: tamanho máximo de 128.

Padrão: [^\s]+

ImageConfigResponse

Os valores de configuração da imagem da função.

Tipo: objeto ImageConfigResponse

KMSKeyArn

A AWS KMS key é usada para criptografar as variáveis de ambiente da função. Quando o Lambda SnapStart é ativado, essa chave também é usada para criptografar o snapshot da função. Essa chave será retornada somente se você tiver configurado uma chave gerenciada pelo cliente.

Tipo: string

Padrão: (arn:(aws[a-zA-Z-]*)?:[a-z0-9-.]+:.*)|()

LastModified

A data e a hora em que a função foi atualizada, no formato ISO-8601 (AAAA-MM-DDThh:mm:ss.sTZD).

Tipo: string

LastUpdateStatus

O status da última atualização que foi executada na função. Ele é definido pela primeira vez como Successful após a conclusão da criação da função.

Tipo: string

Valores Válidos: Successful | Failed | InProgress

LastUpdateStatusReason

O motivo pelo qual foi realizada a última atualização na função.

Tipo: string

LastUpdateStatusReasonCode

O código do motivo pelo qual foi realizada a última atualização na função.

Tipo: string

Valores Válidos: EniLimitExceeded | InsufficientRolePermissions | InvalidConfiguration | InternalError | SubnetOutOfIPAddresses | InvalidSubnet | InvalidSecurityGroup | ImageDeleted | ImageAccessDenied | InvalidImage | KMSKeyAccessDenied | KMSKeyNotFound | InvalidStateKMSKey | DisabledKMSKey | EFSIOError | EFSMountConnectivityError | EFSMountFailure | EFSMountTimeout | InvalidRuntime | InvalidZipFileException | FunctionError

Layers

As camadas da função.

Tipo: matriz de objetos Layer

LoggingConfig

As configurações do Amazon CloudWatch Logs da função.

Tipo: objeto LoggingConfig

MasterArn

Para funções do Lambda@Edge, o ARN da função principal.

Tipo: string

Padrão: 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

A quantidade de memória disponível para a função no runtime.

Tipo: inteiro

Intervalo válido: valor mínimo de 128. Valor máximo de 10240.

PackageType

O tipo de pacote de implantação. Defina como Image para imagem de contêiner e defina Zip para arquivo de documento .zip.

Tipo: string

Valores Válidos: Zip | Image

RevisionId

A última revisão atualizada da função ou do alias.

Tipo: string

Role

A função de execução da função.

Tipo: string

Padrão: arn:(aws[a-zA-Z-]*)?:iam::\d{12}:role/?[a-zA-Z_0-9+=,.@\-_/]+

Runtime

O identificador do runtime da função. O runtime é necessário quando o pacote de implantação é um arquivo .zip.

A lista a seguir inclui os tempos de execução obsoletos. Para obter mais informações, consulte a Política de descontinuação de runtime.

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 | nodejs18.x | python3.10 | java17 | ruby3.2 | python3.11 | nodejs20.x | provided.al2023 | python3.12 | java21

RuntimeVersionConfig

O ARN do runtime e quaisquer erros ocorridos.

Tipo: objeto RuntimeVersionConfig

SigningJobArn

O ARN do trabalho de assinatura.

Tipo: string

Padrão: arn:(aws[a-zA-Z0-9-]*):([a-zA-Z0-9\-])+:([a-z]{2}(-gov)?-[a-z]+-\d{1})?:(\d{12})?:(.*)

SigningProfileVersionArn

O ARN da versão do perfil de assinatura.

Tipo: string

Padrão: arn:(aws[a-zA-Z0-9-]*):([a-zA-Z0-9\-])+:([a-z]{2}(-gov)?-[a-z]+-\d{1})?:(\d{12})?:(.*)

SnapStart

Defina ApplyOn como PublishedVersions para criar um snapshot do ambiente de execução inicializado ao publicar uma versão de função. Para obter mais informações, consulte Improving startup performance with Lambda SnapStart (Como aprimorar a performance da inicialização com o Lambda SnapStart).

Tipo: objeto SnapStartResponse

State

O estado atual da função. Quando o estado é Inactive, você pode invocar a função para reativá-la.

Tipo: string

Valores Válidos: Pending | Active | Inactive | Failed

StateReason

O motivo para o estado atual da função.

Tipo: string

StateReasonCode

O código do motivo para o estado atual da função. Quando o código for Creating, não será possível invocar ou modificar a função.

Tipo: string

Valores Válidos: Idle | Creating | Restoring | EniLimitExceeded | InsufficientRolePermissions | InvalidConfiguration | InternalError | SubnetOutOfIPAddresses | InvalidSubnet | InvalidSecurityGroup | ImageDeleted | ImageAccessDenied | InvalidImage | KMSKeyAccessDenied | KMSKeyNotFound | InvalidStateKMSKey | DisabledKMSKey | EFSIOError | EFSMountConnectivityError | EFSMountFailure | EFSMountTimeout | InvalidRuntime | InvalidZipFileException | FunctionError

Timeout

A quantidade de tempo, em segundos, que o Lambda permite que uma função seja executada antes de encerrá-la.

Tipo: inteiro

Intervalo válido: valor mínimo de 1.

TracingConfig

A configuração de rastreamento do AWS X-Ray da função.

Tipo: objeto TracingConfigResponse

Version

A versão da função do Lambda.

Tipo: string

Restrições de tamanho: tamanho mínimo 1. Comprimento máximo de 1024.

Padrão: (\$LATEST|[0-9]+)

VpcConfig

A configuração de rede da função.

Tipo: objeto VpcConfigResponse

Erros

Para obter informações sobre os erros que todas as ações retornam, consulte Erros comuns.

CodeSigningConfigNotFoundException

A configuração de assinatura de código especificada não existe.

Código de Status HTTP: 404

CodeStorageExceededException

Sua Conta da AWS excedeu o tamanho máximo total do código. Para obter mais informações, consulte Cotas do Lambda.

Código de Status HTTP: 400

CodeVerificationFailedException

A assinatura de código falhou em uma ou mais verificações de validação em relação à incompatibilidade ou expiração de assinatura, e a política de assinatura de código está definida como ENFORCE. O Lambda bloqueia a implantação.

Código de Status HTTP: 400

InvalidCodeSignatureException

A assinatura de código falhou na verificação de integridade. Se a verificação de integridade falhar, o Lambda bloqueará a implantação, mesmo que a política de assinatura de código esteja definida como WARN.

Código de Status HTTP: 400

InvalidParameterValueException

Um dos parâmetros da solicitação não é válido.

Código de Status HTTP: 400

ResourceConflictException

O recurso já existe ou outra operação está em andamento.

Código de status HTTP: 409

ResourceNotFoundException

O recurso especificado na solicitação não existe.

Código de Status HTTP: 404

ServiceException

O serviço AWS Lambda encontrou um erro interno.

Código de Status HTTP: 500

TooManyRequestsException

O limite de throughput da solicitação foi excedido. Para obter mais informações, consulte Cotas do Lambda.

Código de status HTTP: 429

Ver também

Para mais informações sobre como usar essa API em um dos AWS SDKs de idiomas específicos, consulte o seguinte: