

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 設定主題訂閱以叫用 Lambda 函數
<a name="match-notification-lambda"></a>

您可以使用發佈至 Amazon SNS 主題的事件通知來叫用 Lambda 函數。設定配對建構器時，請務必將通知目標設定為 SNS 主題的 ARN。

下列 AWS CloudFormation 範本會將名為 的 SNS 主題訂閱設定為`MyFlexMatchEventTopic`叫用名為 的 Lambda 函數`FlexMatchEventHandlerLambdaFunction`。範本會建立 IAM 許可政策，Amazon GameLift Servers允許 寫入 SNS 主題。範本接著會新增 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
```