Precisa criar uma skill que armazena dados em uma tabela?
Nesse artigo eu vou te mostrar que você pode utilizar um banco de dados gratuitamente em sua skill.
Vamos conversar sobre o que é DynamoDB e como podemos usar em nossas skills.
O Que É DynamoDB?
Mas antes vamos começar com o que é DynamoDB.
O Amazon DynamoDB é um banco de dados de chave-valor NoSQL, sem servidor (Serverless) e totalmente gerenciado, projetado para executar aplicações de alta performance em qualquer escala.
O DynamoDB oferece segurança integrada, backups contínuos, replicação multirregional automatizada, armazenamento em cache na memória e ferramentas de exportação de dados.
A curiosidade aqui é que o DynamoDB foi desenvolvido pela Amazon. Ela criou este banco de dados para uso próprio e depois tornou disponível como serviço para seus clientes.
Componentes Do DynamoDB
Em termos de estrutura o DynamoDB tem suas semelhanças com bancos relacionais.
- Tabelas: como em outros bancos de dados, o DynamoDB armazena dados em tabelas.
- Itens: cada tabela contém zero ou mais itens. Um item é um grupo de atributos identificável exclusivamente entre todos os outros itens.
- Atributos: cada item é composto de um ou mais atributos. Um atributo é um elemento de dados fundamental, algo que não precisa ser dividido. São similares a colunas em banco de dados relacionais.
- Atributos Aninhados: O DynamoDB oferece suporte a atributos aninhados até 32 níveis de profundidade.
- Índices secundários: permite consultar os dados na tabela usando uma chave alternativa, além de consultas com base na chave primária.
- Chave primária: pode ser chave primária simples, de um atributo, ou uma chave composta por dois atributos.
Mas diferente dos bancos de dados relacionais, as tabelas podem ou não ter schemas. Cada item pode ter seus próprios atributos distintos.
Utilizando DynamoDB Em Skills
Até pouco tempo atrás, a única maneira de persistir dados em uma skill do tipo Alexa Hosted utilizando o nível gratuito que recebemos da AWS era utilizando o S3.
E já conversamos sobre o S3 aqui.
Bom, alguns meses atrás a Amazon começou a disponibilizar uma tabela no DynamoDB junto com os outros recursos provisionados numa skill do tipo Alexa Hosted.
Quando você cria uma skill desse tipo, além do Lambda, são provisionados outros serviços do AWS no nível gratuito, como o S3, CloudWatch e o DynamoDB.
Isso quer dizer que você não precisa fazer nada. Ao criar uma skill o provisionamento do DynamoDB é automático.
Você pode acessar o DynamoDB através do ícone correspondente na barra de ferramentas da aba Code no Console do Desenvolvedor.
Clicando nele, uma outra aba do navegador no DynamoDB será aberta:
Acessando O DynamoDB Pela Skill
O ASK possui um adaptador para manipular dados no DynamoDB.
Aqui não tem nada de novo para quem já desenvolve para web.
Inclui um pacote na solução, importa no código e usa os métodos do pacote para criar uma conexão e acessar a base de dados.
Segue um passo a passo bem alto nível de como fazer esse acesso dentro do código da sua skill.
- Adicione a dependência do pacote de acesso ao DynamoDB no arquivo package.json
- No arquivo index.js arquivo, adicione o código. Importe o adaptador de persistência ask.
- Inclua o manipulador SessionEndedRequestHandler. Não sobrescreva outros manipuladores de solicitação.
- Crie um manipulador para salvar atributos.
- Crie um manipulador para ler atributos.
Se você achou interessante e quer que eu fale sobre como utilizar o DynamoDB no código da skill com mais detalhes, faz um comentário aí embaixo.
Palavras Finais
O que é DynamoDB? O Amazon DynamoDB é um serviço de banco de dados NoSQL da AWS totalmente gerenciado que fornece uma performance rápida e previsível com escalabilidade integrada.
Diferente de um banco de dados relacional, as interações com o DynamoDB são stateless, ou seja, os aplicativos não precisam manter conexões de rede persistentes.
Ao criar uma skill do tipo Alexa Hosted, é provisionada uma tabela do DynamoDB para persistir dados que faz parte do nível gratuito da AWS.
Meu e-book Como Aprender a Programar do Absoluto Zero está GRATUITO por tempo limitado!
Olha o link: 👉🏼 http://celsokitamura.com.br/como-aprender-a-programar
Bora aprender a programar!
Deixe um comentário