CreateEventSourceMapping - AWS Lambda

CreateEventSourceMapping

Cria um mapeamento entre uma origem de eventos e uma função do AWS Lambda. O Lambda lê itens da origem de eventos e invoca a função.

Para obter detalhes sobre como configurar diferentes origens de evento, consulte os tópicos a seguir.

As seguintes opções de tratamento de erros estão disponíveis apenas para origens de fluxo (DynamoDB e Kinesis):

  • BisectBatchOnFunctionError: se a função retornar um erro, divida o lote em dois e tente novamente.

  • DestinationConfig: envie registros descartados para uma fila do Amazon SQS ou para um tópico do Amazon SNS.

  • MaximumRecordAgeInSeconds: descarta registros que são mais antigos que o período especificado. O valor padrão é infinito (-1). Quando definido como infinito (-1), são feitas novas tentativas para os registros com falha até o registro expirar

  • MaximumRetryAttempts: descarta registros após o número especificado de novas tentativas. O valor padrão é infinito (-1). Quando definido como infinito (-1), são feitas novas tentativas para os registros com falha até o registro expirar.

  • ParallelizationFactor: processe diversos lotes de cada fragmento simultaneamente.

Para obter informações sobre quais parâmetros de configuração se aplicam a cada fonte de evento, consulte os tópicos a seguir.

Sintaxe da Solicitação

POST /2015-03-31/event-source-mappings/ HTTP/1.1 Content-type: application/json { "AmazonManagedKafkaEventSourceConfig": { "ConsumerGroupId": "string" }, "BatchSize": number, "BisectBatchOnFunctionError": boolean, "DestinationConfig": { "OnFailure": { "Destination": "string" }, "OnSuccess": { "Destination": "string" } }, "DocumentDBEventSourceConfig": { "CollectionName": "string", "DatabaseName": "string", "FullDocument": "string" }, "Enabled": boolean, "EventSourceArn": "string", "FilterCriteria": { "Filters": [ { "Pattern": "string" } ] }, "FunctionName": "string", "FunctionResponseTypes": [ "string" ], "MaximumBatchingWindowInSeconds": number, "MaximumRecordAgeInSeconds": number, "MaximumRetryAttempts": number, "ParallelizationFactor": number, "Queues": [ "string" ], "ScalingConfig": { "MaximumConcurrency": number }, "SelfManagedEventSource": { "Endpoints": { "string" : [ "string" ] } }, "SelfManagedKafkaEventSourceConfig": { "ConsumerGroupId": "string" }, "SourceAccessConfigurations": [ { "Type": "string", "URI": "string" } ], "StartingPosition": "string", "StartingPositionTimestamp": number, "Topics": [ "string" ], "TumblingWindowInSeconds": number }

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.

AmazonManagedKafkaEventSourceConfig

Definições de configuração específicas para uma origem de eventos do Amazon Managed Streaming for Apache Kafka (Amazon MSK).

Tipo: objeto AmazonManagedKafkaEventSourceConfig

Obrigatório: não

BatchSize

O número máximo de registros em cada batch que o Lambda extrai da sua transmissão ou fila e envia para sua função. O Lambda transmite todos os registros no batch para a função em uma única chamada até o limite de carga útil para invocação síncrona (6 MB).

  • Amazon Kinesis: o padrão é 100. No máximo 10.000.

  • Amazon DynamoDB Streams: o padrão é 100. No máximo 10.000.

  • Amazon Simple Queue Service: o padrão é dez. Para filas padrão, o máximo é 10.000. Para filas FIFO, o máximo é 10.

  • Amazon Managed Streaming for Apache Kafka: o padrão é 100. No máximo 10.000.

  • Apache Kafka autogerenciado: o padrão é 100. No máximo 10.000.

  • Amazon MQ (ActiveMQ e RabbitMQ): o padrão é 100. No máximo 10.000.

  • DocumentDB: padrão 100. No máximo 10.000.

Tipo: inteiro

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

Obrigatório: não

BisectBatchOnFunctionError

