Fontes de dados - AWS AppSync

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Fontes de dados

Na seção anterior, aprendemos que um esquema define a forma dos seus dados. No entanto, não explicamos de onde vieram esses dados. Em projetos reais, seu esquema é como um gateway que manipula todas as solicitações feitas ao servidor. Quando uma solicitação é feita, o esquema atua como o único endpoint que interage com o cliente. O esquema acessa, processa e retransmite dados da fonte de dados para o cliente. Veja o infográfico abaixo:

O AWS AppSync e o GraphQL implementam de forma excelente as soluções Backend For Frontend (BFF). Eles trabalham em conjunto para reduzir a complexidade em grande escala ao abstrair o back-end. Caso seu serviço use fontes de dados e/ou microsserviços diferentes, você pode basicamente abstrair parte da complexidade definindo a forma dos dados de cada fonte (subgráfico) em um único esquema (supergráfico). Isso significa que sua API GraphQL não precisa usar uma única fonte de dados. Você pode associar qualquer número de fontes de dados à sua API GraphQL e especificar no seu código como elas interagirão com o serviço.

Como você pode ver no infográfico, o esquema do GraphQL contém todas as informações que os clientes precisam para solicitar dados. Isso significa que tudo pode ser processado em uma única solicitação, em vez de várias solicitações, como é o caso do REST. Essas solicitações passam pelo esquema, que é o único endpoint do serviço. Quando as solicitações são processadas, um resolvedor (explicado na próxima seção) executa seu código para processar os dados da fonte de dados relevante. Quando a resposta for retornada, o subgráfico vinculado à fonte de dados será preenchido com os dados no esquema.

O AWS AppSync oferece suporte a vários tipos diferentes de fontes de dados. Na tabela abaixo, descreveremos cada tipo, listaremos alguns dos benefícios de cada um e forneceremos links úteis que trazem mais contexto.

Fonte de dados Descrição Benefícios Informações complementares
Amazon DynamoDB “O Amazon DynamoDB é um serviço de banco de dados NoSQL totalmente gerenciado que fornece uma performance rápida e previsível com escalabilidade integrada. O DynamoDB permite que você transfira os encargos administrativos de operação e escalabilidade de um banco de dados distribuído. Assim, você não precisa se preocupar com provisionamento, instalação e configuração de hardware, replicação, correção de software nem escalabilidade de cluster. Além disso, o DynamoDB oferece criptografia em repouso, o que elimina a carga e a complexidade operacionais envolvidas na proteção de dados confidenciais.”

  • Desempenho em grande escala: o DynamoDB foi projetado pensando no desempenho consistente em qualquer escala. Isso é possível graças ao uso de partições. O DynamoDB particiona automaticamente suas tabelas em várias alocações que serão armazenadas em vários SSDs em vários nós. Isso geralmente aumenta o throughput da rede e reduzi a latência.

  • Capacidade em grande escala: o DynamoDB monitora seu tráfego e permite que você escale automaticamente seu throughput se a rede permanecer sobrecarregada por longos períodos.

  • Disponibilidade e tolerância a falhas: o DynamoDB é compatível com várias regiões fisicamente isoladas, cada uma contendo várias zonas de disponibilidade fisicamente isoladas. O DynamoDB alterna da automaticamente para uma zona de backup em caso de interrupção do serviço. Você também pode fazer o backup e a replicação dos dados manualmente para garantir a segurança dos dados.

  • Logs e monitoramento: o DynamoDB fornece várias ferramentas analíticas para suas tabelas. Você pode monitorar o desempenho da sua tabela e criar alarmes que notificam sobre mudanças drásticas no serviço.

  • Segurança: o DynamoDB segue protocolos rígidos para garantir que seus dados estejam em conformidade com os requisitos de segurança da sua organização.

  • Integração com o AWS AppSync: o DynamoDB está perfeitamente integrado ao nosso serviço. Você pode criar novas tabelas do DynamoDB e gerar automaticamente um esquema a partir delas para agilizar seu processo de desenvolvimento. Também fornecemos uma coleção completa de operações para solicitar facilmente dados de tabelas existentes do DynamoDB em sua conta em seu resolvedor.

AWS Lambda “O AWS Lambda é um serviço de computação que permite executar código sem o provisionamento ou gerenciamento de servidores.

O Lambda executa seu código em uma infraestrutura de computação de alta disponibilidade e executa toda a administração dos recursos computacionais, incluindo manutenção do servidor e do sistema operacional, provisionamento e escalabilidade automática da capacidade e registro em log do código. Com o Lambda, tudo o que você precisa fazer é fornecer seu código em um dos runtimes de linguagens compatíveis com o Lambda.”

  • Modelo de pagamento conforme o uso: o Lambda só cobra quando você usa seus recursos. Ele também permite que você escale a quantidade de recursos usados de acordo com as necessidades do seu aplicativo.

  • Escalabilidade automática: às vezes, seu aplicativo pode exigir poder computacional extra para um processo específico. O Lambda permite que você escale automaticamente os recursos de computação para atender às necessidades do seu aplicativo.

  • Tempos de implantação mais rápidos: você pode simplificar seu processo de desenvolvimento por meio de um pacote de implantação. Use um pacote para carregar seu código de função no serviço Lambda. Em seguida, você pode usar seus ambientes de runtime para testar e executar suas funções.

  • Versatilidade: o Lambda pode ser usado em vários casos de uso. Você pode integrar perfeitamente o Lambda com serviços da AWS e serviços de terceiros. Alguns exemplos incluem pipelines de CI/CD e serviços de envio em massa.

  • Integração com o AWS AppSync: você pode facilmente invocar suas funções do Lambda em seu resolvedor para lidar com solicitações. Nosso serviço fornece uma operação de solicitação simplificada para realizar chamadas do Lambda. Permitimos chamadas individuais e em lote.

