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 os desenvolvedores conectem seus aplicativos e serviços a dados e eventos com GraphQL e Pub/Sub seguros, sem servidor e de alto desempenho. APIs Com AWS AppSync, você pode publicar atualizações de dados em tempo real em seus aplicativos com mutações do GraphQL. EventBridge suporta a chamada de uma operação de mutação válida do GraphQL para eventos correspondentes. Quando você especifica uma mutação AWS AppSync da API como alvo, AWS AppSync processa o evento por meio de uma operação de mutação, que pode então acionar assinaturas vinculadas à mutação.
nota
EventBridge suporta AWS AppSync GraphQL APIs público. EventBridge atualmente não oferece suporte para AWS AppSync Private APIs.
Você pode usar um destino da API AWS AppSync GraphQL para os seguintes casos de uso:
Para enviar por push, transformar e armazenar dados de eventos em suas fontes de dados configuradas.
Para enviar notificações em tempo real para clientes de aplicações conectados.
nota
AWS AppSync os destinos suportam apenas a chamada do AWS AppSync GraphQL APIs usando o tipo de AWS_IAM
autorização.
Para obter mais informações sobre o AWS AppSync GraphQL APIs, consulte o GraphQL e a AWS AppSync arquitetura no Guia do desenvolvedor.AWS AppSync
Para especificar um AWS AppSync destino para uma EventBridge regra usando o console
Em Destino, especifique o destino escolhendo o Serviço da AWS e AWS AppSync.
Especifique a operação de mutação a ser analisada e executada, junto com o conjunto de seleção.
Escolha a AWS AppSync API e, em seguida, a mutação da API GraphQL a ser invocada.
Em Configurar parâmetros e conjunto de seleção, escolha criar um conjunto de seleção utilizando o mapeamento de chave-valor ou um transformador de entrada.
Para utilizar o mapeamento de chave-valor para criar o conjunto de seleção:
-
Especifique as variáveis para os parâmetros da API. Cada variável pode ter um valor estático ou uma expressão dinâmica de caminho JSON para a carga útil do evento.
-
Em Conjunto de seleção, escolha as variáveis que deseja incluir na resposta.
Em Perfil de execução, escolha se deseja criar um perfil ou utilizar um perfil existente.
Conclua a criação ou a edição da regra.
Exemplo: AWS AppSync metas para a Amazon EventBridge
No exemplo a seguir, explicaremos como especificar um AWS AppSync destino para uma EventBridge regra, incluindo a definição de uma transformação de entrada para formatar eventos para entrega.
Suponha que você tenha uma API AWS AppSync GraphQLEc2EventAPI
,, definida pelo seguinte esquema:
type Event {
id: ID!
statusCode: String
instanceId: String
}
type Mutation {
pushEvent(id: ID!, statusCode: String!, instanceId: String): Event
}
type Query {
listEvents: [Event]
}
type Subscription {
subscribeToEvent(id: ID, statusCode: String, instanceId: String): Event
@aws_subscribe(mutations: ["pushEvent"])
}
Clientes de aplicações que utilizam essa API podem assinar o subscribeToEvent
, cuja assinatura é acionada pela mutação pushEvent
.
Você pode criar uma EventBridge regra com um destino que envia eventos para a AppSync API por meio da pushEvent
mutação. Quando a mutação é invocada, qualquer cliente assinante recebe o evento.
Para especificar essa API como o destino de uma EventBridge regra, você faria o seguinte:
Defina o nome do recurso da Amazon (ARN) do destino da regra como o ARN do endpoint de GraphQL da API
Ec2EventAPI
.Especifique a operação de mutação de GraphQL como um parâmetro de destino:
mutation CreatePushEvent($id: ID!, $statusCode: String, $instanceId: String) { pushEvent(id: $input, statusCode: $statusCode, instanceId: $instanceId) { id statusCode instanceId } }
O conjunto de seleção de mutações deve incluir todos os campos que você deseja assinar em sua assinatura de GraphQL.
Configure um transformador de entrada para especificar como os dados dos eventos correspondentes são utilizados na operação.
Suponha que você tenha selecionado o evento de entrada
“EC2 Instance Launch Successful”
:{ "version": "0", "id": "3e3c153a-8339-4e30-8c35-687ebef853fe", "detail-type": "EC2 Instance Launch Successful", "source": "aws.autoscaling", "account": "123456789012", "time": "2015-11-11T21:31:47Z", "region": "us-east-1", "resources": ["arn:aws:autoscaling:us-east-1:123456789012:autoScalingGroup:eb56d16b-bbf0-401d-b893-d5978ed4a025:autoScalingGroupName/sampleLuanchSucASG", "arn:aws:ec2:us-east-1:123456789012:instance/i-b188560f"], "detail": { "StatusCode": "InProgress", "AutoScalingGroupName": "sampleLuanchSucASG", "ActivityId": "9cabb81f-42de-417d-8aa7-ce16bf026590", "Details": { "Availability Zone": "us-east-1b", "Subnet ID": "subnet-95bfcebe" }, "RequestId": "9cabb81f-42de-417d-8aa7-ce16bf026590", "EndTime": "2015-11-11T21:31:47.208Z", "EC2InstanceId": "i-b188560f", "StartTime": "2015-11-11T21:31:13.671Z", "Cause": "At 2015-11-11T21:31:10Z a user request created an AutoScalingGroup changing the desired capacity from 0 to 1. At 2015-11-11T21:31:11Z an instance was started in response to a difference between desired and actual capacity, increasing the capacity from 0 to 1." } }
É possível definir as seguintes variáveis para uso no modelo, utilizando caminho de entrada do transformador de entrada do destino:
{ "id": "$.id", "statusCode": "$.detail.StatusCode", "EC2InstanceId": "$.detail.EC2InstanceId" }
Componha o modelo do transformador de entrada para definir as variáveis que EventBridge passam para a operação de AWS AppSync mutação. O modelo deve ser avaliado como JSON. Determinado o nosso caminho de entrada, é possível compor o seguinte modelo:
{ "id": <id>, "statusCode": <statusCode>, "instanceId": <EC2InstanceId> }