-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathmain.py
More file actions
61 lines (50 loc) · 1.61 KB
/
Copy pathmain.py
File metadata and controls
61 lines (50 loc) · 1.61 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
import json
import logging
import sentry_sdk
from sentry_sdk.integrations.aws_lambda import AwsLambdaIntegration
import stackref.settings as settings
from stackref.settings import return_error
from stackref.process_get_method import process_get_method
from stackref.process_post_method import process_post_method
from stackref.process_sqs_message import process_sqs_message
print(':: Loading function')
sentry_sdk.init(
dsn="https://YOUR_SENTRY_KEY@oYOUR_ORG.ingest.sentry.io/YOUR_PROJECT",
integrations=[
AwsLambdaIntegration()
],
enable_tracing=True,
profiles_sample_rate=1.0,
traces_sample_rate=1.0
)
'''
main
'''
def main(event, context):
log.debug(f":: Received event: {json.dumps(event, indent=2)}")
if (
'requestContext' in event and
'http' in event['requestContext'] and
'method' in event['requestContext']['http']
):
if event['requestContext']['http']['method'] == "GET":
return process_get_method(event)
if event['requestContext']['http']['method'] == "POST":
return process_post_method(event)
else:
return return_error(405, 'main: unhandled method')
if (
'Records' in event and
len(event['Records']) > 0 and
'body' in event['Records'][0]
):
body = json.loads(event['Records'][0]['body'])
return process_sqs_message(body)
return return_error(500, 'main')
settings.init()
logging.basicConfig(level=logging.ERROR)
log = logging.getLogger(__name__)
settings.logging_config()
log.setLevel(settings.log_level)
if __name__ == "__main__":
main()