

# 结合 Amazon MSK 使用 Lambda
<a name="with-msk"></a>

[Amazon Managed Streaming for Apache Kafka（Amazon MSK）](https://docs.amazonaws.cn/msk/latest/developerguide/what-is-msk.html)是一项完全托管式服务，可用于构建并运行使用 Apache Kafka 来处理流数据的应用程序。Amazon MSK 简化了 Kafka 集群的设置、扩展和管理。Amazon MSK 还可以更轻松地配置您的应用程序以适用于多个可用区和保证 Amazon Identity and Access Management (IAM) 的安全性。

本章说明如何将 Amazon MSK 集群用作 Lambda 函数的事件源。将 Amazon MSK 与 Lambda 集成的一般过程包括以下步骤：

1. **[集群和网络设置](with-msk-cluster-network.md)**：首先，设置您的 [Amazon MSK 集群](https://docs.amazonaws.cn/msk/latest/developerguide/what-is-msk.html)。这包括允许 Lambda 访问集群的正确联网配置。

1. **[事件源映射设置](with-msk-configure.md)**：然后，创建 Lambda 需要的[事件源映射](invocation-eventsourcemapping.md)资源，以将 Amazon MSK 集群安全地连接到您的函数。

1. **[函数和权限设置](with-msk-permissions.md)**：最后，请确保您的函数设置正确，并且在其[执行角色](lambda-intro-execution-role.md)中具有必要的权限。

**注意**  
现在，您可以直接使用 Lambda 或 Amazon MSK 控制台来创建和管理您的 Amazon MSK 事件源映射。这两个控制台都提供了自动处理必要 Lambda 执行角色权限的设置功能，从而能够实现更简便的配置流程。

有关如何设置与 Amazon MSK 集群的 Lambda 集成的示例，请参阅[教程：使用 Amazon MSK 事件源映射调用 Lambda 函数](services-msk-tutorial.md)、Amazon Compute Blog 上的 [Using Amazon MSK as an event source for Amazon Lambda](https://www.amazonaws.cn/blogs/compute/using-amazon-msk-as-an-event-source-for-aws-lambda/) 和 Amazon MSK Labs 中的 [Amazon MSK Lambda Integration](https://amazonmsk-labs.workshop.aws/en/msklambda.html)。

**Topics**
+ [事件示例](#msk-sample-event)
+ [为 Lambda 配置 Amazon MSK 集群和 Amazon VPC 网络](with-msk-cluster-network.md)
+ [为 Amazon MSK 事件源映射配置 Lambda 权限](with-msk-permissions.md)
+ [为 Lambda 配置 Amazon MSK 事件源](with-msk-configure.md)
+ [教程：使用 Amazon MSK 事件源映射调用 Lambda 函数](services-msk-tutorial.md)

## 事件示例
<a name="msk-sample-event"></a>

Lambda 调用函数时会在事件参数中发送一批消息。事件负载包含一个消息数组。每个数组项目都包含 Amazon MSK 主题和分区标识符的详细信息，以及时间戳和 base64 编码的消息。

```
{
   "eventSource":"aws:kafka",
   "eventSourceArn":"arn:aws:kafka:cn-north-1:123456789012:cluster/vpc-2priv-2pub/751d2973-a626-431c-9d4e-d7975eb44dd7-2",
   "bootstrapServers":"b-2.demo-cluster-1.a1bcde.c1.kafka.cn-north-1.amazonaws.com.cn:9092,b-1.demo-cluster-1.a1bcde.c1.kafka.cn-north-1.amazonaws.com.cn:9092",
   "records":{
      "mytopic-0":[
         {
            "topic":"mytopic",
            "partition":0,
            "offset":15,
            "timestamp":1545084650987,
            "timestampType":"CREATE_TIME",
            "key":"abcDEFghiJKLmnoPQRstuVWXyz1234==",
            "value":"SGVsbG8sIHRoaXMgaXMgYSB0ZXN0Lg==",
            "headers":[
               {
                  "headerKey":[
                     104,
                     101,
                     97,
                     100,
                     101,
                     114,
                     86,
                     97,
                     108,
                     117,
                     101
                  ]
               }
            ]
         }
      ]
   }
}
```