Visão geral
Chamando todos os super-heróis da AWS! Crie um gerador de dossiês de missão usando o DynamoDB nesta série de laboratórios de três partes usando o DynamoDB. Você terá acesso a instruções detalhadas para completar a Parte 1. Neste laboratório, você criará a infraestrutura necessária para os próximos dois laboratórios. Você criará uma tabela do DynamoDB, adicionará dados e, em seguida, analisará as funções e políticas necessárias do IAM que usará para conceder acesso seguro a esses dados.
Nos laboratórios 2 e 3, você criará funções do Lambda que interagem com o DynamoDB, criará uma API por meio do serviço API Gateway e, finalmente, publicará uma aplicação pública na web, utilizando todas as habilidades do DynamoDB aprendidas nos três laboratórios. No final da parte 3, você será capaz de gerar dossiês de missão e enviar seus super-heróis para salvar o mundo!
TÓPICOS ABORDADOS
Ao final do curso, você poderá:
- Criar uma tabela do Amazon DynamoDB
- Adicionar itens à sua tabela do Amazon DynamoDB
- Entender a estrutura das funções e as políticas do IAM necessárias para acessar sua tabela
PRÉ-REQUISITOS
Você deve se familiarizar com os principais conceitos realizando os laboratórios Introduction to Amazon DynamoDB e Introduction to AWS Identity and Access Management (IAM). Este é o primeiro de uma série de laboratórios de três partes. Cada um dos três laboratórios pode ser realizado de forma independente, mas como eles se baseiam no que você aprendeu anteriormente, realizar os três em ordem é a melhor experiência de aprendizado.
OUTROS SERVIÇOS DA AWS
Outros produtos da AWS, além dos necessários para esse laboratório, são desabilitados pela política do IAM durante o tempo de acesso nesse laboratório. Além disso, os recursos dos serviços usados neste laboratório são limitados ao que é exigido pelo laboratório e, em alguns casos, são ainda mais limitados como um aspecto intencional do projeto do laboratório. Espere erros ao acessar outros serviços ou executar ações além das fornecidas neste guia de laboratório.
AMAZON DYNAMODB
O Amazon DynamoDB é um serviço de banco de dados NoSQL rápido e flexível para todas as aplicações que precisam de latência estável abaixo de 10 milissegundos, em qualquer escala. O serviço é um banco de dados em nuvem gerenciado e é compatível com os modelos de armazenamento de documentos e chave-valor. O modelo de dados flexível e o desempenho confiável fazem dele a escolha perfeita para aplicativos móveis e da web, jogos, tecnologia de anúncios, IoT e muitas outras aplicações.
Você pode usar o Amazon DynamoDB para criar uma tabela de banco de dados que pode armazenar e recuperar qualquer quantidade de dados, assim como atender a todos os níveis de solicitação de tráfego. O Amazon DynamoDB distribui automaticamente os dados e o tráfego da tabela por um número suficiente de servidores que atenda à capacidade de requisições especificada pelo cliente e a quantidade de dados armazenados, enquanto mantém uma performance consistente e rápido.
TERMINOLOGIA DO DYNAMODB
Tabelas Semelhante a outros sistemas de gerenciamento de banco de dados, o DynamoDB armazena dados em tabelas. Uma tabela é uma coleção de dados. Por exemplo, neste laboratório, você criará uma tabela chamada SuperMission, onde armazenará as informações da missão. Você também pode ter uma tabela People (Pessoas) para armazenar dados sobre amigos, familiares ou qualquer outra pessoa de interesse, ou uma tabela Cars (Carros) para armazenar informações sobre os veículos que as pessoas dirigem.
Itens Cada tabela contém vários itens. Um item é um grupo de atributos identificáveis exclusivamente entre todos os outros itens. Em uma tabela People (Pessoas), cada item representaria uma pessoa. Para uma tabela Cars (Carros), cada item representa um veículo. Os itens são semelhantes de várias maneiras, incluindo linhas, registros ou tuplas em sistemas de banco de dados relacionais. No DynamoDB, não há limite para o número de itens que você pode armazenar em uma tabela.
Atributos Cada item é composto por um ou mais atributos. Um atributo é um elemento de dados fundamental, algo que não precisa ser mais decomposto. Neste laboratório, você criará um item de missão com atributos como SuperHero, MissionStatus, Villain1, Villain2, Villain3 e SecretIdentity. Como outro exemplo, um item de Department (Departamento) pode ter atributos como DepartmentID (ID do departamento), Name (Nome), Manager (Gerente) e assim por diante. Um item em uma tabela People (Pessoas) pode conter atributos como PersonID (ID da pessoa), LastName (Sobrenome), FirstName (Nome) e assim por diante. Os atributos no DynamoDB são semelhantes de muitas maneiras aos campos ou colunas em outros sistemas de gerenciamento de banco de dados.
Chave primária Ao criar uma tabela, além do nome da tabela, você deve especificar a chave primária da tabela. Como em outros bancos de dados, uma chave primária no DynamoDB identifica exclusivamente cada item na tabela, de modo que dois itens não podem ter a mesma chave. Ao adicionar, atualizar ou excluir um item da tabela, você deve especificar os valores de atributo da chave primária para esse item. Os valores de chave são obrigatórios; você não pode omiti-los. O DynamoDB oferece suporte a dois tipos diferentes de chaves primárias: Partition Key (Chave de partição) e Partition Key and Sort Key (Chave de partição e Chave de classificação).
Índices secundários No DynamoDB, você pode ler dados em uma tabela fornecendo valores de atributo de chave primária. Se quiser ler os dados usando atributos que não são de chave, você pode usar um índice secundário para fazer isso. Depois de criar um índice secundário em uma tabela, você pode ler os dados do índice da mesma maneira que faz na tabela. Ao usar índices secundários, seus aplicativos podem usar muitos padrões de consulta diferentes, além de acessar os dados por valores de chave primária.
DOCUMENTAÇÃO DO AWS IDENTITY AND ACCESS MANAGEMENT
O AWS Identity and Access Management (IAM) é um web service que possibilita a clientes da Amazon Web Services (AWS) gerenciar usuários e permissões de usuário na AWS. O serviço é direcionado a organizações com múltiplos usuários ou sistemas que utilizam produtos da AWS tais como o Amazon DynamoDB, AWS Lambda e Console de Gerenciamento da AWS. Com o IAM, você pode gerenciar de forma centralizada usuários, credenciais de segurança, como chaves de acesso, e permissões que controlam quais recursos da AWS os usuários podem acessar. Para obter mais informações, consulte https://aws.amazon.com/iam/.
AWS LAMBDA
O AWS Lambda é um serviço de computação que fornece capacidade computacional redimensionável na nuvem para tornar a computação em escala da web mais fácil para os desenvolvedores. Faça upload do seu código para o AWS Lambda e o recurso cuidará do provisionamento e do gerenciamento dos servidores que você usa para executar o código. O AWS Lambda oferece suporte a várias linguagens de codificação: Node.js, Java ou Python. Você pode usar o AWS Lambda de duas maneiras:
- Como um serviço de computação orientado a eventos em que o AWS Lambda executa seu código em resposta a eventos, como fazer o upload de arquivos de imagem, que você verá neste laboratório.
- Como um serviço de computação para executar seu código em resposta a solicitações HTTP usando o Amazon API Gateway ou chamadas de API.
O AWS Lambda transmite os benefícios financeiros da escala da Amazon para você. O Lambda executa seu código apenas quando necessário e escala automaticamente, de algumas solicitações por dia a milhares por segundo. O Lambda torna mais fácil construir gatilhos de processamento de dados para serviços AWS como Amazon S3 e Amazon DynamoDB, processar dados de streaming armazenados no Amazon Kinesis ou criar seu próprio back-end que opera em escala, performance e segurança da AWS.
Este guia de laboratório explica passo a passo os conceitos básicos da AWS. No entanto, talvez ele forneça apenas uma breve visão geral dos conceitos do Lambda. Para obter mais informações, consulte a Documentação oficial do Amazon Web Services para o Lambda em https://aws.amazon.com/documentation/lambda/. Para obter detalhes de preço, consulte https://aws.amazon.com/lambda/pricing/.