Description
There doesn't seem to be a way to make the project runnable in both AWS and offline.
Attempt 1 (from aws-go)
So I have this config (from aws-go template):
functions:
hello:
handler: bin/hello
events:
- httpApi:
path: /hello
method: get
world:
handler: bin/world
events:
- httpApi:
path: /world
method: get
This works on AWS and with --useDocker, but fails locally with an error:
$ curl 127.0.0.1:5555/hello
{"errorMessage":"ENOENT: no such file or directory, open '/home/anderson/src/serverlessapp.go'","errorType":"Error","stackTrace":[]}
Please note the path above: it's pointing to an unexisting serverlessapp.go file (which in fact is a folder of my project, serverlessapp)
Attempt 2 (from PR #1320)
I've checked #1320 and that PR contains a different config, so I've rewritten my config by changing handler string:
functions:
hello:
handler: hello/main.go # <-------
events:
- httpApi:
path: /hello
method: get
world:
handler: world/main.go # <-------
events:
- httpApi:
path: /world
method: get
Now, local execution succeeds:
$ curl 127.0.0.1:5555/hello
{"message":"Go Serverless v1.0! Your function executed successfully!"}
However, now the code does not work when deployed to AWS:
$ curl https://XXXXXXXXXX.execute-api.us-east-1.amazonaws.com/hello
{"message":"Internal Server Error"}
$ serverless logs --function hello
Running "serverless" from node_modules
START
fork/exec /var/task/hello/main.go: no such file or directory: PathError
null
END Duration: 2.96 ms (init: 19.76 ms) Memory Used: 19 MB
START
fork/exec /var/task/hello/main.go: no such file or directory: PathError
null
END Duration: 2.62 ms (init: 19.52 ms) Memory Used: 19 MB
Question: What is the correct way to configure my project? I cannot seem to find a way to run a project with the same config both locally and on AWS. Config 1 works on AWS only, config 2 works locally only...
Thanks in advance!