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_IAM
d'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
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 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.
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'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'subscribeToEvent
abonnement, 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 :
Définissez le nom de ressource Amazon (ARN) de la cible de la règle sur le point de terminaison GraphQL ARN du.
Ec2EventAPI
APISpé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é àJSON. Compte tenu de notre chemin d’entrée, vous pouvez composer le modèle suivant :
{ "id": <id>, "statusCode": <statusCode>, "instanceId": <EC2InstanceId> }