Merge pull request #3156 from bblommers/bug/3150

AWS Lambda - Verify Docker is running when executing a Function
This commit is contained in:
Steve Pulec 2020-07-26 15:32:11 -05:00 committed by GitHub
commit ebae2b1799
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -401,6 +401,7 @@ class LambdaFunction(BaseModel):
log_config = docker.types.LogConfig(type=docker.types.LogConfig.types.JSON) log_config = docker.types.LogConfig(type=docker.types.LogConfig.types.JSON)
with _DockerDataVolumeContext(self) as data_vol: with _DockerDataVolumeContext(self) as data_vol:
try: try:
self.docker_client.ping() # Verify Docker is running
run_kwargs = ( run_kwargs = (
dict(links={"motoserver": "motoserver"}) dict(links={"motoserver": "motoserver"})
if settings.TEST_SERVER_MODE if settings.TEST_SERVER_MODE
@ -463,6 +464,9 @@ class LambdaFunction(BaseModel):
[line for line in self.convert(output).splitlines()[:-1]] [line for line in self.convert(output).splitlines()[:-1]]
) )
return resp, False, logs return resp, False, logs
except docker.errors.DockerException as e:
# Docker itself is probably not running - there will be no Lambda-logs to handle
return "error running docker: {}".format(e), True, ""
except BaseException as e: except BaseException as e:
traceback.print_exc() traceback.print_exc()
logs = os.linesep.join( logs = os.linesep.join(