# Arquitetura de referência sem servidor: processamento de fluxos em tempo real Você pode usar [AWS Lambda](http://aws.amazon.com/lambda/) e Amazon Kinesis para processar dados de streaming em tempo real para rastreamento de atividades do aplicativo, processamento de pedidos de transação, análise de fluxo de clique, limpeza de dados, geração de métricas, filtragem de registros, indexação, análise de mídias sociais e medição e telemetria de dados de dispositivos IoT. A arquitetura descrita neste [diagrama](https://s3.amazonaws.com/awslambda-reference-architectures/stream-processing/lambda-refarch-streamprocessing.pdf) pode ser criada com um modelo do AWS CloudFormation. [O modelo](https://s3.amazonaws.com/awslambda-reference-architectures/stream-processing/template.yaml) faz o seguinte: - Cria um fluxo do Kinesis - Cria uma tabela do DynamoDB chamada <stackname>-EventData - Cria uma função 1 do Lambda (<stackname>-DDBEventProcessor) que recebe registros do Kinesis e grava registros na tabela do DynamoDB - Cria uma função IAM e uma política para permitir o processamento de eventos do Lambda, a leitura de função do fluxo do Kinesis e a gravação na tabela do DynamoDB - Cria um usuário IAM com permissão para colocar eventos no fluxo do Kinesis junto com credenciais a serem usadas pelo usuário em um cliente de API ## Instruções Etapa 1 - Crie uma pilha do AWS CloudFormation com [o modelo](https://s3.amazonaws.com/awslambda-reference-architectures/stream-processing/template.yaml). O modelo do AWS CloudFormation automatiza totalmente a criação, a implantação e a configuração de todos os componentes do aplicativo. Etapa 2 - Assim que a pilha do AWS CloudFormation tiver sido criada, você poderá selecionar a guia Resultados e ver os parâmetros de AWS necessários no cliente do Twitter de demonstração nas etapas abaixo. Etapa 3 - Para executar o aplicativo de exemplo, você precisa atualizar o código com informações do AWS e do Twitter. Abra producer/twitter2kinesis.py em um editor de texto. Etapa 4 - Para acessar a API do Twitter, você precisa obter [tokens de acesso](https://dev.twitter.com/oauth/overview/application-owner-access-tokens). Verifique se eles estão disponíveis e insira as informações nos seguintes parâmetros: Os parâmetros da API do Twitter ``` consumer_key = "" consumer_secret = "" access_token_key = "" access_token_secret = "" ``` Etapa 5 - Insira os valores das credenciais do AWS e o nome do fluxo do Amazon Kinesis. Estas são as informações da guia Resultados do modelo do CloudFormation que você obteve na etapa 2: Parâmetros do AWS - na guia Resultados do modelo do CloudFormation ``` access_key = "" secret_access_key = "" region = "" stream_name = "" ``` Etapa 6 - Finalmente, antes de executar o código de exemplo, você precisa instalar o [Python](https://www.python.org/) junto com os módulos Python boto3 e TwitterAPI. Se você ainda não tiver os módulos, instale-os usando [pip](http://pip.readthedocs.org/en/stable/installing/): ``` pip install boto3 TwitterAPI ``` ## Teste ![Client and Stream Processor Diagram](images/streamprocessing-diagram.png) Etapa 1 - Execute o aplicativo Python producer/twitter2kinesis.py na linha de comando para começar a enviar tweets no fluxo do Kinesis. ``` python twitter2kinesis.py ``` Etapa 2 - No console de gerenciamento do Amazon DynamoDB, selecione a tabela chamada <stackname>-EventData e explore os registros. ## Limpeza Para remover todos os recursos criados, exclua a pilha do AWS CloudFormation.