Amazon MSK で Lambda を使用する
Amazon Managed Streaming for Apache Kafka (Amazon MSK) は、Apache Kafka を使用してストリーミングデータを処理するアプリケーションの構築および実行に使用できるフルマネージド型サービスです。Amazon MSK は、Kafka クラスターのセットアップ、スケーリング、管理を簡素化します。また、Amazon MSK を使用すると、AWS Identity and Access Management (IAM) を使って複数のアベイラビリティーゾーンやセキュリティ向けにより簡単にアプリケーションを設定することができます。
この章では、Amazon MSK クラスターを Lambda 関数のイベントソースとして使用する方法について説明します。Amazon MSK と Lambda を統合する一般的なプロセスには、次の手順が含まれます。
-
クラスターとネットワークのセットアップ – まず、Amazon MSK クラスターをセットアップします。これには、Lambda がクラスターにアクセスするための正しいネットワーク設定が含まれます。
-
イベントソースマッピングのセットアップ – 次に、Amazon MSK クラスターを関数に安全に接続するために Lambda が必要とするイベントソースマッピングリソースを作成します。
-
関数とアクセス許可のセットアップ – 最後に、関数を正しくセットアップし、実行ロールに必要なアクセス許可を付与します。
Amazon MSK クラスターとの Lambda 統合を設定する方法の例については、「チュートリアル: Amazon MSK イベントソースマッピングを使用して Lambda 関数を呼び出す」、「AWS コンピューティングブログ」の「Amazon MSK を AWS Lambda のイベントソースとして使用する
トピック
イベントの例
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 ] } ] } ] } }