AWS AppSync metas para regras na Amazon EventBridge - Amazon EventBridge

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 metas para regras na Amazon EventBridge

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 AWS AppSync API mutação 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 PrivateAPIs.

Você pode usar um API alvo do 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_IAMautorização.

Para obter mais informações sobre o AWS AppSync GraphQLAPIs, 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
  1. Crie ou edite a regra.

  2. Em Destino, especifique o destino escolhendo o Serviço da AWS e AWS AppSync.

  3. Especifique a operação de mutação a ser analisada e executada, junto com o conjunto de seleção.

    • Escolha a e AWS AppSync API, em seguida, a API mutação do 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.

      Key-value mapping

      Para utilizar o mapeamento de chave-valor para criar o conjunto de seleção:

      • Especifique variáveis para os API parâmetros. Cada variável pode ser um valor estático ou uma expressão de JSON caminho dinâmico para a carga do evento.

      • Em Conjunto de seleção, escolha as variáveis que deseja incluir na resposta.

      Input transformer

      Para utilizar um transformador de entrada para criar o conjunto de seleção:

      • Especifique um caminho de entrada que defina as variáveis a serem utilizadas.

      • Especifique um modelo de entrada para definir e formatar as informações que deseja passar para o destino.

      Para obter mais informações, consulte Configurando um transformador de entrada ao criar uma regra no EventBridge.

  4. Em Perfil de execução, escolha se deseja criar um perfil ou utilizar um perfil existente.

  5. 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 um AWS AppSync GraphQL APIEc2EventAPI,, definido 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"]) }

Os clientes de aplicativos que usam isso API podem assinar a subscribeToEvent assinatura, que é acionada pela pushEvent mutação.

Você pode criar uma EventBridge regra com um alvo que envia eventos para o AppSync API por meio da pushEvent mutação. Quando a mutação é invocada, qualquer cliente assinante recebe o evento.

Para especificar isso API como o destino de uma EventBridge regra, você faria o seguinte:

  1. Defina o Amazon Resource Name (ARN) do destino da regra como o endpoint GraphQL doARN. Ec2EventAPI API

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

  3. 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 comoJSON. Determinado o nosso caminho de entrada, é possível compor o seguinte modelo:

    { "id": <id>, "statusCode": <statusCode>, "instanceId": <EC2InstanceId> }