aws-sam-cli: fix local command for Werkzeug>=2.1.0 (#182750)

This commit is contained in:
Mel Bourgeois 2022-09-04 09:21:01 -05:00 committed by GitHub
parent 5518e6aba1
commit 0644bf4361
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 23 additions and 0 deletions

View File

@ -41,6 +41,10 @@ python3.pkgs.buildPythonApplication rec {
# `shutil.get_terminal_size` instead.
# (https://github.com/pallets/click/pull/2130)
./support-click-8-1.patch
# Werkzeug >= 2.1.0 breaks the `sam local start-lambda` command because
# aws-sam-cli uses a "WERKZEUG_RUN_MAIN" hack to suppress flask output.
# (https://github.com/cs01/gdbgui/issues/425)
./use_forward_compatible_log_silencing.patch
];
# fix over-restrictive version bounds

View File

@ -0,0 +1,19 @@
diff --git a/samcli/local/services/base_local_service.py b/samcli/local/services/base_local_service.py
index 7b1ab95895d1..76812f02e00a 100644
--- a/samcli/local/services/base_local_service.py
+++ b/samcli/local/services/base_local_service.py
@@ -56,9 +56,11 @@ class BaseLocalService:
LOG.debug("Localhost server is starting up. Multi-threading = %s", multi_threaded)
- # This environ signifies we are running a main function for Flask. This is true, since we are using it within
- # our cli and not on a production server.
- os.environ["WERKZEUG_RUN_MAIN"] = "true"
+ # Suppress flask dev server output in a forward-compatible way
+ # Source: https://github.com/cs01/gdbgui/issues/425#issuecomment-1119836533
+ import flask.cli
+
+ flask.cli.show_server_banner = lambda *args: None
self._app.run(threaded=multi_threaded, host=self.host, port=self.port)