Servidor Couchbase

Eventos agendados do AWS Serverless Lambda para armazenar tweets no Couchbase

Este blog explicou alguns conceitos do Serverless com exemplos de código:

Esta entrada de blog específica mostrará como usar o AWS Lambda para armazenar tweets de um tweeter em Couchbase. Aqui estão os componentes de alto nível:

lambda-twitter-couchbase

Os principais conceitos são:

O código de amostra completo para este blog está disponível em github.com/arun-gupta/twitter-n1ql.

Modelo de aplicativo sem servidor

Modelo de aplicativo sem servidorou SAM, define uma sintaxe simplificada para expressar recursos sem servidor. O SAM estende AWS CloudFormation para
adicionar suporte para API Gateway, AWS Lambda e Amazon DynamoDB. Leia mais detalhes em Microsserviço usando o modelo de aplicativo sem servidor do AWS e o Couchbase.
Para nosso aplicativo, o modelo SAM está disponível em github.com/arun-gupta/twitter-n1ql/blob/master/template-example.yml e mostrado abaixo:

O que estamos vendo aqui?

  • A função é embalada e está disponível em um balde S3
  • A classe do manipulador é org.sample.twittter.TwitterRequestHandler e está em github.com/arun-gupta/twitter-n1ql/blob/master/twitter-feed/src/main/java/org/sample/twitter/TwitterRequestHandler.java.
    Parece que sim:

    Por padrão, essa classe lê o identificador do Twitter de Donald Trump. Mais informações sobre isso em um próximo blog.
  • COUCHBASE_HOST e COUCHBASE_BUCKET_PASSWORD são variáveis de ambiente que fornecem o host do EC2 onde o banco de dados do Couchbase está sendo executado e a senha do bucket.
  • A função pode ser acionada por diferentes eventos. Em nosso caso, ela é acionada a cada três horas. Mais detalhes sobre a expressão usada aqui estão em Programar expressões usando Rate ou Cron.

Obtenção de tweets usando o Twitter4J

Os tweets são lidos usando Twitter4J API. É uma API não oficial do Twitter que fornece uma abstração Java sobre API REST do Twitter. Aqui está um exemplo simples:

Documentos do Twitter4J e Javadocs são bastante abrangentes. A API do Twitter permite ler apenas os últimos 200 tweets. A função Lambda é chamada a cada 3 horas.
A frequência de tuítes de @realDonaldTrump não é de 200 a cada 3 horas, pelo menos por enquanto. Se atingir esse nível perigoso, poderemos ajustar a taxa para acionar a função Lambda com mais frequência.
A representação JSON de cada tweet é armazenada no servidor Couchbase usando SDK Java do Couchbase. O AWS Lambda é compatível com Node, Python e C#. E assim
você pode usar SDK do nó do Couchbase, SDK do Couchbase em Python ou
SDK do Couchbase .NET para escrever essas funções também. A API do Twitter4J permite buscar tweets desde o id de um determinado tweet. Isso permite
garantir que não sejam buscados tweets duplicados. Para isso, precisamos classificar todos os tweets em uma ordem específica e, em seguida, escolher o ID do tweet mais recente. Isso foi resolvido usando o simples Consulta N1QL:

A sintaxe é muito parecida com a do SQL. Mais informações sobre isso em um próximo blog.

Armazenar tweets no Couchbase

O item final é armazenar os tweets recuperados no Couchbase. Valor de COUCHABSE_HOST é usada para se conectar à instância do Couchbase. O valor de COUCHBASE_BUCKET_PASSWORD variável de ambiente
é conectar-se ao bucket seguro em que todos os documentos JSON são armazenados. É muito importante que o bucket seja protegido por senha e não seja especificado diretamente no código-fonte. Falaremos mais sobre isso em um próximo blog. O documento JSON
é inserido (inserção ou atualização) no Couchbase usando a API Java do Couchbase:

Essa função Lambda está sendo executada há alguns dias e capturou 258 tweets de @realDonaldTrump.

Uma análise interessante de seus tweets será publicada em breve!

Fale conosco:

O código de amostra completo para este blog está disponível em github.com/arun-gupta/twitter-n1ql.

Compartilhe este artigo
Receba atualizações do blog do Couchbase em sua caixa de entrada
Esse campo é obrigatório.

Autor

Postado por Arun Gupta, vice-presidente de defesa do desenvolvedor, Couchbase

Arun Gupta é o vice-presidente de defesa do desenvolvedor na Couchbase. Ele criou e liderou comunidades de desenvolvedores por mais de 10 anos na Sun, Oracle e Red Hat. Ele tem grande experiência na liderança de equipes multifuncionais para desenvolver e executar estratégias, planejamento e execução de conteúdo, campanhas de marketing e programas. Antes disso, liderou equipes de engenharia na Sun e é membro fundador da equipe Java EE. Gupta é autor de mais de 2.000 postagens em blogs sobre tecnologia. Ele tem uma vasta experiência em palestras em mais de 40 países sobre diversos tópicos e é um JavaOne Rock Star há três anos consecutivos. Gupta também fundou o capítulo Devoxx4Kids nos EUA e continua a promover a educação tecnológica entre as crianças. Autor de vários livros sobre tecnologia, corredor ávido, viajante do mundo inteiro, campeão de Java, líder de JUG, membro do NetBeans Dream Team e capitão do Docker, ele pode ser facilmente acessado em @arungupta.

Deixe um comentário

Pronto para começar a usar o Couchbase Capella?

Iniciar a construção

Confira nosso portal do desenvolvedor para explorar o NoSQL, procurar recursos e começar a usar os tutoriais.

Use o Capella gratuitamente

Comece a trabalhar com o Couchbase em apenas alguns cliques. O Capella DBaaS é a maneira mais fácil e rápida de começar.

Entre em contato

Deseja saber mais sobre as ofertas do Couchbase? Deixe-nos ajudar.