OpenSearch “O Amazon OpenSearch Service é um serviço gerenciado que facilita a implantação, a operação e a escalabilidade de clusters do OpenSearch na Nuvem AWS. O Amazon OpenSearch Service oferece suporte ao OpenSearch e ao Elasticsearch OSS legado (até a 7.10, a versão final de código aberto do software). Ao criar um cluster, você tem a opção de escolher qual mecanismo de pesquisa deseja usar.

O OpenSearch é um conhecido mecanismo de pesquisa e análise com código totalmente aberto para casos de uso como análise de logs, monitoramento de aplicações em tempo real e análise de fluxos de cliques. Para obter mais informações, consulte a documentação do OpenSearch.

O Amazon OpenSearch Service provisiona todos os recursos para seu cluster do OpenSearch e o inicia. Ele também detecta e substitui automaticamente os nós do OpenSearch Service que apresentam falhas, reduzindo os custos indiretos associados a infraestruturas autogerenciadas. Você pode escalar seu cluster com uma única chamada de API ou alguns cliques no console.”

  • Escalabilidade: você pode escalar facilmente o serviço para atender às suas necessidades de serviço por meio do OpenSearch Serverless.

  • Ingestão de dados: você pode usar o OpenSearch Ingestion para importar, processar e analisar dados. Há muitos aplicativos para ingestão de dados, que você pode encontrar aqui.

  • Segurança: o OpenSearch pode gerenciar sua configuração de segurança da AWS, incluindo IAM, CloudTrail, VPCs, autenticação etc.

  • Disponibilidade: o OpenSearch também oferece suporte a diferentes regiões e zonas de disponibilidade em seu serviço.

  • Integração com o AWS AppSync: no AWS AppSync, você pode usar as APIs do GraphQL para armazenar e recuperar dados de domínios existentes do OpenSearch Service em sua conta.

Endpoints de HTTP Você pode usar endpoints HTTP como fontes de dados. O AWS AppSync pode enviar solicitações aos endpoints com as informações relevantes, como parâmetros e carga útil. A resposta HTTP será exposta ao resolvedor, que retornará a resposta final após concluir suas operações.
  • Isso é útil para aplicativos simples que não são tão integrados a serviços como o Lambda.

Amazon EventBridge “O EventBridge é um serviço com tecnologia sem servidor que usa eventos para conectar os componentes da aplicação, facilitando a criação de aplicações escaláveis orientadas por eventos. Use-o para rotear eventos de fontes como aplicações, serviços da AWS e software de terceiros desenvolvidos internamente para aplicações de consumo em toda a sua organização. O EventBridge fornece maneiras simples e consistentes de ingerir, filtrar, transformar e entregar eventos para que você possa criar aplicativos rapidamente.”

  • Arquitetura orientada a eventos: você pode tirar proveito da arquitetura orientada a eventos.

  • Programação: você pode usar o EventBridge Scheduler para automatizar suas tarefas e regras usando expressões cron ou definir intervalos de tempo como alternativa aos padrões de eventos.

  • Pipes: usando o EventBridge Pipes, você pode substituir o barramento de eventos por um canal que inclui padrões adicionais de eventos de filtragem e enriquecimento por meio de transformações de dados antes de enviar o evento ao destino.

  • Integração com o AWS AppSync: o AWS AppSync permite que você envie eventos para barramentos de eventos usando seu resolvedor.

Bancos de dados relacionais “O Amazon Relational Database Service (Amazon RDS) é um serviço Web que facilita a configuração, operação e escalabilidade de um banco de dados relacional na Nuvem AWS. Ele fornece capacidade econômica e redimensionável para um banco de dados relacional padrão do setor e gerencia tarefas comuns de administração de banco de dados.

  • Gerenciamento facilitado: periodicamente, o RDS realiza a manutenção de seus recursos. Geralmente, a manutenção envolve atualizações do hardware subjacente da instância do banco de dados, do sistema operacional (SO) subjacente ou da versão do mecanismo de banco de dados. Em circunstâncias normais, você pode decidir quando realizar as atualizações (as exceções incluem patches de segurança).

  • Recomendações: o atributo de recomendação do RDS fornece sugestões automatizadas para corrigir possíveis problemas em sua instância.

  • Disponibilidade: o RDS está disponível em diferentes regiões físicas em todo o mundo. Você pode distribuir facilmente suas necessidades de banco de dados em diferentes nós para fornecer um melhor serviço aos seus clientes.

  • Personalização: o RDS é adaptado para atender aos requisitos de grandes corporações. O RDS oferece várias opções para computação, implantação rápida, escalabilidade e armazenamento.

  • Segurança: o RDS é integrado a várias ferramentas e serviços para manter a segurança do banco de dados nos níveis de usuário, banco de dados e rede.

  • Integração com o AWS AppSync: se você está procurando uma solução de back-end madura, o AWS AppSync permite enviar, processar, armazenar e retornar dados usando sua instância como fonte de dados.

Fonte de dados none Se você não pretende usar uma fonte de dados, pode defini-la como none. Uma fonte de dados none, embora ainda seja explicitamente categorizada como fonte de dados, não é um meio de armazenamento. Apesar disso, ela ainda é útil em algumas instâncias para manipulação e passagem de dados.
  • Pode ser útil também para atividades como conversão de dados

  • Útil ao resolver algo localmente

dica

Para obter mais informações sobre como as fontes de dados interagem com o AWS AppSync, consulte Anexar uma fonte de dados.