

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 将主题订阅配置为调用 Lambda 函数
<a name="match-notification-lambda"></a>

您可以使用发布到 Amazon SNS 主题的事件通知调用 Lambda 函数。配置对战构建器时，将通知目标字段设置为 SNS 主题 ARN。

以下 Amazon CloudFormation 模板将订阅名为的 SNS 主题配置为调用名`MyFlexMatchEventTopic`为的 Lambda 函数。`FlexMatchEventHandlerLambdaFunction`该模板创建了一个 IAM 权限策略，允许 Amazon GameLift Servers 写入 SNS 主题。然后，模板将调用 Lambda 函数的权限。

```
FlexMatchEventTopic:
  Type: "AWS::SNS::Topic"
  Properties:
    KmsMasterKeyId: alias/aws/sns #Enables server-side encryption on the topic using an Amazon 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
```