AWS Lambda
開発者ガイド

Kinesis アプリケーションの AWS SAM テンプレート

AWS SAM を使用してこのアプリケーションをビルドすることができます。AWS SAM テンプレートの詳細については、『AWS サーバーレスアプリケーションモデル 開発者ガイド』の「AWS SAM テンプレートの基礎」をご覧ください。

チュートリアルの Lambda アプリケーションのサンプル AWS SAM テンプレートを以下に示します。テンプレートの関数とハンドラは、Node.js コード用です。別のコードサンプルを使用する場合は、必要に応じて値を更新します。

例 template.yaml - Kinesis Stream

AWSTemplateFormatVersion: '2010-09-09' Transform: AWS::Serverless-2016-10-31 Resources: LambdaFunction: Type: AWS::Serverless::Function Properties: Handler: index.handler Runtime: nodejs8.10 Timeout: 10 Tracing: Active Events: Stream: Type: Kinesis Properties: Stream: !GetAtt KinesisStream.Arn BatchSize: 100 StartingPosition: LATEST KinesisStream: Type: AWS::Kinesis::Stream Properties: ShardCount: 1 Outputs: FunctionName: Description: "Function name" Value: !Ref LambdaFunction StreamARN: Description: "Stream ARN" Value: !GetAtt KinesisStream.Arn

テンプレートでは、Lambda 関数、Kinesis ストリーム、およびイベントソースマッピングを作成します。イベントソースマッピングは、ストリームから読み込み、関数を呼び出します。

HTTP/2 ストリームコンシューマーを使用するには、テンプレートでコンシューマーを作成し、ストリームからでなくコンシューマーから読み込むようにイベントソースマッピングを設定します。

例 template.yaml - Kinesis Stream コンシューマー

AWSTemplateFormatVersion: '2010-09-09' Transform: AWS::Serverless-2016-10-31 Description: A function that processes data from a Kinesis stream. Resources: kinesisprocessrecordpython: Type: AWS::Serverless::Function Properties: Handler: index.handler Runtime: nodejs8.10 Timeout: 10 Tracing: Active Events: Stream: Type: Kinesis Properties: Stream: !GetAtt StreamConsumer.ConsumerARN StartingPosition: LATEST BatchSize: 100 KinesisStream: Type: "AWS::Kinesis::Stream" Properties: ShardCount: 1 StreamConsumer: Type: "AWS::Kinesis::StreamConsumer" Properties: StreamARN: !GetAtt KinesisStream.Arn ConsumerName: "TestConsumer" Outputs: FunctionName: Description: "Function name" Value: !Ref LambdaFunction StreamARN: Description: "Stream ARN" Value: !GetAtt KinesisStream.Arn ConsumerARN: Description: "Stream consumer ARN" Value: !GetAtt StreamConsumer.ConsumerARN

パッケージおよびデプロイコマンドを使用してサーバーレスアプリケーションをパッケージングしてデプロイする方法については、『AWS サーバーレスアプリケーションモデル 開発者ガイド』の「サーバーレスアプリケーションのデプロイ」を参照してください。