

# Amazon MSK で Lambda を使用する
<a name="with-msk"></a>

[Amazon Managed Streaming for Apache Kafka (Amazon MSK)](https://docs.aws.amazon.com/msk/latest/developerguide/what-is-msk.html) は、Apache Kafka を使用してストリーミングデータを処理するアプリケーションの構築および実行に使用できるフルマネージド型サービスです。Amazon MSK は、Kafka クラスターのセットアップ、スケーリング、管理を簡素化します。また、Amazon MSK を使用すると、AWS Identity and Access Management (IAM) を使って複数のアベイラビリティーゾーンやセキュリティ向けにより簡単にアプリケーションを設定することができます。

この章では、Amazon MSK クラスターを Lambda 関数のイベントソースとして使用する方法について説明します。Amazon MSK と Lambda を統合する一般的なプロセスには、次の手順が含まれます。

1. **[クラスターとネットワークのセットアップ](with-msk-cluster-network.md)** – まず、[Amazon MSK クラスター](https://docs.aws.amazon.com/msk/latest/developerguide/what-is-msk.html)をセットアップします。これには、Lambda がクラスターにアクセスするための正しいネットワーク設定が含まれます。

1. **[イベントソースマッピングのセットアップ](with-msk-configure.md)** – 次に、Amazon MSK クラスターを関数に安全に接続するために Lambda が必要とする[イベントソースマッピング](invocation-eventsourcemapping.md)リソースを作成します。

1. **[関数とアクセス許可のセットアップ](with-msk-permissions.md)** – 最後に、関数を正しくセットアップし、[実行ロール](lambda-intro-execution-role.md)に必要なアクセス許可を付与します。

**注記**  
Amazon MSK イベントソースマッピングを Lambda または Amazon MSK コンソールから直接作成および管理できるようになりました。どちらのコンソールにも、より合理化された設定プロセスに必要な Lambda 実行ロールのアクセス許可の設定を自動的に処理するオプションがあります。

Amazon MSK クラスターとの Lambda 統合を設定する方法の例については、「[チュートリアル: Amazon MSK イベントソースマッピングを使用して Lambda 関数を呼び出す](services-msk-tutorial.md)」、「AWS コンピューティングブログ」の「[Amazon MSK を AWS Lambda のイベントソースとして使用する](https://aws.amazon.com/blogs/compute/using-amazon-msk-as-an-event-source-for-aws-lambda/)」、および「Amazon MSK Labs」の「[Amazon MSK Lambda 統合](https://amazonmsk-labs.workshop.aws/en/msklambda.html)」を参照してください。

**Topics**
+ [イベントの例](#msk-sample-event)
+ [Amazon MSK クラスターおよび Amazon VPC ネットワークの Lambda 向け設定](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:us-east-1:123456789012:cluster/vpc-2priv-2pub/751d2973-a626-431c-9d4e-d7975eb44dd7-2",
   "bootstrapServers":"b-2.demo-cluster-1.a1bcde.c1.kafka.us-east-1.amazonaws.com:9092,b-1.demo-cluster-1.a1bcde.c1.kafka.us-east-1.amazonaws.com: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
                  ]
               }
            ]
         }
      ]
   }
}
```