Configurar notificação de eventos do FlexMatch - Amazon GameLift

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

Configurar notificação de eventos do FlexMatch

Você pode usar as notificações de eventos para rastrear o status de solicitações individuais de criação de jogos. Todos os jogos em produção, ou em pré-produção com atividade de marcação de jogos de alto volume, devem usar notificações de eventos.

Há duas opções para a configuração de notificações de eventos.

  • Faça com que o matchmaker publique notificações de eventos em um tópico do Amazon Simple Notification Service (Amazon SNS).

  • Use eventos do Amazon EventBridge publicados automaticamente e seu conjunto de ferramentas para gerenciar eventos.

Para obter uma lista dos eventos do FlexMatch que o Amazon GameLift emite, consulte Eventos de criação de jogos FlexMatch.

Configurar eventos do EventBridge

O Amazon GameLift publica automaticamente todos os eventos de criação de jogos no Amazon EventBridge. Com o EventBridge, é possível configurar regras para que eventos de criação de jogos sejam roteados para destinos para processamento. Por exemplo, é possível definir uma regra para rotear o evento "PotentialMatchCreated" para uma função do AWS Lambda que manipula as aceitações do jogador. Para obter mais informações, consulte O que é o Amazon EventBridge?

nota

Ao configurar seus matchmakers, mantenha o campo de destino da notificação vazio ou faça referência a um tópico do SNS se quiser usar o EventBridge e o Amazon SNS.

Configurar um tópico do Amazon SNS

É possível fazer com que o Amazon GameLift publique todos os eventos que um matchmaker do FlexMatch gera em um tópico do Amazon SNS.

Para criar um tópico do SNS para notificações de eventos do Amazon GameLift
  1. Abra o console do Amazon SNS.

  2. No painel de navegação, escolha Topics (Tópicos).

  3. Na página Topics (Tópicos), escolha Create topic (Criar tópico).

  4. Crie um tópico no console do . Para obter mais informações, consulte Para criar um tópico usando o AWS Management Console no Guia do desenvolvedor do Amazon Simple Notification Service.

  5. Na página Detalhes do tópico, escolha Editar.

  6. (Opcional) Na página Editar do tópico, expanda Política de acesso e adicione a sintaxe em negrito da seguinte declaração de política do AWS Identity and Access Management (IAM) ao final da política existente. (A política inteira é mostrada aqui para oferecer clareza.) Certifique-se de usar os detalhes do nome do recurso da Amazon (ARN) para seu próprio tópico do SNS e para a configuração de criação de jogos do Amazon GameLift.

    { "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. Escolha Salvar alterações.

Configurar um tópico do SNS com a criptografia do lado do servidor

É possível usar a criptografia do lado do servidor (SSE) para armazenar dados confidenciais em tópicos criptografados. A SSE protege o conteúdo de mensagens nos tópicos do Amazon SNS usando chaves gerenciadas no AWS Key Management Service (AWS KMS). Para obter mais informações sobre criptografia no lado do servidor com o Amazon SNS, consulte Criptografia em repouso no Guia do desenvolvedor do Amazon Simple Notification Service.

Para configurar um tópico do SNS com a criptografia do lado do servidor, consulte os tópicos a seguir:

Ao criar a chave do KMS, use a seguinte política de chave do KMS:

{ "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" } } }

Configurar uma assinatura de tópico para chamar uma função do Lambda

É possível chamar uma função do Lambda usando notificações de eventos publicadas no tópico do Amazon SNS. Ao configurar o matchmaker, certifique-se de definir o campo de destino da notificação como um ARN do tópico do SNS.

O modelo AWS CloudFormation a seguir configura uma assinatura de um tópico do SNS chamado MyFlexMatchEventTopic para invocar uma função do Lambda chamada FlexMatchEventHandlerLambdaFunction. O modelo cria uma política de permissões do IAM que permite que o Amazon GameLift grave no tópico do SNS. Em seguida, o modelo adiciona permissões ao tópico do SNS para chamar a função do 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