Я хотел создать подтверждение концепции для aws sam местного потребителя Kinesis, ниже мой java-файл Kinesis Consumer
import com.amazonaws.services.lambda.runtime.Context; import
com.amazonaws.services.lambda.runtime.RequestHandler; import
com.amazonaws.services.lambda.runtime.events.KinesisEvent; import
com.amazonaws.services.lambda.runtime.events.KinesisEvent.KinesisEventRecord;
public class LambdaFunctionHandler implements
RequestHandler<KinesisEvent, Integer> {
@Override
public Integer handleRequest(KinesisEvent event, Context context) {
context.getLogger().log("Input: " + event);
for (KinesisEventRecord record : event.getRecords()) {
String payload = new String(record.getKinesis().getData().array());
context.getLogger().log("Payload: " + payload);
}
return event.getRecords().size();
} }
, а это мой файл template.yaml
AWSTemplateFormatVersion: '2010-09-09'
Transform: AWS::Serverless-2016-10-31
Description: A function that processes data from a Kinesis stream.
Resources:
LambdaFunction:
Type: AWS::Serverless::Function
Properties:
Handler: com.example.handler.LambdaFunctionHandler
CodeUri: ./target/demo-1.0.0.jar
Runtime: java8
Timeout: 10
Tracing: Active
Events:
Stream:
Type: Kinesis
Properties:
Stream: !GetAtt StreamConsumer.ConsumerARN
StartingPosition: LATEST
BatchSize: 100
ListProducts:
Type: Api
Properties:
Path: /lambda
Method: post
KinesisStream:
Type: "AWS::Kinesis::Stream"
Properties:
ShardCount: 1
Outputs:
FunctionName:
Description: "Function name"
Value: !Ref LambdaFunction
StreamARN:
Description: "Stream ARN"
Value: !GetAtt KinesisStream.Arn
Прежде всего, как запустить и использовать файл sample.json, я получаю ошибку ниже, если я запускаю так:
Найдены учетные данные в файле общих учетных данных: ~ / .aws / credentials LambdaFunctionHandler not found.Возможные варианты в вашем шаблоне: ['LambdaFunction']
Error: Function LambdaFunctionHandler not found in template