Selecione suas preferências de cookies

Usamos cookies essenciais e ferramentas semelhantes que são necessárias para fornecer nosso site e serviços. Usamos cookies de desempenho para coletar estatísticas anônimas, para que possamos entender como os clientes usam nosso site e fazer as devidas melhorias. Cookies essenciais não podem ser desativados, mas você pode clicar em “Personalizar” ou “Recusar” para recusar cookies de desempenho.

Se você concordar, a AWS e terceiros aprovados também usarão cookies para fornecer recursos úteis do site, lembrar suas preferências e exibir conteúdo relevante, incluindo publicidade relevante. Para aceitar ou recusar todos os cookies não essenciais, clique em “Aceitar” ou “Recusar”. Para fazer escolhas mais detalhadas, clique em “Personalizar”.

Usando resolvedores locais em AWS AppSync

Modo de foco
Usando resolvedores locais em AWS AppSync - AWS AppSync GraphQL

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á.

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á.

AWS AppSync permite que você use fontes de dados compatíveis (AWS Lambda Amazon DynamoDB ou OpenSearch Amazon Service) para realizar várias operações. No entanto, em determinados cenários, uma chamada para uma fonte de dados compatível pode não ser necessária.

É aí que o resolvedor local se torna útil. Em vez de chamar uma fonte de dados remota, o resolvedor local apenas encaminhará o resultado do manipulador de solicitação para o manipulador de resposta. A resolução do campo não deixará o AWS AppSync.

Os resolvedores locais são úteis em uma infinidade de situações. O caso de uso mais popular é a publicação de notificações sem acionar uma chamada da fonte de dados. Para demonstrar esse caso de uso, vamos criar um aplicativo pub/sub no qual os usuários possam publicar e assinar mensagens. Esse exemplo utiliza Assinaturas, portanto se não estiver familiarizado com Assinaturas, siga o tutorial Dados em tempo real.

Criação do aplicativo pub/sub

Primeiro, crie uma API GraphQL em branco escolhendo a opção Design do zero e configurando os detalhes opcionais ao criar sua API GraphQL.

Em nosso aplicativo pub/sub, os clientes podem assinar e publicar mensagens. Cada mensagem publicada inclui um nome e dados. Adicione-o ao esquema:

type Channel { name: String! data: AWSJSON! } type Mutation { publish(name: String!, data: AWSJSON!): Channel } type Query { getChannel: Channel } type Subscription { subscribe(name: String!): Channel @aws_subscribe(mutations: ["publish"]) }

Depois, vamos anexar um resolvedor ao campo Mutation.publish. No painel Resolvedores próximo ao painel Esquema, encontre o tipo Mutation, o campo publish(...): Channel e clique em Anexar.

Crie uma fonte de dados None e nomeie-a PageDataSource. Anexe-a ao seu resolvedor.

Adicione a implementação do seu resolvedor usando o seguinte trecho:

export function request(ctx) { return { payload: ctx.args }; } export function response(ctx) { return ctx.result; }

Certifique-se de criar o resolvedor e salvar as alterações feitas.

Enviar e assinar mensagens

Para que os clientes recebam mensagens, primeiro eles devem assinar uma caixa de entrada.

No painel Consultas, execute a assinatura SubscribeToData:

subscription SubscribeToData { subscribe(name:"channel") { name data } }

O assinante receberá mensagens sempre que a mutação publish for invocada, mas somente quando a mensagem for enviada para a assinatura channel. Vamos tentar isso no painel Consultas. Enquanto sua assinatura ainda estiver em execução no console, abra outro console e execute a seguinte solicitação no painel Consultas:

nota

Estamos usando strings JSON válidas neste exemplo.

mutation PublishData { publish(data: "{\"msg\": \"hello world!\"}", name: "channel") { data name } }

O resultado será semelhante a este:

{ "data": { "publish": { "data": "{\"msg\":\"hello world!\"}", "name": "channel" } } }

Acabamos de demonstrar o uso de resolvedores locais, publicando uma mensagem e recebendo-a sem sair do AWS AppSync serviço.

PrivacidadeTermos do sitePreferências de cookies
© 2025, Amazon Web Services, Inc. ou suas afiliadas. Todos os direitos reservados.