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 mutation d' AWS AppSync API 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 cible d'API 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_IAM
d'autorisation.
Pour plus d'informations sur AWS AppSync GraphQL APIs, 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
Sous Cible, spécifiez la cible en choisissant Service AWS , puis AWS AppSync.
Spécifiez l’opération de mutation à analyser et à exécuter, ainsi que le jeu de sélection.
Choisissez l' AWS AppSync API, puis la mutation de l'API GraphQL à invoquer.
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.
Pour Rôle d’exécution, choisissez de créer un nouveau rôle ou d’en utiliser un existant.
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'une API AWS AppSync GraphQL définie 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 utilisent cette API peuvent souscrire à l’abonnement subscribeToEvent
, qui est déclenché par la mutation pushEvent
.
Vous pouvez créer une EventBridge règle avec une cible qui envoie des événements à l' AppSync API via la pushEvent
mutation. Lorsque la mutation est invoquée, tout client abonné reçoit l’événement.
Pour spécifier cette API comme cible d'une EventBridge règle, procédez comme suit :
Définissez l’Amazon Resource Name (ARN) de la cible de règle sur l’ARN du point de terminaison GraphQL de l’API
Ec2EventAPI
.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.
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é au format JSON. Compte tenu de notre chemin d’entrée, vous pouvez composer le modèle suivant :
{ "id": <id>, "statusCode": <statusCode>, "instanceId": <EC2InstanceId> }