From 12d8596b1e7f5d7c31d90652228a6add671e27be Mon Sep 17 00:00:00 2001 From: manoshar Date: Sun, 3 Apr 2022 22:46:42 -0700 Subject: [PATCH 1/3] Upgrade runtime from python2.7 to python3.9 AWS announced end of support for Python2.7. This PR includes changes required to migrate Python 2.7 to Python 3.7. --- server/Makefile | 2 +- server/deploy.dockerfile | 2 +- server/private/lambda_function.py | 6 +++--- server/public/lambda_function.py | 9 +++++---- server/virtualenv.cmd | 2 +- server/virtualenv.dockerfile | 2 +- 6 files changed, 12 insertions(+), 11 deletions(-) diff --git a/server/Makefile b/server/Makefile index f1dc7ff..a2a4a64 100644 --- a/server/Makefile +++ b/server/Makefile @@ -32,7 +32,7 @@ create_functions: - aws lambda create-function \ --function-name feature-flipper-private \ - --runtime python2.7 \ + --runtime python2.9 \ --role $$(python lambda_role_arn.py) \ --handler lambda_function.lambda_handler \ --zip-file fileb://delete_me.zip diff --git a/server/deploy.dockerfile b/server/deploy.dockerfile index c899b57..d08b07d 100644 --- a/server/deploy.dockerfile +++ b/server/deploy.dockerfile @@ -1,4 +1,4 @@ -FROM python:2.7.11 +FROM python:3.9.12 RUN apt-get -y update RUN apt-get -y install zip diff --git a/server/private/lambda_function.py b/server/private/lambda_function.py index 4a5ebc5..b22a370 100644 --- a/server/private/lambda_function.py +++ b/server/private/lambda_function.py @@ -33,10 +33,10 @@ def lambda_handler(req, context): try: return handle_request(req) - except HTTPError, e: + except HTTPError as e: traceback.print_exc() raise e - except Exception, e: + except Exception as e: traceback.print_exc() s500() @@ -49,7 +49,7 @@ def handle_request(req): if 'resource_path' not in req: s400() - print(req['http_method'] + ' ' + req['resource_path']) + print('v2: ' + req['http_method'] + ' ' + req['resource_path']) if req['http_method'] == "GET": if req['resource_path'] == "/set/{set_id}": diff --git a/server/public/lambda_function.py b/server/public/lambda_function.py index 86a2c70..3326adc 100644 --- a/server/public/lambda_function.py +++ b/server/public/lambda_function.py @@ -25,10 +25,10 @@ def lambda_handler(req, context): try: return handle_request(req) - except HTTPError, e: + except HTTPError as e: traceback.print_exc() raise e - except Exception, e: + except Exception as e: traceback.print_exc() s500() @@ -41,7 +41,7 @@ def handle_request(req): if 'resource_path' not in req: s400() - print(req['http_method'] + ' ' + req['resource_path']) + print('v2: ' + req['http_method'] + ' ' + req['resource_path']) if req['http_method'] == "GET": if req['resource_path'] == "/sets": @@ -206,7 +206,8 @@ def get_feature_set_data(setId): if 'Item' in getDataRes: item = getDataRes['Item'] if 'Data' in item and 'B' in item['Data']: - featureData = msgpack.loads(item['Data']['B']) + featureData = msgpack.loads(item['Data']['B'], encoding='utf-8') + print(featureData) return featureData else: return {} diff --git a/server/virtualenv.cmd b/server/virtualenv.cmd index b86ab69..ee47fde 100755 --- a/server/virtualenv.cmd +++ b/server/virtualenv.cmd @@ -6,4 +6,4 @@ mkdir ve virtualenv ve source ve/bin/activate pip install msgpack-python -cp -R /ve/lib/python2.7/site-packages/* /host/virtualenv +cp -R /ve/lib/python3.9/site-packages/* /host/virtualenv diff --git a/server/virtualenv.dockerfile b/server/virtualenv.dockerfile index 04207c5..15cfb81 100644 --- a/server/virtualenv.dockerfile +++ b/server/virtualenv.dockerfile @@ -1,4 +1,4 @@ -FROM python:2.7.11 +FROM python:3.9.12 ADD virtualenv.cmd / From 7405c2c07801dccf4fb0a7c36200302bf5366789 Mon Sep 17 00:00:00 2001 From: manoshar Date: Mon, 4 Apr 2022 13:52:33 -0700 Subject: [PATCH 2/3] PR Feeback change Change: 1. Update Python2.7 to Python3.9 in makefile --- server/Makefile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/server/Makefile b/server/Makefile index a2a4a64..85e1c44 100644 --- a/server/Makefile +++ b/server/Makefile @@ -25,14 +25,14 @@ create_functions: - aws lambda create-function \ --function-name feature-flipper-public \ - --runtime python2.7 \ + --runtime python3.9 \ --role $$(python lambda_role_arn.py) \ --handler lambda_function.lambda_handler \ --zip-file fileb://delete_me.zip - aws lambda create-function \ --function-name feature-flipper-private \ - --runtime python2.9 \ + --runtime python3.9 \ --role $$(python lambda_role_arn.py) \ --handler lambda_function.lambda_handler \ --zip-file fileb://delete_me.zip From 75f3ba0a397a4fc3582fd02a733b789564749ca8 Mon Sep 17 00:00:00 2001 From: manoshar Date: Mon, 4 Apr 2022 16:35:59 -0700 Subject: [PATCH 3/3] PR Feedback Updated the command to create vitual env for python --- server/virtualenv.cmd | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/server/virtualenv.cmd b/server/virtualenv.cmd index ee47fde..7c9a3e6 100755 --- a/server/virtualenv.cmd +++ b/server/virtualenv.cmd @@ -3,7 +3,7 @@ rm -fr /host/virtualenv mkdir /host/virtualenv mkdir ve -virtualenv ve +python -m venv ve source ve/bin/activate pip install msgpack-python cp -R /ve/lib/python3.9/site-packages/* /host/virtualenv