- edited description
Unable to invoke a Lamda function (Node.js)
Issue #44
resolved
I tried to invoke a Lamda function (Node.js) but I got an error. Please help me how I fix it! Thanks.
My configuration:
- Arch Linux
- localstack (installed by pip)
- Python 3.6.1
I start localstack as docker with LAMBDA_EXECUTOR setting.
$ export LAMBDA_EXECUTOR=docker
$ localstack start --docker
Starting local dev environment. CTRL-C to quit.
docker run -it -e LAMBDA_EXECUTOR=docker -p 8080:8080 -p 4567-4582:4567-4582 -v "/tmp/localstack:/tmp/localstack" -v "/var/run/docker.sock:/var/run/docker.sock" -e DOCKER_HOST="unix:///var/run/docker.sock" "atlassianlabs/localstack"
I created the same function as the sample on the AWS Lamda tutorial and invoke it. http://docs.aws.amazon.com/lambda/latest/dg/with-userapp-walkthrough-custom-events.html
$ cat helloworld.js
console.log('Loading function');
exports.handler = function(event, context, callback) {
console.log('value1 =', event.key1);
console.log('value2 =', event.key2);
console.log('value3 =', event.key3);
callback(null, "Success");
};
$ zip helloworld.zip helloworld.js
$ aws \
--endpoint-url=http://localhost:4574 \
lambda create-function \
--region ap-northeast-1 \
--function-name helloworld \
--zip-file fileb://`pwd`/helloworld.zip \
--role r1 \
--handler helloworld.handler \
--runtime nodejs6.10
$ aws \
--endpoint-url=http://localhost:4574 \
lambda list-functions
{
"Functions": [
{
"FunctionName": "helloworld",
"FunctionArn": "arn:aws:lambda:us-east-1:000000000000:function:helloworld",
"Runtime": "nodejs6.10",
"Handler": "helloworld.handler",
"Timeout": 60,
"Version": "$LATEST"
}
]
}
$ aws \
--endpoint-url=http://localhost:4574 \
lambda invoke \
--invocation-type RequestResponse \
--function-name helloworld \
--region ap-northeast-1 \
--payload '{"key1":"value1", "key2":"value2", "key3":"value3"}' \
outputfile.txt
An error occurred (Exception) when calling the Invoke operation: Error executing Lambda function: Command 'docker run -v "/tmp/localstack/zipfile.1fea74ef":/var/task -e AWS_LAMBDA_EVENT_BODY="$AWS_LAMBDA_EVENT_BODY" -e HOSTNAME="$HOSTNAME" "lambci/lambda:nodejs6.10" "helloworld.handler"' returned non-zero exit status 1 Traceback (most recent call last):
File "/opt/code/localstack/localstack/mock/apis/lambda_api.py", line 271, in run_lambda
'HOSTNAME': DOCKER_BRIDGE_IP,
File "/opt/code/localstack/localstack/utils/common.py", line 406, in run
return do_run(cmd)
File "/opt/code/localstack/localstack/utils/common.py", line 403, in do_run
raise e
CalledProcessError: Command 'docker run -v "/tmp/localstack/zipfile.1fea74ef":/var/task -e AWS_LAMBDA_EVENT_BODY="$AWS_LAMBDA_EVENT_BODY" -e HOSTNAME="$HOSTNAME" "lambci/lambda:nodejs6.10" "helloworld.handler"' returned non-zero exit status 1
localstack got this error.
WARNING:localstack.mock.apis.lambda_api:Error executing Lambda function: Command 'docker run -v "/tmp/localstack/zipfile.1fea74ef":/var/task -e AWS_LAMBDA_EVENT_BODY="$AWS_LAMBDA_EVENT_BODY" -e HOSTNAME="$HOSTNAME" "lambci/lambda:nodejs6.10" "helloworld.handler"' returned non-zero exit status 1 Traceback (most recent call last):
File "/opt/code/localstack/localstack/mock/apis/lambda_api.py", line 271, in run_lambda
'HOSTNAME': DOCKER_BRIDGE_IP,
File "/opt/code/localstack/localstack/utils/common.py", line 406, in run
return do_run(cmd)
File "/opt/code/localstack/localstack/utils/common.py", line 403, in do_run
raise e
CalledProcessError: Command 'docker run -v "/tmp/localstack/zipfile.1fea74ef":/var/task -e AWS_LAMBDA_EVENT_BODY="$AWS_LAMBDA_EVENT_BODY" -e HOSTNAME="$HOSTNAME" "lambci/lambda:nodejs6.10" "helloworld.handler"' returned non-zero exit status 1
docker run -v "/tmp/localstack/zipfile.1fea74ef":/var/task -e AWS_LAMBDA_EVENT_BODY="$AWS_LAMBDA_EVENT_BODY" -e HOSTNAME="$HOSTNAME" "lambci/lambda:nodejs6.10" "helloworld.handler"
ERROR: 'docker run -v "/tmp/localstack/zipfile.1fea74ef":/var/task -e AWS_LAMBDA_EVENT_BODY="$AWS_LAMBDA_EVENT_BODY" -e HOSTNAME="$HOSTNAME" "lambci/lambda:nodejs6.10" "helloworld.handler"': START RequestId: 014a1628-f685-1532-21a5-ddb97ce88e42 Version: $LATEST
module initialization error: Error
at Error (native)
at Object.fs.openSync (fs.js:641:18)
at Object.fs.readFileSync (fs.js:509:33)
at Object.Module._extensions..js (module.js:578:20)
at Module.load (module.js:487:32)
at tryModuleLoad (module.js:446:12)
at Function.Module._load (module.js:438:3)
at Module.require (module.js:497:17)
at require (internal/module.js:20:19)
2017-07-04T01:28:28.936Z 014a1628-f685-1532-21a5-ddb97ce88e42 TypeError: awslambda.reportException is not a function
docker run -v "/tmp/localstack/zipfile.1fea74ef":/var/task -e AWS_LAMBDA_EVENT_BODY="$AWS_LAMBDA_EVENT_BODY" -e HOSTNAME="$HOSTNAME" "lambci/lambda:nodejs6.10" "helloworld.handler"WARNING:localstack.mock.apis.lambda_api:Error executing Lambda function: Command 'docker run -v "/tmp/localstack/zipfile.1fea74ef":/var/task -e AWS_LAMBDA_EVENT_BODY="$AWS_LAMBDA_EVENT_BODY" -e HOSTNAME="$HOSTNAME" "lambci/lambda:nodejs6.10" "helloworld.handler"' returned non-zero exit status 1 Traceback (most recent call last):
File "/opt/code/localstack/localstack/mock/apis/lambda_api.py", line 271, in run_lambda
'HOSTNAME': DOCKER_BRIDGE_IP,
File "/opt/code/localstack/localstack/utils/common.py", line 406, in run
return do_run(cmd)
File "/opt/code/localstack/localstack/utils/common.py", line 403, in do_run
raise e
CalledProcessError: Command 'docker run -v "/tmp/localstack/zipfile.1fea74ef":/var/task -e AWS_LAMBDA_EVENT_BODY="$AWS_LAMBDA_EVENT_BODY" -e HOSTNAME="$HOSTNAME" "lambci/lambda:nodejs6.10" "helloworld.handler"' returned non-zero exit status 1
Comments (5)
-
reporter -
reporter simillar issue https://github.com/localstack/localstack/issues/100
-
Account Deactivated Thanks for reporting @yoheio. This is fixed in the latest commit, can you please give it a try by re-installing/upgrading to the latest LocalStack CLI (should install version
0.6.0.1
):pip install --upgrade localstack
Please let me know if that works for you. Thanks.
-
Thanks!
-
reporter - changed status to resolved
- Log in to comment