FlexMatch 이벤트 알림 설정 - 아마존 GameLift

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

FlexMatch 이벤트 알림 설정

이벤트 알림을 사용하여 개별 매치메이킹 요청 상태를 추적할 수 있습니다. 프로덕션 중인 게임이나 대량의 매치메이킹 활동이 있는 프로덕션 전 게임에서는 이벤트 알림을 사용해야 합니다.

이벤트 알림을 설정하는 데는 두 가지 옵션이 있습니다.

  • 매치메이커는 Amazon Simple Notification Service(SNS) 주제에 이벤트 알림을 게시하도록 합니다.

  • 자동으로 게시된 Amazon EventBridge 이벤트 및 이벤트 관리 도구 모음을 사용합니다.

Amazon GameLift에서 발생하는 FlexMatch 이벤트 목록은 FlexMatch 매치메이킹 이벤트 섹션을 참조하세요.

EventBridge 이벤트 설정

Amazon GameLift는 모든 매치메이킹 이벤트를 Amazon EventBridge에 자동으로 게시합니다. EventBridge를 사용하면 매치메이킹 이벤트를 처리 대상으로 라우팅하도록 규칙을 설정할 수 있습니다. 예를 들어, “PotentialMatchCreated” 이벤트를 플레이어 수락을 처리하는 AWS Lambda 함수로 라우팅하도록 규칙을 설정할 수 있습니다. 자세한 내용은 Amazon EventBridge란 무엇인가요? 섹션을 참조하세요.

참고

매치메이커를 구성할 때 알림 대상 필드를 비워 두거나 EventBridge와 Amazon SNS를 모두 사용하려면 SNS 주제를 참조하세요.

Amazon SNS 주제 설정

Amazon GameLift가 FlexMatch 매치메이커가 생성하는 모든 이벤트를 Amazon SNS 주제에 게시하도록 할 수 있습니다.

Amazon GameLift 이벤트 알림에 대한 SNS 주제를 생성하려면
  1. Amazon SNS 콘솔을 엽니다.

  2. 탐색 창에서 주제를 선택합니다.

  3. 주제 페이지에서 주제 생성을 선택합니다.

  4. 콘솔에서 주제를 생성합니다. 자세한 내용은 Amazon Simple Notification Service 개발자 가이드AWS Management Console을 사용하여 주제를 생성하려면을 참조하세요.

  5. 주제에 대한 세부 정보 페이지에서 편집을 선택합니다.

  6. (선택 사항) 해당 주제의 편집 페이지에서 액세스 정책을 확장한 후, 다음 AWS Identity and Access Management (IAM) 정책문에서 굵은 구문을 기존 정책 끝에 추가합니다. (명확성을 위해 전체 정책이 여기에 표시됩니다.) 자체 SNS 주제 및 Amazon GameLift 매치메이킹 구성에 대해서는 반드시 Amazon 리소스 이름(ARN) 세부 정보를 사용합니다.

    { "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. 변경 사항 저장을 선택합니다.

SNS 주제에 서버 측 암호화 설정

서버 측 암호화(SSE)를 사용하면 암호화된 주제에서 민감한 데이터를 저장할 수 있습니다. SSE는 AWS Key Management Service(AWS KMS)에서 관리되는 키를 사용하여 Amazon SNS 주제의 메시지 내용을 보호합니다. Amazon SNS를 포함한 서버 측 암호화에 대한 자세한 내용은 Amazon Simple Notification Service 개발자 가이드저장 시 암호화를 참조하세요.

SNS 주제에 서버 측 암호화를 설정하려면 다음 주제를 검토합니다.

KMS 키를 생성할 때는 다음 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" } } }

Lambda 함수를 호출하기 위해 주제 구독 구성

Amazon SNS 주제에 게시된 이벤트 알림을 사용하여 Lambda 함수를 호출할 수 있습니다. 매치메이커를 구성할 때는 알림 대상을 SNS 주제의 ARN으로 설정해야 합니다.

다음 AWS CloudFormation 템플릿은 이름이 FlexMatchEventHandlerLambdaFunction인 Lambda 함수를 호출하도록 MyFlexMatchEventTopic SNS 주제에 대한 구독을 구성합니다. 템플릿은 Amazon GameLift가 SNS 주제에 글을 쓸 수 있도록 허용하는 IAM 권한 정책을 생성합니다. 그런 다음 템플릿은 SNS 주제에 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