Consulta SQL++ / N1QL

Desenvolvimento de funções AWS Lambda com Golang e Couchbase NoSQL

Nic Raboy

Nic Raboy é um defensor das modernas tecnologias de desenvolvimento móvel e da Web. Ele tem experiência em Java, JavaScript, Golang e uma variedade de estruturas, como Angular, NativeScript e Apache Cordova. Nic escreve sobre suas experiências de desenvolvimento relacionadas a tornar o desenvolvimento móvel e da Web mais fácil de entender.

Há mais ou menos um ano, quando as funções como serviço (FaaS) começaram a se tornar populares, escrevi alguns tutoriais sobre o desenvolvimento de funções que usavam Couchbase como o banco de dados NoSQL. Por exemplo, Use o AWS Lambda e o API Gateway com Node.js e Couchbase NoSQL focado no Node.js, que é uma das minhas tecnologias de programação favoritas. No entanto, na época, minha outra tecnologia de programação favorita, a Golang, ainda não era compatível com o Amazon Web Services (AWS) Lambda. Avançando um pouco, a Golang agora é compatível com o Lambda e é incrivelmente fácil de usar em combinação com o Couchbase por causa da tecnologia bem elaborada Go SDK para o Couchbase.

Neste tutorial, vamos dar uma olhada em como criar uma função no AWS Lambda que se comunica com o Couchbase usando a linguagem de programação Go.

Criação de uma função Go Lambda para criar e consultar dados NoSQL

Como o Go agora é oficialmente compatível com o AWS, podemos usar o SDK oficial em vez de tentar criar algo próprio. Em seu **$GOPATH**, crie um novo projeto e execute os seguintes comandos:

Os comandos acima farão o download do Lambda SDK, bem como do Couchbase SDK para Golang. Também estamos baixando um pacote UUID que nos permitirá criar valores exclusivos que representarão nossas chaves de documento NoSQL.

Com as dependências disponíveis, crie um arquivo **main.go** e inclua o seguinte código padrão:

Antes de entrarmos no design da função, vamos decompor o código acima.

Além de importar nossas dependências, estamos criando duas estruturas de dados nativas. A primeira Todo representará os dados com os quais planejamos trabalhar no aplicativo. Para maior clareza, vamos criar um aplicativo simples do tipo lista de tarefas que nos permitirá salvar itens de tarefas e consultá-los. A segunda estrutura de dados representará nossas solicitações de entrada para a função. As solicitações de entrada em nosso exemplo devem conter JSON com um todo propriedade ou nada.

Também estamos criando um balde que poderá ser acessada de qualquer outro lugar em nosso código. Dentro da variável principal podemos nos conectar à nossa instância do Couchbase e abrir esse bucket. É importante que sua instância do Couchbase não esteja sendo executada em localhost porque o Lambda, um serviço remoto, precisa ser capaz de acessá-lo.

Depois de configurar o banco de dados, podemos iniciar o Lambda e apontá-lo para o nosso Manipulador função. Em geral, cada função deve realizar uma tarefa específica, mas a nossa função tratará da consulta e da criação de dados.

Dê uma olhada no Manipulador código de função abaixo:

Quando a função Lambda é executada, queremos dar uma olhada no solicitação que chega. Se ela estiver vazia ou contiver apenas propriedades que não nos interessam, consultaremos nossos itens de todo. Usando N1QL podemos consultar o nosso bucket e retornar todos os itens como uma resposta JSON com string.

Se a entrada solicitação não estiver vazia, isso significa que queremos criar alguns dados em nosso banco de dados. Usando um UUID, podemos receber a solicitação e criar um novo documento sem expiração. Em seguida, os próprios dados são retornados.

Nossa função geral poderia ser projetada de forma mais elegante, mas o objetivo do que estamos fazendo deve estar claro. A configuração e o uso do Couchbase não são realmente diferentes de como o usamos em um aplicativo RESTful ou GraphQL, mas, desta vez, projetamos nosso código como uma função Lambda.

Com a função pronta para funcionar, podemos trabalhar em nossa implantação.

Implantação e teste da função AWS Lambda

Quando se trata do AWS Lambda, há certos requisitos que diferem de como podemos executar nosso aplicativo localmente. Por exemplo, o Lambda usa um sistema operacional específico e uma arquitetura potencialmente diferente da que estamos usando localmente. Por esse motivo, precisamos compilar nosso aplicativo de forma cruzada e, em seguida, empacotá-lo.

Na linha de comando, execute o seguinte:

Os comandos acima serão compilados para o Linux e criarão um arquivo do binário. Apenas certifique-se de alterar nome binário com o de seu nome binário real. Se o zíper não funcionar em seu sistema operacional, arquive-o manualmente.

Para obter mais informações sobre a compilação cruzada de aplicativos Go, consulte meu tutorial anterior sobre o assunto: Compilação cruzada de aplicativos Golang para uso em um Raspberry Pi.

Com o arquivo **handler.zip** disponível, vá para o diretório Console do AWS Lambda onde podemos criar uma nova função.

Ao criar a função, escolha os padrões, mas certifique-se de escolher um aplicativo Go 1.x, pois é isso que vamos implantar. Quando estiver no painel da função, não se preocupe em adicionar um acionador para este exemplo. Em vez disso, escolha carregar o código da função, que é o arquivo **handler.zip**. Para o **Handler**, certifique-se de usar o nome do binário do seu aplicativo.

Para testar nossa implementação, podemos criar um teste diretamente no painel. Na parte superior da tela, escolha configurar um novo evento de teste. Você pode nomear o evento de teste como quiser, mas adicione o seguinte como conteúdo da solicitação:

Depois de salvar o evento de teste, execute-o no painel e veja os resultados. Ele deve ter sido executado com êxito e você deve ter um novo documento no banco de dados do Couchbase.

Conclusão

Você acabou de ver como criar uma nova função AWS Lambda com a linguagem de programação Go que se comunica com Servidor Couchbase. O processo é bastante simples e pode ser ampliado com acionadores como o AWS Gateway para torná-lo um pouco mais útil do ponto de vista do uso.

No próximo tutorial, vamos dar uma olhada na expansão deste tutorial para oferecer suporte a dispositivos com o Amazon Alexa. Dessa forma, poderemos usar a Alexa como nosso acionador e criar ou consultar documentos com nossa voz.

Esta postagem faz parte do Programa de Redação da Comunidade Couchbase

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

Autor

Postado por Laura Czajkowski

Laura Czajkowski é a Snr. Developer Community Manager da Couchbase, supervisionando a comunidade. Ela é responsável pelo nosso boletim informativo mensal para desenvolvedores.

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.