

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ções de eventos do FlexMatch
<a name="match-notification"></a>

Você pode usar as notificações de eventos para rastrear o status de solicitações individuais de criação de partidas. Todos os jogos em produção, ou em pré-produção com atividade de criação de partidas 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 Notiﬁcation Service (Amazon SNS).
+ Use EventBridge eventos da Amazon publicados automaticamente e seu conjunto de ferramentas para gerenciar eventos.

Para obter uma lista de eventos do FlexMatch emitidos pelo Amazon GameLift Servers, consulte o [Eventos de criação de partidas do FlexMatch](match-events.md).

**Importante**  
Para sistemas de criação de partidas de alto volume, recomendamos usar tópicos padrão (não FIFO) do Amazon SNS em vez de tópicos FIFO. Os tópicos do FIFO têm limites de publicação mais baixos do que os tópicos padrão, o que pode levar a exceções de limitação durante uma carga alta. Se você tiver problemas com tópicos do FIFO, poderá perder as notificações de FlexMatch.

**nota**  
 Amazon GameLift Serversgerencia automaticamente as falhas de entrega e a limitação de entrega do Amazon SNS com a lógica de repetição integrada. Quando o Amazon SNS retorna erros de limitação ou falhas temporárias, Amazon GameLift Servers repete a entrega da notificação com atrasos progressivos entre as tentativas. Isso ajuda a garantir que as notificações de eventos sejam entregues de forma confiável. No entanto, as notificações podem ser perdidas se as falhas persistirem após todas as tentativas ou por erros que não possam ser repetidos, como falhas de autorização ou tópicos ausentes. 

**Topics**
+ [Configurar EventBridge eventos](#match-notification-cwe)
+ [Tutorial: configurar um tópico do Amazon SNS](match-notification-sns.md)
+ [Configurar um tópico do SNS com a criptografia do lado do servidor](queue-notification-sns-sse.md)
+ [Configurar uma assinatura de tópico para chamar uma função do Lambda](match-notification-lambda.md)

## Configurar EventBridge eventos
<a name="match-notification-cwe"></a>

Amazon GameLift Serverspublica automaticamente todos os eventos de matchmaking na Amazon EventBridge. Com EventBridge, você pode configurar regras para que os eventos de matchmaking sejam encaminhados aos alvos para processamento. Por exemplo, você pode definir uma regra para rotear o evento "PotentialMatchCreated" para uma AWS Lambda função que gerencia as aceitações dos jogadores. Para obter mais informações, consulte [O que é a Amazon EventBridge?](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-what-is.html)

**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 ambos EventBridge e o Amazon SNS.

# Tutorial: configurar um tópico do Amazon SNS
<a name="match-notification-sns"></a>

É possível fazer com que o Amazon GameLift Servers publique todos os eventos que um criação de partidas 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 Servers**

1. Abra o console do [Amazon SNS](https://console.aws.amazon.com/sns).

1. No painel de navegação, escolha **Tópicos**.

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

1. Crie um tópico no console do . Para obter mais informações, consulte [Para criar um tópico usando o Console de gerenciamento da AWS](https://docs.aws.amazon.com/sns/latest/dg/sns-create-topic.html#create-topic-aws-console) no *Guia do desenvolvedor do Amazon Simple Notification Service*.

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

1. (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 partidas do Amazon GameLift Servers.

------
#### [ JSON ]

****  

   ```
   {
     "Version":"2012-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:us-east-1:111122223333:your_topic_name",
         "Condition": {
           "StringEquals": {
           "AWS:SourceAccount": "111122223333"
           }
         }
       },
       {
         "Sid": "__console_pub_0",
         "Effect": "Allow",
         "Principal": {
           "Service": "gamelift.amazonaws.com"
         },
         "Action": "SNS:Publish",
         "Resource": "arn:aws:sns:us-east-1:111122223333:your_topic_name",
         "Condition": {
           "ArnLike": {
           "aws:SourceArn": "arn:aws:gamelift:us-east-1:111122223333:matchmakingconfiguration/your_configuration_name"
           }
         }
       }
     ]
   }
   ```

------

1. Escolha **Salvar alterações**.

# Configurar um tópico do SNS com a criptografia do lado do servidor
<a name="queue-notification-sns-sse"></a>

É possível usar a criptografia do lado do servidor (SSE) para armazenar dados confidenciais em tópicos criptografados. O SSE protege o conteúdo das mensagens nos tópicos do Amazon SNS usando chaves gerenciadas em 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](https://docs.aws.amazon.com/sns/latest/dg/sns-server-side-encryption.html) 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:
+ [Criar chaves](https://docs.aws.amazon.com/kms/latest/developerguide/create-keys.html) no *Guia do desenvolvedor do AWS Key Management Service *
+ [Habilitar a SSE para um tópico](https://docs.aws.amazon.com/sns/latest/dg/sns-enable-encryption-for-topic.html) no *Guia do desenvolvedor do Amazon Simple Notification Service*

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
<a name="match-notification-lambda"></a>

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