Configurer les notifications FlexMatch d'événements - Amazon GameLift

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.

Configurer les notifications FlexMatch d'événements

Vous pouvez utiliser les notifications d'événements pour suivre l'état des demandes de matchmaking individuelles. Tous les jeux en production ou en pré-production avec une activité de matchmaking importante doivent utiliser des notifications d'événements.

Il existe deux options pour configurer les notifications d'événement.

  • Demandez à votre système de matchmaking de publier des notifications d'événements dans une rubrique Amazon Simple Notification Service (Amazon SNS).

  • Utilisez les EventBridge événements Amazon publiés automatiquement et sa suite d'outils pour gérer les événements.

Pour obtenir la liste des FlexMatch événements émis par GameLift Amazon, consultezFlexMatchévénements de matchmaking.

Configurez EventBridge des événements

Amazon publie GameLift automatiquement tous les événements de matchmaking sur AmazonEventBridge. AvecEventBridge, vous pouvez configurer des règles pour que les événements de matchmaking soient acheminés vers des cibles pour traitement. Par exemple, vous pouvez définir une règle pour acheminer l'événement « PotentialMatchCreated » vers une AWS Lambda fonction qui gère les acceptations des joueurs. Pour plus d'informations, consultez Qu'est-ce qu'Amazon EventBridge ?

Note

Lorsque vous configurez vos matchmakers, laissez le champ cible de notification vide ou faites référence à une rubrique SNS si vous souhaitez utiliser les deux EventBridge et Amazon SNS.

Configurer une rubrique Amazon SNS

Vous pouvez demander à Amazon de GameLift publier tous les événements générés par un FlexMatch système de matchmaking sur une rubrique Amazon SNS.

Pour créer une rubrique SNS pour les notifications d'GameLiftévénements Amazon
  1. Ouvrez la console Amazon SNS.

  2. Dans le panneau de navigation, sélectionnez Topics (Rubriques).

  3. Sur la page Rubriques, choisissez Créer une rubrique.

  4. Créez une rubrique dans la console . Pour plus d'informations, consultez la section Pour créer une rubrique AWS Management Console à l'aide du manuel du développeur Amazon Simple Notification Service.

  5. Sur la page Détails de votre sujet, choisissez Modifier.

  6. (Facultatif) Sur la page d'édition de votre sujet, développez la politique d'accès, puis ajoutez la syntaxe en gras de la déclaration de politique AWS Identity and Access Management (IAM) suivante à la fin de votre politique existante. (La politique complète est présentée ici pour plus de clarté.) Veillez à utiliser les informations Amazon Resource Name (ARN) pour votre propre rubrique SNS et pour la configuration du GameLift matchmaking Amazon.

    { "Version": "2008-10-17", "Id": "__default_policy_ID", "Statement": [ { "Sid": "__default_statement_ID", "Effect": "Allow", "Principal": { "AWS": "*" }, "Action": [ "SNS:GetTopicAttributes", "SNS:SetTopicAttributes", "SNS:AddPermission", "SNS:RemovePermission", "SNS:DeleteTopic", "SNS:Subscribe", "SNS:ListSubscriptionsByTopic", "SNS:Publish" ], "Resource": "arn:aws:sns:your_region:your_account:your_topic_name", "Condition": { "StringEquals": { "AWS:SourceAccount": "your_account" } } }, { "Sid": "__console_pub_0", "Effect": "Allow", "Principal": { "Service": "gamelift.amazonaws.com" }, "Action": "SNS:Publish", "Resource": "arn:aws:sns:your_region:your_account:your_topic_name", "Condition": { "ArnLike": { "aws:SourceArn": "arn:aws:gamelift:your_region:your_account:matchmakingconfiguration/your_configuration_name" } } } ] }
  7. Choisissez Save Changes (Enregistrer les modifications).

Configuration d'une rubrique SNS avec chiffrement côté serveur

Vous pouvez utiliser le chiffrement côté serveur (SSE) pour stocker des données sensibles dans des rubriques cryptées. Le chiffrement SSE protège le contenu des messages présents dans les rubriques Amazon SNS à l'aide de clés gérées dans AWS Key Management Service (AWS KMS). Pour plus d'informations sur le chiffrement côté serveur avec Amazon SNS, consultez la section Chiffrement au repos dans le guide du développeur Amazon Simple Notification Service.

Pour configurer une rubrique SNS avec chiffrement côté serveur, consultez les rubriques suivantes :

Lorsque vous créez votre clé KMS, utilisez la politique de clé KMS suivante :

{ "Effect": "Allow", "Principal": { "Service": "gamelift.amazonaws.com" }, "Action": [ "kms:Decrypt", "kms:GenerateDataKey" ], "Resource": "*", "Condition": { "ArnLike": { "aws:SourceArn": "arn:aws:gamelift:your_region:your_account:matchmakingconfiguration/your_configuration_name" }, "StringEquals": { "kms:EncryptionContext:aws:sns:topicArn": "arn:aws:sns:your_region:your_account:your_sns_topic_name" } } }

Configurer un abonnement à une rubrique pour appeler une fonction Lambda

Vous pouvez invoquer une fonction Lambda à l'aide des notifications d'événements publiées dans votre rubrique Amazon SNS. Lorsque vous configurez le système de matchmaking, veillez à définir la cible de notification sur l'ARN de votre sujet SNS.

Le AWS CloudFormation modèle suivant configure un abonnement à une rubrique SNS nommée MyFlexMatchEventTopic pour appeler une fonction Lambda nommée. FlexMatchEventHandlerLambdaFunction Le modèle crée une politique d'autorisations IAM qui permet GameLift à Amazon d'écrire dans la rubrique SNS. Le modèle ajoute ensuite des autorisations permettant à la rubrique SNS d'invoquer la fonction Lambda.

FlexMatchEventTopic: Type: "AWS::SNS::Topic" Properties: KmsMasterKeyId: alias/aws/sns #Enables server-side encryption on the topic using an AWS managed key Subscription: - Endpoint: !GetAtt FlexMatchEventHandlerLambdaFunction.Arn Protocol: lambda TopicName: MyFlexMatchEventTopic FlexMatchEventTopicPolicy: Type: "AWS::SNS::TopicPolicy" DependsOn: FlexMatchEventTopic Properties: PolicyDocument: Version: "2012-10-17" Statement: - Effect: Allow Principal: Service: gamelift.amazonaws.com Action: - "sns:Publish" Resource: !Ref FlexMatchEventTopic Topics: - Ref: FlexMatchEventTopic FlexMatchEventHandlerLambdaPermission: Type: "AWS::Lambda::Permission" Properties: Action: "lambda:InvokeFunction" FunctionName: !Ref FlexMatchEventHandlerLambdaFunction Principal: sns.amazonaws.com SourceArn: !Ref FlexMatchEventTopic