

Após uma análise cuidadosa, decidimos descontinuar o Amazon Kinesis Data Analytics para aplicativos SQL:

1. A partir de **1º de setembro de 2025,** não forneceremos nenhuma correção de bug para aplicativos do Amazon Kinesis Data Analytics para SQL porque teremos suporte limitado para ele, devido à próxima descontinuação.

2. A partir **de 15 de outubro de 2025,** você não poderá criar novos aplicativos Kinesis Data Analytics para SQL.

3. Excluiremos as aplicações a partir de **27 de janeiro de 2026**. Você não poderá mais iniciar nem operar as aplicações do Amazon Kinesis Data Analytics para SQL. A partir dessa data, não haverá mais suporte ao Amazon Kinesis Data Analytics para SQL. Para obter mais informações, consulte [Descontinuação de aplicações do Amazon Kinesis Data Analytics para SQL](discontinuation.md).

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

# Como usar a função do Lambda como saída
<a name="how-it-works-output-lambda"></a>

Usar AWS Lambda como destino permite que você realize mais facilmente o pós-processamento de seus resultados de SQL antes de enviá-los para um destino final. Algumas tarefas comuns de pós-processamento são:
+ Agregação de várias linhas em um único registro
+ Combinação de resultados atuais com resultados passados para o tratamento de dados retardatários
+ Entrega em destinos diferentes com base no tipo de informações
+ Conversão do formato de registros (como a conversão para Protobuf)
+ Manipulação ou transformação de strings
+ Enriquecimento de dados após o processamento analítico
+ Processamento personalizado para casos de uso geoespacial
+ Criptografia de dados

