AWS SAMPlantilla para una aplicación Kinesis
Puede construir esta aplicación utilizando AWS SAM. Para obtener más información sobre la creación de plantillas AWS SAM, diríjase a Aspectos básicos sobre plantillas AWS SAM en la Guía para desarrolladores de AWS Serverless Application Model.
A continuación, hay una plantilla AWS SAM de muestra para la aplicación de Lambda del tutorial. La función y controlador de la plantilla corresponden al código de Node.js. Si utiliza un código de muestra diferente, actualice los valores en consecuencia.
ejemplo template.yaml: flujo de Kinesis
AWSTemplateFormatVersion: '2010-09-09' Transform: AWS::Serverless-2016-10-31 Resources: LambdaFunction: Type: AWS::Serverless::Function Properties: Handler:
index.handler
Runtime:nodejs12.x
Timeout: 10 Tracing: Active Events: Stream: Type: Kinesis Properties: Stream: !GetAtt stream.Arn BatchSize: 100 StartingPosition: LATEST stream: Type: AWS::Kinesis::Stream Properties: ShardCount: 1 Outputs: FunctionName: Description: "Function name" Value: !Ref LambdaFunction StreamARN: Description: "Stream ARN" Value: !GetAtt stream.Arn
La plantilla crea una función de Lambda, un flujo de Kinesis y un mapeo de fuente de eventos. El mapeo de origen de eventos lee del flujo e invoca la función.
Para utilizar un consumidor de flujos HTTP/2, cree el consumidor en la plantilla y configure el mapeo de origen de eventos para que lea del consumidor en lugar de leer del flujo.
ejemplo template.yaml: consumidor de flujos de Kinesis
AWSTemplateFormatVersion: '2010-09-09' Transform: AWS::Serverless-2016-10-31 Description: A function that processes data from a Kinesis stream. Resources: function: Type: AWS::Serverless::Function Properties: Handler:
index.handler
Runtime:nodejs12.x
Timeout: 10 Tracing: Active Events: Stream: Type: Kinesis Properties: Stream:!GetAtt streamConsumer.ConsumerARN
StartingPosition: LATEST BatchSize: 100 stream: Type: "AWS::Kinesis::Stream" Properties: ShardCount: 1streamConsumer: Type: "AWS::Kinesis::StreamConsumer" Properties: StreamARN: !GetAtt stream.Arn ConsumerName: "TestConsumer"
Outputs: FunctionName: Description: "Function name" Value: !Ref function StreamARN: Description: "Stream ARN" Value: !GetAtt stream.Arn ConsumerARN: Description: "Stream consumer ARN" Value: !GetAtt streamConsumer.ConsumerARN
Para obtener más información sobre cómo empaquetar e implementar una aplicación sin servidor usando los comandos de empaquetado e implementación, consulte Implementación de aplicaciones sin servidor en la Guía para desarrolladores de AWS Serverless Application Model.