(Somente fluxos do Kinesis e do DynamoDB) Se a função retornar um erro, divida o lote em dois e tente novamente.

Tipo: booliano

Obrigatório: não

DestinationConfig

(Somente Kinesis, streams do DynamoDB, Amazon MSK e Kafka autogerenciado) Um objeto de configuração que especifica o destino de um evento após o Lambda processá-lo.

Tipo: objeto DestinationConfig

Obrigatório: não

DocumentDBEventSourceConfig

Definições de configuração específicas de uma origem do evento do DocumentDB.

Tipo: objeto DocumentDBEventSourceConfig

Obrigatório: não

Enabled

Quando verdadeiro, o mapeamento da fonte do evento estará ativo. Quando falso, o Lambda pausará a sondagem e a invocação.

Padrão: Verdadeiro

Tipo: booliano

Obrigatório: não

EventSourceArn

O nome de recurso da Amazon (ARN) da origem do evento.

  • Amazon Kinesis: o ARN do fluxo de dados ou de um consumidor de fluxo.

  • Amazon DynamoDB Streams: o ARN do fluxo.

  • Amazon Simple Queue Service: o ARN da fila.

  • Amazon Managed Streaming for Apache Kafka: o ARN do cluster ou o ARN da conexão VPC (para mapeamentos da origem do evento entre contas).

  • Amazon MQ: o ARN do agente.

  • Amazon DocumentDB: o ARN do fluxo de alterações do DocumentDB.

Tipo: string

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

Obrigatório: não

FilterCriteria

Um objeto que define os critérios de filtros que determinam se o Lambda deve processar um evento. Para saber mais, consulte o tópico sobre Filtragem de eventos do Lambda.

Tipo: objeto FilterCriteria

Obrigatório: não

FunctionName

O nome da função do Lambda.

Formatos de nome
  • Nome da função: MyFunction.

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

  • ARN da versão ou do alias: arn:aws:lambda:us-west-2:123456789012:function:MyFunction:PROD.

  • ARN parcial: 123456789012:function:MyFunction.

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

FunctionResponseTypes

(Fluxos do Kinesis e do DynamoDB e Amazon SQS) Uma lista de enumerações de tipos de resposta atuais aplicadas ao mapeamento da origem do evento.

Tipo: matriz de strings

Membros da Matriz: número mínimo de 0 itens. Número máximo de 1 item.

Valores Válidos: ReportBatchItemFailures

Obrigatório: não

MaximumBatchingWindowInSeconds

O tempo máximo usado pelo Lambda, em segundos, para reunir os registros antes de invocar a função. É possível configurar MaximumBatchingWindowInSeconds para qualquer valor de 0 a 300 segundos em incrementos de segundos.

Para fluxos e fontes de eventos do Amazon SQS, a janela de lote padrão é de 0 segundos. Para origens do evento do Amazon MSK, Apache Kafka autogerenciado, Amazon MQ e DocumentDB, a janela de lotes padrão é de 500 ms. Observe que, como só é possível alterar MaximumBatchingWindowInSeconds em incrementos de segundos, você não pode reverter para a janela de lotes padrão de 500 ms depois da alteração. Para restaurar a janela de lotes padrão, é necessário criar um novo mapeamento de fonte de evento.

Configuração relacionada: para fluxos e fontes de eventos do Amazon SQS, quando você define BatchSize como um valor maior que 10, deve definir MaximumBatchingWindowInSeconds como pelo menos 1.

Tipo: inteiro

Intervalo válido: valor mínimo de 0. Valor máximo de 300.

Obrigatório: não

MaximumRecordAgeInSeconds

(Somente fluxos do Kinesis e do DynamoDB) Descarte registros mais antigos que a idade especificada. O valor padrão é infinito (-1).

Tipo: inteiro

Intervalo válido: valor mínimo de -1. Valor máximo de 604800.

Obrigatório: não

MaximumRetryAttempts

(Somente fluxos do Kinesis e do DynamoDB) Descarte registros após o número especificado de novas tentativas. O valor padrão é infinito (-1). Quando definido como infinito (-1), são feitas novas tentativas para os registros com falha até o registro expirar.

