Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

move initialization to lambda_handler due to before_first_request removal in flask 2.3.0 #291

Merged
merged 1 commit into from
Dec 29, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
15 changes: 15 additions & 0 deletions door/src/door/lambda_handler.py
Original file line number Diff line number Diff line change
@@ -1,3 +1,7 @@
import json
import os

import boto3
import serverless_wsgi

from door import app
Expand All @@ -6,5 +10,16 @@
serverless_wsgi.TEXT_MIME_TYPES.append('application/problem+json')


def get_secret(secret_name):
sm = boto3.client('secretsmanager', os.environ['AWS_REGION'])
response = sm.get_secret_value(SecretId=secret_name)
secret = json.loads(response['SecretString'])
return secret


private_key = get_secret(os.environ['PRIVATE_KEY_SECRET_NAME'])['private_key']
os.environ['CLOUDFRONT_PRIVATE_KEY'] = str(private_key)


def handler(event, context):
return serverless_wsgi.handle_request(app, event, context)
14 changes: 0 additions & 14 deletions door/src/door/routes.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@
import json
import os
from datetime import datetime, timedelta, timezone
from urllib.parse import quote_plus
Expand All @@ -25,12 +24,6 @@ def decode_token(token):
return None


@app.before_first_request
def init_app():
private_key = get_secret(os.environ['PRIVATE_KEY_SECRET_NAME'])['private_key']
os.environ['CLOUDFRONT_PRIVATE_KEY'] = str(private_key)


@app.before_request
def authenticate_user():
cookie = request.cookies.get(os.environ['JWT_COOKIE_NAME'])
Expand Down Expand Up @@ -71,10 +64,3 @@ def rsa_signer(message):
cf_signer = CloudFrontSigner(os.environ['CLOUDFRONT_KEY_PAIR_ID'], rsa_signer)
signed_url = cf_signer.generate_presigned_url(base_url, date_less_than=expiration_datetime)
return signed_url


def get_secret(secret_name):
sm = boto3.client('secretsmanager', os.environ['AWS_REGION'])
response = sm.get_secret_value(SecretId=secret_name)
secret = json.loads(response['SecretString'])
return secret
Loading