トピックサブスクリプションを設定して Lambda 関数を呼び出す
Amazon SNS トピックに発行されたイベント通知を使用して Lambda 関数を呼び出すことができます。マッチメーカーの設定時に、必ず通知ターゲットを SNS トピックの ARN に設定します。
次の AWS CloudFormation テンプレートは、MyFlexMatchEventTopic という名前の SNS トピックへのサブスクリプションを設定して、FlexMatchEventHandlerLambdaFunction という名前の Lambda 関数を呼び出します。このテンプレートは、Amazon GameLift Servers が 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