Tipo: inteiro

Intervalo válido: valor mínimo de -1. Valor máximo de 10000.

Obrigatório: não

ParallelizationFactor

(Somente fluxos do Kinesis e do DynamoDB) O número de lotes a serem processados de cada fragmento simultaneamente.

Tipo: inteiro

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

Obrigatório: não

Queues

(MQ) O nome da fila de destino do agente do Amazon MQ a ser consumido.

Tipo: matriz de strings

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

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

Padrão: [\s\S]*

Obrigatório: não

ScalingConfig

(Somente para o Amazon SQS) A configuração de escalabilidade para a origem do evento. Para obter mais informações, consulte Configuring maximum concurrency for Amazon SQS event sources (Configuração de simultaneidade máxima para origens de eventos do Amazon SQS).

Tipo: objeto ScalingConfig

Obrigatório: não

SelfManagedEventSource

O cluster do Apache Kafka autogerenciado ao qual receber registros.

Tipo: objeto SelfManagedEventSource

Obrigatório: não

SelfManagedKafkaEventSourceConfig

Definições de configuração específicas para uma origem de eventos do Apache Kafka autogerenciado.

Tipo: objeto SelfManagedKafkaEventSourceConfig

Obrigatório: não

SourceAccessConfigurations

Uma matriz de protocolos de autenticação ou componentes da VPC necessária para proteger a origem do evento.

Tipo: matriz de objetos SourceAccessConfiguration

Membros da Matriz: número mínimo de 0 itens. Número máximo de 22 itens.

Obrigatório: não

StartingPosition

A posição em um fluxo da qual você deseja iniciar a leitura. Obrigatório para origens de eventos do Amazon Kinesis e do Amazon DynamoDB Streams. AT_TIMESTAMP é compatível somente com os fluxos do Amazon Kinesis, o Amazon DocumentDB, o Amazon MSK e o Apache Kafka autogerenciado.

Tipo: string

Valores Válidos: TRIM_HORIZON | LATEST | AT_TIMESTAMP

Obrigatório: não

StartingPositionTimestamp

Com StartingPosition definido como AT_TIMESTAMP, o tempo a partir do qual a leitura é iniciada, em segundos de tempo do Unix. StartingPositionTimestamp não pode ser no futuro.

Tipo: Carimbo de data/hora

Obrigatório: não

Topics

O nome do tópico do Kafka.

Tipo: matriz de strings

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

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

Padrão: ^[^.]([a-zA-Z0-9\-_.]+)

Obrigatório: não

TumblingWindowInSeconds

(Somente fluxos do Kinesis e DynamoDB) A duração, em segundos, de uma janela de processamento para origens do evento de fluxos do DynamoDB e do Kinesis. O valor de 0 segundo indica que não há janela em queda.

Tipo: inteiro

Intervalo válido: valor mínimo de 0. Valor máximo de 900.

Obrigatório: não

Sintaxe da Resposta

HTTP/1.1 202 Content-type: application/json { "AmazonManagedKafkaEventSourceConfig": { "ConsumerGroupId": "string" }, "BatchSize": number, "BisectBatchOnFunctionError": boolean, "DestinationConfig": { "OnFailure": { "Destination": "string" }, "OnSuccess": { "Destination": "string" } }, "DocumentDBEventSourceConfig": { "CollectionName": "string", "DatabaseName": "string", "FullDocument": "string" }, "EventSourceArn": "string", "FilterCriteria": { "Filters": [ { "Pattern": "string" } ] }, "FunctionArn": "string", "FunctionResponseTypes": [ "string" ], "LastModified": number, "LastProcessingResult": "string", "MaximumBatchingWindowInSeconds": number, "MaximumRecordAgeInSeconds": number, "MaximumRetryAttempts": number, "ParallelizationFactor": number, "Queues": [ "string" ], "ScalingConfig": { "MaximumConcurrency": number }, "SelfManagedEventSource": { "Endpoints": { "string" : [ "string" ] } }, "SelfManagedKafkaEventSourceConfig": { "ConsumerGroupId": "string" }, "SourceAccessConfigurations": [ { "Type": "string", "URI": "string" } ], "StartingPosition": "string", "StartingPositionTimestamp": number, "State": "string", "StateTransitionReason": "string", "Topics": [ "string" ], "TumblingWindowInSeconds": number, "UUID": "string" }

