AWS AppSync objectifs pour les règles sur Amazon EventBridge - Amazon EventBridge

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

AWS AppSync objectifs pour les règles sur Amazon EventBridge

AWS AppSync permet aux développeurs de connecter leurs applications et services aux données et aux événements grâce à GraphQL et Pub/Sub sécurisés, sans serveur et performants. APIs Avec AWS AppSync, vous pouvez publier des mises à jour de données en temps réel pour vos applications à l'aide de mutations GraphQL. EventBridge prend en charge l'appel d'une opération de mutation GraphQL valide pour les événements correspondants. Lorsque vous spécifiez une AWS AppSync API mutation comme cible, AWS AppSync traite l'événement via une opération de mutation, qui peut ensuite déclencher des abonnements liés à la mutation.

Note

EventBridge prend en charge AWS AppSync le GraphQL APIs public. EventBridge ne prend actuellement pas en charge le AWS AppSync mode privéAPIs.

Vous pouvez utiliser une API cible AWS AppSync GraphQL dans les cas d'utilisation suivants :

  • Pour transmettre, transformer et stocker des données d’événements dans vos sources de données configurées.

  • Pour envoyer des notifications en temps réel aux clients d’applications connectés.

Note

AWS AppSync les cibles prennent uniquement en charge l'appel de AWS AppSync GraphQL APIs en utilisant le type AWS_IAMd'autorisation.

Pour plus d'informations sur AWS AppSync GraphQLAPIs, consultez GraphQL et AWS AppSync son architecture dans le Guide du développeur.AWS AppSync

Pour spécifier une AWS AppSync cible pour une EventBridge règle à l'aide de la console
  1. Créez ou modifiez la règle.

  2. Sous Cible, spécifiez la cible en choisissant Service AWS , puis AWS AppSync.

  3. Spécifiez l’opération de mutation à analyser et à exécuter, ainsi que le jeu de sélection.

    • Choisissez la mutation GraphQL à invoquer AWS AppSync API, puis la API mutation GraphQL.

    • Sous Configurer les paramètres et le jeu de sélection, choisissez de créer un jeu de sélection à l’aide d’un mappage clé-valeur ou d’un transformateur d’entrée.

      Key-value mapping

      Pour utiliser le mappage clé-valeur afin de créer votre jeu de sélection :

      • Spécifiez des variables pour les API paramètres. Chaque variable peut être une valeur statique ou une expression de JSON chemin dynamique vers la charge utile de l'événement.

      • Sous Jeu de sélection, choisissez les variables que vous souhaitez inclure dans la réponse.

      Input transformer

      Pour utiliser un transformateur d’entrée afin de créer votre jeu de sélection :

      • Spécifiez un chemin d’entrée qui définit les variables à utiliser.

      • Spécifiez un modèle d’entrée pour définir et formater les informations que vous souhaitez transmettre à la cible.

      Pour de plus amples informations, veuillez consulter Configuration d'un transformateur d'entrée lors de la création d'une règle dans EventBridge.

  4. Pour Rôle d’exécution, choisissez de créer un nouveau rôle ou d’en utiliser un existant.

  5. Terminez la création ou la modification de la règle.

Exemple : AWS AppSync cibles pour Amazon EventBridge

Dans l'exemple suivant, nous allons expliquer comment spécifier une AWS AppSync cible pour une EventBridge règle, notamment définir une transformation d'entrée pour formater les événements en vue de leur diffusion.

Supposons que vous disposiez d'un AWS AppSync GraphQL API défini par le schéma suivant : Ec2EventAPI

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"]) }

Les clients des applications qui l'utilisent API peuvent souscrire à l'subscribeToEventabonnement, qui est déclenché par la pushEvent mutation.

Vous pouvez créer une EventBridge règle avec une cible qui envoie des événements au AppSync API via la pushEvent mutation. Lorsque la mutation est invoquée, tout client abonné reçoit l’événement.

Pour le spécifier API comme cible d'une EventBridge règle, procédez comme suit :

  1. Définissez le nom de ressource Amazon (ARN) de la cible de la règle sur le point de terminaison GraphQL ARN du. Ec2EventAPI API

  2. Spécifiez l’opération GraphQL de mutation en tant que paramètre cible :

    mutation CreatePushEvent($id: ID!, $statusCode: String, $instanceId: String) { pushEvent(id: $input, statusCode: $statusCode, instanceId: $instanceId) { id statusCode instanceId } }

    Votre jeu de sélection de mutation doit inclure tous les champs auxquels vous souhaitez vous abonner dans votre abonnement GraphQL.

  3. Configurez un transformateur d’entrée pour spécifier comment les données des événements correspondants sont utilisées dans votre opération.

    Supposons que vous ayez sélectionné l’exemple d’événement “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." } }

    Vous pouvez définir les variables suivantes à utiliser dans votre modèle, à l’aide du chemin d’entrée du transformateur d’entrée cible :

    { "id": "$.id", "statusCode": "$.detail.StatusCode", "EC2InstanceId": "$.detail.EC2InstanceId" }

    Composez le modèle de transformateur d'entrée pour définir les variables qui EventBridge sont transmises à l'opération de AWS AppSync mutation. Le modèle doit être évalué àJSON. Compte tenu de notre chemin d’entrée, vous pouvez composer le modèle suivant :

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