aws-sam-cli: Bug: sam local invoke - APIError
Description:
Trying to run the command sam local invoke <myFunctionHere> -e .\events\event.json
and everytime I try to run that command, I get hit with a 500 error
Steps to reproduce:
To reproduce this, all I have to do is run the command mentioned above
Observed result:
2023-03-31 00:51:20,277 | Config file location: C:\Users\mresp\Desktop\Buidness\repos\open-ai-api\endpoints\generateName\samconfig.toml
2023-03-31 00:51:20,278 | Loading configuration values from [default.[‘local’, ‘invoke’].parameters] (env.command_name.section) in config file at ‘C:\Users\mresp\Desktop\Buidness\repos\open-ai-api\endpoints\generateName\samconfig.toml’…
2023-03-31 00:51:20,281 | Configuration values successfully loaded.
2023-03-31 00:51:20,281 | Configuration values are: {‘stack_name’: ‘generateName’}
2023-03-31 00:51:20,284 | Using SAM Template at C:\Users\mresp\Desktop\Buidness\repos\open-ai-api\endpoints\generateName.aws-sam\build\template.yaml
2023-03-31 00:51:20,296 | Using config file: samconfig.toml, config environment: default
2023-03-31 00:51:20,297 | Expand command line arguments to:
2023-03-31 00:51:20,297 | --template_file=C:\Users\mresp\Desktop\Buidness\repos\open-ai-api\endpoints\generateName.aws-sam\build\template.yaml --event=.\events\event.json --function_logical_id=GenerateNameFunction --no_event --layer_cache_basedir=C:\Users\mresp\AppData\Roaming\AWS SAM\layers-pkg --container_host=localhost --container_host_interface=127.0.0.1
2023-03-31 00:51:20,297 | local invoke command is called
2023-03-31 00:51:20,299 | No Parameters detected in the template
2023-03-31 00:51:20,319 | Sam customer defined id is more priority than other IDs. Customer defined id for resource GenerateNameFunction is GenerateNameFunction
2023-03-31 00:51:20,320 | There is no customer defined id or cdk path defined for resource ApplicationResourceGroup, so we will use the resource logical id as the resource id
2023-03-31 00:51:20,320 | There is no customer defined id or cdk path defined for resource ApplicationInsightsMonitoring, so we will use the resource logical id as the resource id
2023-03-31 00:51:20,320 | 0 stacks found in the template
2023-03-31 00:51:20,320 | No Parameters detected in the template
2023-03-31 00:51:20,330 | Sam customer defined id is more priority than other IDs. Customer defined id for resource GenerateNameFunction is GenerateNameFunction
2023-03-31 00:51:20,330 | There is no customer defined id or cdk path defined for resource ApplicationResourceGroup, so we will use the resource logical id as the resource id
2023-03-31 00:51:20,331 | There is no customer defined id or cdk path defined for resource ApplicationInsightsMonitoring, so we will use the resource logical id as the resource id
2023-03-31 00:51:20,331 | 3 resources found in the stack
2023-03-31 00:51:20,331 | Found Serverless function with name=‘GenerateNameFunction’ and CodeUri=‘GenerateNameFunction’
2023-03-31 00:51:20,331 | --base-dir is not presented, adjusting uri GenerateNameFunction relative to C:\Users\mresp\Desktop\Buidness\repos\open-ai-api\endpoints\generateName.aws-sam\build\template.yaml
2023-03-31 00:51:20,342 | Found one Lambda function with name ‘GenerateNameFunction’
2023-03-31 00:51:20,342 | Invoking app.lambdaHandler (nodejs18.x)
2023-03-31 00:51:20,342 | No environment variables found for function ‘GenerateNameFunction’
2023-03-31 00:51:20,342 | Loading AWS credentials from session with profile ‘None’
2023-03-31 00:51:20,349 | Resolving code path. Cwd=C:\Users\mresp\Desktop\Buidness\repos\open-ai-api\endpoints\generateName.aws-sam\build, CodeUri=C:\Users\mresp\Desktop\Buidness\repos\open-ai-api\endpoints\generateName.aws-sam\build\GenerateNameFunction
2023-03-31 00:51:20,349 | Resolved absolute path to code is C:\Users\mresp\Desktop\Buidness\repos\open-ai-api\endpoints\generateName.aws-sam\build\GenerateNameFunction
2023-03-31 00:51:20,349 | Code C:\Users\mresp\Desktop\Buidness\repos\open-ai-api\endpoints\generateName.aws-sam\build\GenerateNameFunction is not a zip/jar file
2023-03-31 00:51:20,352 | Cleaning all decompressed code dirs
2023-03-31 00:51:20,353 | Telemetry endpoint configured to be https://aws-serverless-tools-telemetry.us-west-2.amazonaws.com/metrics
2023-03-31 00:51:20,438 | Sending Telemetry: {‘metrics’: [{‘commandRun’: {‘requestId’: ‘163d39da-d9d1-44b6-ae90-d7ddd4573a73’, ‘installationId’: ‘261cafca-02e1-45e3-898a-60696bd4b0f9’, ‘sessionId’: ‘3e73484c-063e-4805-a04b-c08e176cf430’, ‘executionEnvironment’: ‘CLI’, ‘ci’: False, ‘pyversion’: ‘3.8.8’, ‘samcliVersion’: ‘1.78.0’, ‘awsProfileProvided’: False, ‘debugFlagProvided’: True, ‘region’: ‘’, ‘commandName’: ‘sam local invoke’, ‘metricSpecificAttributes’: {‘projectType’: ‘CFN’, ‘gitOrigin’: ‘43eef2271780ab63c4ecbb3ee3d15bac8ea1ba8e7005fea7835d8562e240ed27’, ‘projectName’: ‘c476b3cb78cf15c8bd71c3d96f732103e3c4f3d5715a6d89a212d581cc4b3fd5’, ‘initialCommit’: ‘2bc2f20088ce9b163c9f9d27fed40f5522126a9732ca370f901380f9cab78cc8’}, ‘duration’: 56, ‘exitReason’: ‘APIError’, ‘exitCode’: 255}}]}
2023-03-31 00:51:21,023 | Telemetry response: 200
Error: 500 Server Error: Internal Server Error (“readlink /var/lib/docker/overlay2: invalid argument”) Traceback: File “C:\Program Files\Amazon\AWSSAMCLI\runtime\lib\site-packages\click\core.py”, line 1055, in main rv = self.invoke(ctx) File “C:\Program Files\Amazon\AWSSAMCLI\runtime\lib\site-packages\click\core.py”, line 1657, in invoke return _process_result(sub_ctx.command.invoke(sub_ctx)) File “C:\Program Files\Amazon\AWSSAMCLI\runtime\lib\site-packages\click\core.py”, line 1657, in invoke return _process_result(sub_ctx.command.invoke(sub_ctx)) File “C:\Program Files\Amazon\AWSSAMCLI\runtime\lib\site-packages\click\core.py”, line 1404, in invoke return ctx.invoke(self.callback, **ctx.params) File “C:\Program Files\Amazon\AWSSAMCLI\runtime\lib\site-packages\click\core.py”, line 760, in invoke return __callback(*args, **kwargs) File “C:\Program Files\Amazon\AWSSAMCLI\runtime\lib\site-packages\click\decorators.py”, line 84, in new_func return ctx.invoke(f, obj, *args, **kwargs) File “C:\Program Files\Amazon\AWSSAMCLI\runtime\lib\site-packages\click\core.py”, line 760, in invoke return __callback(*args, **kwargs) File “C:\Program Files\Amazon\AWSSAMCLI\runtime\lib\site-packages\samcli\lib\telemetry\metric.py”, line 183, in wrapped raise exception # pylint: disable=raising-bad-type File “C:\Program Files\Amazon\AWSSAMCLI\runtime\lib\site-packages\samcli\lib\telemetry\metric.py”, line 148, in wrapped return_value = func(*args, **kwargs) File “C:\Program Files\Amazon\AWSSAMCLI\runtime\lib\site-packages\samcli\lib\utils\version_checker.py”, line 42, in wrapped actual_result = func(*args, **kwargs) File “C:\Program Files\Amazon\AWSSAMCLI\runtime\lib\site-packages\samcli\cli\main.py”, line 92, in wrapper return func(*args, **kwargs) File “C:\Program Files\Amazon\AWSSAMCLI\runtime\lib\site-packages\samcli\commands\local\invoke\cli.py”, line 96, in cli do_cli( File “C:\Program Files\Amazon\AWSSAMCLI\runtime\lib\site-packages\samcli\commands\local\invoke\cli.py”, line 202, in do_cli context.local_lambda_runner.invoke( File “C:\Program Files\Amazon\AWSSAMCLI\runtime\lib\site-packages\samcli\commands\local\lib\local_lambda.py”, line 144, in invoke self.local_runtime.invoke( File “C:\Program Files\Amazon\AWSSAMCLI\runtime\lib\site-packages\samcli\lib\telemetry\metric.py”, line 323, in wrapped_func return_value = func(*args, **kwargs) File “C:\Program Files\Amazon\AWSSAMCLI\runtime\lib\site-packages\samcli\local\lambdafn\runtime.py”, line 189, in invoke container = self.create(function_config, debug_context, container_host, container_host_interface) File “C:\Program Files\Amazon\AWSSAMCLI\runtime\lib\site-packages\samcli\local\lambdafn\runtime.py”, line 85, in create container = LambdaContainer( File “C:\Program Files\Amazon\AWSSAMCLI\runtime\lib\site-packages\samcli\local\docker\lambda_container.py”, line 94, in init image = LambdaContainer._get_image( File “C:\Program Files\Amazon\AWSSAMCLI\runtime\lib\site-packages\samcli\local\docker\lambda_container.py”, line 237, in _get_image return lambda_image.build(runtime, packagetype, image, layers, architecture, function_name=function_name) File “C:\Program Files\Amazon\AWSSAMCLI\runtime\lib\site-packages\samcli\local\docker\lambda_image.py”, line 188, in build self.docker_client.images.get(rapid_image) File “C:\Program Files\Amazon\AWSSAMCLI\runtime\lib\site-packages\docker\models\images.py”, line 316, in get return self.prepare_model(self.client.api.inspect_image(name)) File “C:\Program Files\Amazon\AWSSAMCLI\runtime\lib\site-packages\docker\utils\decorators.py”, line 19, in wrapped return f(self, resource_id, *args, **kwargs) File “C:\Program Files\Amazon\AWSSAMCLI\runtime\lib\site-packages\docker\api\image.py”, line 245, in inspect_image return self._result( File “C:\Program Files\Amazon\AWSSAMCLI\runtime\lib\site-packages\docker\api\client.py”, line 267, in _result self._raise_for_status(response) File “C:\Program Files\Amazon\AWSSAMCLI\runtime\lib\site-packages\docker\api\client.py”, line 263, in _raise_for_status raise create_api_error_from_http_exception(e) File “C:\Program Files\Amazon\AWSSAMCLI\runtime\lib\site-packages\docker\errors.py”, line 31, in create_api_error_from_http_exception raise cls(e, response=response, explanation=explanation)
Expected result:
I expect the docker image to be spun up and I will be able to test my lambda function
Additional environment details (Ex: Windows, Mac, Amazon Linux etc)
- OS: Windows 10
sam --version
: SAM CLI, version 1.78.0- AWS region: us-east-2
# Paste the output of `sam --info` here
{
“version”: “1.78.0”,
“system”: {
“python”: “3.8.8”,
“os”: “Windows-10-10.0.19041-SP0”
},
“additional_dependencies”: {
“docker_engine”: “Not available”,
“aws_cdk”: “Not available”,
“terraform”: “Not available”
}
}
Add --debug flag to command you are running
About this issue
- Original URL
- State: closed
- Created a year ago
- Reactions: 1
- Comments: 17 (4 by maintainers)
adding
--container-host-interface 0.0.0.0
to the end of my command fixed (at least temporarily) the issue for me.Example:
sam local invoke {function-name} --container-host-interface 0.0.0.0
hopefully this helps others!
I fixed it by doing this:
wsl --shutdown
sam local invoke
I find WSL to be a major pain especially when dealing with docker…
Now it seems to work without any workaround, so i guess it’s somehow fixed.
I am seeing the same issues when using WSL2