Elementos de Resposta

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

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

AmazonManagedKafkaEventSourceConfig

Definições de configuração específicas para uma origem de eventos do Amazon Managed Streaming for Apache Kafka (Amazon MSK).

Tipo: objeto AmazonManagedKafkaEventSourceConfig

BatchSize

O número máximo de registros em cada batch que o Lambda extrai da sua transmissão ou fila e envia para sua função. O Lambda transmite todos os registros no batch para a função em uma única chamada até o limite de carga útil para invocação síncrona (6 MB).

Valor padrão: varia de acordo com o serviço. Para o Amazon SQS, o padrão é 10. Para todos os outros serviços, o padrão é 100.

Configuração relacionada: quando você define BatchSize como um valor maior que 10, deve definir MaximumBatchingWindowInSeconds como pelo menos 1.

Tipo: inteiro

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

BisectBatchOnFunctionError

(Somente fluxos do Kinesis e do DynamoDB) Se a função retornar um erro, divida o lote em dois e tente novamente. O valor padrão é falso.

Tipo: booliano

DestinationConfig

(Somente origens de evento do Kinesis, DynamoDB Streams, Amazon MSK e Apache Kafka autogerenciado) Um objeto de configuração que especifica o destino de um evento após o Lambda processá-lo.

Tipo: objeto DestinationConfig

DocumentDBEventSourceConfig

Definições de configuração específicas de uma origem do evento do DocumentDB.

Tipo: objeto DocumentDBEventSourceConfig

EventSourceArn

O nome de recurso da Amazon (ARN) da origem do evento.

Tipo: string

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

FilterCriteria

Um objeto que define os critérios de filtros que determinam se o Lambda deve processar um evento. Para saber mais, consulte o tópico sobre Filtragem de eventos do Lambda.

Tipo: objeto FilterCriteria

FunctionArn

O ARN da função Lambda.

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-_]+))?

FunctionResponseTypes

(Fluxos do Kinesis e do DynamoDB e Amazon SQS) Uma lista de enumerações de tipos de resposta atuais aplicadas ao mapeamento da origem do evento.

Tipo: matriz de strings

Membros da Matriz: número mínimo de 0 itens. Número máximo de 1 item.

Valores Válidos: ReportBatchItemFailures

LastModified

A data em que o mapeamento de fontes de eventos foi atualizado pela última vez ou seu estado mudou, em segundos no horário do Unix.

Tipo: Carimbo de data/hora

LastProcessingResult

O resultado da última invocação do Lambda da sua função.

Tipo: string

MaximumBatchingWindowInSeconds

O tempo máximo usado pelo Lambda, em segundos, para reunir os registros antes de invocar a função. É possível configurar MaximumBatchingWindowInSeconds para qualquer valor de 0 a 300 segundos em incrementos de segundos.

Para fluxos e fontes de eventos do Amazon SQS, a janela de lote padrão é de 0 segundos. Para origens do evento do Amazon MSK, Apache Kafka autogerenciado, Amazon MQ e DocumentDB, a janela de lotes padrão é de 500 ms. Observe que, como só é possível alterar MaximumBatchingWindowInSeconds em incrementos de segundos, você não pode reverter para a janela de lotes padrão de 500 ms depois da alteração. Para restaurar a janela de lotes padrão, é necessário criar um novo mapeamento de fonte de evento.

Configuração relacionada: para fluxos e fontes de eventos do Amazon SQS, quando você define BatchSize como um valor maior que 10, deve definir MaximumBatchingWindowInSeconds como pelo menos 1.

Tipo: inteiro

Intervalo válido: valor mínimo de 0. Valor máximo de 300.

