Я сейчас создаю свой первый kotlin проект с использованием безсерверного и локального стека.
Этот проект создан с использованием безсерверного шаблона sls create -t aws-kotlin-jvm-gradle
. Вот дерево проекта.
project
└application
docker-compose.yml (for installing localstack)
└lambda
└test
(main kotlin files)
serverless.yml
gradlew
И здесь я успешно развернул образец приветственного кода в localstack.
Serverless: Stack update finished...
Service Information
service: xxx
stage: local
region: us-east-1
stack: xxx-local
resources: 11
api keys:
None
endpoints:
http://localhost:4567/restapis/04dyi9dgl1/local/_user_request_
functions:
hello: xxx-local-hello
layers:
None
Serverless: Run the "serverless" command to setup monitoring, troubleshooting and testing.
Но, выполнив sls invoke --function hello
, я получил ошибку ниже:
Serverless: Using serverless-localstack
Serverless: Warning: Unable to find plugin named: TypeScriptPlugin
Serverless: Recoverable error occurred (Error executing Lambda function arn:aws:lambda:us-east-1:000000000000:function:xxx-local-hello: Lambda process returned error status code: 1. Result: . Output:
Error: Could not find or load main class cloud.localstack.LambdaExecutor
Caused by: java.lang.ClassNotFoundException: cloud.localstack.LambdaExecutor Traceback (most recent call last):
File "/opt/code/localstack/localstack/services/awslambda/lambda_api.py", line 380, in run_lambda
event, context=context, version=version, asynchronous=asynchronous)
File "/opt/code/localstack/localstack/services/awslambda/lambda_executors.py", line 116, in execute
return do_execute()
File "/opt/code/localstack/localstack/services/awslambda/lambda_executors.py", line 101, in do_execute
raise e
File "/opt/code/localstack/localstack/services/awslambda/lambda_executors.py", line 90, in do_execute
result, log_output = self._execute(func_arn, func_details, event, context, version)
File "/opt/code/localstack/localstack/services/awslambda/lambda_executors.py", line 235, in _execute
result, log_output = self.run_lambda_executor(cmd, stdin, environment)
File "/opt/code/localstack/localstack/services/awslambda/lambda_executors.py", line 153, in run_lambda_executor
(return_code, result, log_output))
Exception: Lambda process returned error status code: 1. Result: . Output:
Error: Could not find or load main class cloud.localstack.LambdaExecutor
Caused by: java.lang.ClassNotFoundException: cloud.localstack.LambdaExecutor
)
Кажется, что сервер не может найти LambdaExecutor
класс, но я не знаю, что для этого сделать.
Может кто-нибудь помочь мне с решением этой ошибки?