As funções Lambda podem fornecer informações analíticas para uma variedade de AWS serviços e outros destinos, incluindo os seguintes:
+ [Amazon Simple Storage Service (Amazon S3)](https://docs.aws.amazon.com/AmazonS3/latest/userguide/)
+ Personalizado APIs
+ [Amazon DynamoDB](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/)
+ [Amazon Aurora](http://aurora.apache.org/)
+ [Amazon Redshift](https://docs.aws.amazon.com/redshift/latest/dg/)
+ [Amazon Simple Notification Service (Amazon SNS)](https://docs.aws.amazon.com/sns/latest/dg/)
+ [Amazon Simple Queue Service (Amazon SQS)](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/)
+ [Amazon CloudWatch](https://docs.aws.amazon.com/AmazonCloudWatch/latest/DeveloperGuide/)

Para obter mais informações sobre como criar aplicativos do Lambda, consulte [Conceitos básicos do AWS Lambda](https://docs.aws.amazon.com/lambda/latest/dg/getting-started.html).

**Topics**
+ [Permissões para o Lambda como saída](#how-it-works-output-lambda-perms)
+ [Lambda como métrica de saída](#how-it-works-output-lambda-metrics)
+ [Modelo de dados de entrada de eventos de saída do Lambda e modelo de resposta de registros](#how-it-works-output-lambda-model)
+ [Frequência de invocação de saída do Lambda](#how-it-works-output-lambda-frequency)
+ [Adição de uma função do Lambda para usar como uma saída](#how-it-works-output-lambda-procedure)
+ [Falhas comuns de Lambda como saída](#how-it-works-output-lambda-troubleshooting)
+ [Como criar funções do Lambda para destinos de aplicativos](how-it-works-output-lambda-functions.md)

## Permissões para o Lambda como saída
<a name="how-it-works-output-lambda-perms"></a>

Para usar o Lambda como saída, o perfil do IAM de saída do Lambda do aplicativo requer a seguinte política de permissões:

```
{
   "Sid": "UseLambdaFunction",
   "Effect": "Allow",
   "Action": [
       "lambda:InvokeFunction",
       "lambda:GetFunctionConfiguration"
   ],
   "Resource": "{{FunctionARN}}"
}
```

## Lambda como métrica de saída
<a name="how-it-works-output-lambda-metrics"></a>

Você usa CloudWatch a Amazon para monitorar o número de bytes enviados, sucessos e falhas, e assim por diante. [Para obter informações sobre CloudWatch métricas emitidas pelo Kinesis Data Analytics usando o Lambda como saída, consulte Métricas do Amazon Kinesis Analytics.](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/aka-metricscollected.html)

## Modelo de dados de entrada de eventos de saída do Lambda e modelo de resposta de registros
<a name="how-it-works-output-lambda-model"></a>

Para enviar registros de saída do Kinesis Data Analytics, sua função do Lambda precisa ser compatível com os modelos de dados de entrada de eventos e modelos de resposta de registros exigidos. 

### Modelo de dados de entrada de eventos
<a name="how-it-works-output-lambda-model-request"></a>

O Kinesis Data Analytics envia continuamente os registros de saída do aplicativo para o Lambda como uma função de saída com o seguinte modelo de solicitação. Dentro da função, você percorre a lista e aplica a lógica de negócios para cumprir os requisitos de saída (como a transformação dos dados antes de enviá-los para um destino final).


<table>
<thead>
  <tr><th>Campo</th><th>Description</th></tr>
</thead>
<tbody>
  <tr><td>invocationId</td><td>ID de invocação do Lambda (GUID aleatório)</td></tr>
  <tr><td>applicationArn</td><td>O nome do recurso da Amazon (ARN) do aplicativo Kinesis Data Analytics</td></tr>
  <tr><td colspan="2">registros [See the AWS documentation website for more details](http://docs.aws.amazon.com/pt_br/kinesisanalytics/latest/dev/how-it-works-output-lambda.html) </td></tr>
</tbody>
</table>


**nota**  
O `retryHint` é um valor que aumenta a cada falha de entrega. Esse valor não é mantido permanentemente, e será redefinido se o aplicativo for interrompido.

### Modelo de resposta de registros
<a name="how-it-works-output-lambda-model-response"></a>

Cada registro enviado ao seu Lambda como uma função de saída (com registro IDs) deve ser confirmado com um `Ok` ou `DeliveryFailed` e deve conter os seguintes parâmetros. Caso contrário, o Kinesis Data Analytics os tratará como uma falha de entrega.


| Campo | Description | 
| --- | --- | 
| registros [See the AWS documentation website for more details](http://docs.aws.amazon.com/pt_br/kinesisanalytics/latest/dev/how-it-works-output-lambda.html)  | 
| recordId | O ID do registro é transmitido do Kinesis Data Analytics para o Lambda durante a invocação. Qualquer discrepância entre o ID do registro original e o ID do registro reconhecido é considerada como uma falha de entrega. | 
| result | O status da entrega do registro. Os valores possíveis são: [See the AWS documentation website for more details](http://docs.aws.amazon.com/pt_br/kinesisanalytics/latest/dev/how-it-works-output-lambda.html)  | 

## Frequência de invocação de saída do Lambda
<a name="how-it-works-output-lambda-frequency"></a>

Um aplicativo Kinesis Data Analytics armazena os registros de saída em buffers e invoca a função de destino do AWS Lambda com frequência.
+ Se os registros forem emitidos para o fluxo de destino no aplicativo de análise de dados como uma janela suspensa, a função de AWS Lambda destino será invocada por gatilho da janela intermitente. Por exemplo, se uma janela em cascata de 60 segundos é usada para emitir os registros para o fluxo no aplicativo de destino, a função do Lambda é invocada uma vez a cada 60 segundos.
+ Se os registros são emitidos para o fluxo no aplicativo de destino dentro do aplicativo como uma consulta contínua ou uma janela deslizante, a função de destino do Lambda é invocada aproximadamente uma vez por segundo.

**nota**  
[Os limites de tamanho da carga de solicitação por cada invocação da função do Lambda](https://docs.aws.amazon.com/lambda/latest/dg/limits.html) se aplicam. Exceder esses limites resulta em registros de saída divididos e enviados em várias chamadas da função do Lambda.

## Adição de uma função do Lambda para usar como uma saída
<a name="how-it-works-output-lambda-procedure"></a>

O procedimento a seguir demonstra como adicionar uma função do Lambda como saída em um aplicativo Kinesis Data Analytics.

1. [Faça login Console de gerenciamento da AWS e abra o console do Managed Service for Apache Flink em https://console.aws.amazon.com /kinesisanalytics.](https://console.aws.amazon.com/kinesisanalytics)

1. Escolha o aplicativo na lista e, em seguida, escolha **Application details**.

1. Na seção **Destination**, escolha **Connect new destination**.

1. Para o item **Destination (Destino)**, escolha ** Function (Função do)AWS Lambda **.

1. Na seção **Entregar registros para AWS Lambda**, escolha uma função e versão existentes do Lambda ou selecione **Criar novo**.

1. Se você estiver criando uma nova função do Lambda, faça o seguinte:

   1. Escolha um dos modelos fornecidos. Para obter mais informações, [Como criar funções do Lambda para destinos de aplicativos](how-it-works-output-lambda-functions.md).

   1. A página **Create Function** (Criar função) é aberta em uma nova guia do navegador. Na caixa **Name (Nome)**, atribua um nome significativo à função (por exemplo, **myLambdaFunction**).

   1. Atualize o modelo com a funcionalidade de pós-processamento para o seu aplicativo. Para obter informações sobre como criar uma função do Lambda, consulte [Conceitos básicos](https://docs.aws.amazon.com/lambda/latest/dg/getting-started.html) no * Guia do desenvolvedor do AWS Lambda *.

   1. No console do Kinesis Data Analytics, na lista de **funções do Lambda**, escolha a função do Lambda que você acabou de criar. Selecione **$LATEST** para a versão da função do Lambda.

1. Na seção **In-application stream**, escolha **Choose an existing in-application stream**. Em **In-application stream name**, escolha o fluxo de saída do seu aplicativo. Os resultados do fluxo de saída selecionado são enviadas para a função de saída do Lambda.

1. Deixe o restante do formulário com os valores padrão e escolha **Save and continue**.

O aplicativo agora envia registros do fluxo do aplicativo para a sua função do Lambda. Você pode ver os resultados do modelo padrão no CloudWatch console da Amazon. Monitore a métrica `AWS/KinesisAnalytics/LambdaDelivery.OkRecords` para ver o número de registros que estão sendo entregues à função do Lambda.

## Falhas comuns de Lambda como saída
<a name="how-it-works-output-lambda-troubleshooting"></a>

Veja a seguir os motivos comuns pelos quais a entrega a uma função do Lambda pode falhar.
+ Nem todos os registros (com registro IDs) em um lote que são enviados para a função Lambda são retornados ao serviço Kinesis Data Analytics. 
+ A resposta não tem o ID do registro ou o campo de status. 
+ Os tempos limite da função do Lambda não são suficientes para executar a lógica de negócios na função do Lambda.
+ A lógica de negócios da função do Lambda não detecta todos os erros, o que resulta na extrapolação do tempo limite e em uma pressão contrária devido à ocorrência de exceções não processadas. Essas são geralmente conhecidas como mensagens "poison pill".

Para falhas de entrega, o Kinesis Data Analytics continua a fazer novas tentativas de invocação do Lambda para o mesmo conjunto de registros até que tenha êxito. Para obter informações sobre falhas, você pode monitorar as seguintes CloudWatch métricas: 
+ Lambda do aplicativo Kinesis Data Analytics como métricas CloudWatch de saída: indica o número de sucessos e falhas, entre outras estatísticas. Para obter mais informações, consulte [Métricas do Amazon Kinesis Analytics](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/aka-metricscollected.html).
+ AWS Lambda CloudWatch métricas e registros de funções.