MaximumRecordAgeInSeconds

(Somente fluxos do Kinesis e do DynamoDB) Descarte registros mais antigos que a idade especificada. O valor padrão é -1, o que define a idade máxima como infinito. Quando o valor é definido como infinito, o Lambda nunca descarta registros antigos.

nota

O valor mínimo válido para a idade máxima de registro é 60. Embora valores menores que 60 e maiores que -1 estejam dentro do intervalo absoluto do parâmetro, eles não são permitidos

Tipo: inteiro

Intervalo válido: valor mínimo de -1. Valor máximo de 604800.

MaximumRetryAttempts

(Somente fluxos do Kinesis e do DynamoDB) Descarte registros após o número especificado de novas tentativas. O valor padrão é -1, o que define o número máximo de tentativas como infinito. Quando MaximumRetryAttempts é infinito, o Lambda tenta executar novamente os registros com falha até que o registro expire na fonte de eventos.

Tipo: inteiro

Intervalo válido: valor mínimo de -1. Valor máximo de 10000.

ParallelizationFactor

(Somente fluxos do Kinesis e do DynamoDB) O número de lotes a serem processados simultaneamente de cada fragmento. O valor padrão é 1.

Tipo: inteiro

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

Queues

(Amazon MQ) O nome da fila de destino do agente do Amazon MQ a ser consumido.

Tipo: matriz de strings

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

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

Padrão: [\s\S]*

ScalingConfig

(Somente para o Amazon SQS) A configuração de escalabilidade para a origem do evento. Para obter mais informações, consulte Configuring maximum concurrency for Amazon SQS event sources (Configuração de simultaneidade máxima para origens de eventos do Amazon SQS).

Tipo: objeto ScalingConfig

SelfManagedEventSource

O cluster autogerenciado do Apache Kafka para sua fonte de eventos.

Tipo: objeto SelfManagedEventSource

SelfManagedKafkaEventSourceConfig

Definições de configuração específicas para uma origem de eventos do Apache Kafka autogerenciado.

Tipo: objeto SelfManagedKafkaEventSourceConfig

SourceAccessConfigurations

Uma matriz do protocolo de autenticação, os componentes da VPC ou o host virtual para proteger e definir a fonte de eventos.

Tipo: matriz de objetos SourceAccessConfiguration

Membros da Matriz: número mínimo de 0 itens. Número máximo de 22 itens.

StartingPosition

A posição em um fluxo da qual você deseja iniciar a leitura. Obrigatório para origens de eventos do Amazon Kinesis e do Amazon DynamoDB Streams. AT_TIMESTAMP é compatível somente com os fluxos do Amazon Kinesis, o Amazon DocumentDB, o Amazon MSK e o Apache Kafka autogerenciado.

Tipo: string

Valores Válidos: TRIM_HORIZON | LATEST | AT_TIMESTAMP

StartingPositionTimestamp

Com StartingPosition definido como AT_TIMESTAMP, o tempo a partir do qual a leitura é iniciada, em segundos de tempo do Unix. StartingPositionTimestamp não pode ser no futuro.

Tipo: Carimbo de data/hora

State

O estado do mapeamento da fonte de eventos. Pode ser um destes: Creating, Enabling, Enabled, Disabling, Disabled, Updating ou Deleting.

Tipo: string

StateTransitionReason

Indica se um usuário ou o Lambda fez a última alteração no mapeamento de fontes de eventos.

Tipo: string

Topics

O nome do tópico do Kafka.

Tipo: matriz de strings

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

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

Padrão: ^[^.]([a-zA-Z0-9\-_.]+)

TumblingWindowInSeconds

(Somente fluxos do Kinesis e DynamoDB) A duração, em segundos, de uma janela de processamento para origens do evento de fluxos do DynamoDB e do Kinesis. O valor de 0 segundo indica que não há janela em queda.

Tipo: inteiro

Intervalo válido: valor mínimo de 0. Valor máximo de 900.

UUID

O identificador do mapeamento de fontes de eventos.

Tipo: string

Erros

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

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: