This repository was archived by the owner on Oct 23, 2023. It is now read-only.
File tree 1 file changed +25
-2
lines changed
1 file changed +25
-2
lines changed Original file line number Diff line number Diff line change 1
1
from __future__ import absolute_import
2
2
3
+ import logging
4
+ import os
3
5
import warnings
4
6
5
7
from raven ._compat import PY2 , text_type
6
8
from raven .exceptions import InvalidDsn
7
- from raven .transport .threaded import ThreadedHTTPTransport
8
9
from raven .utils .encoding import to_string
9
10
from raven .utils .urlparse import parse_qsl , urlparse
10
11
11
12
ERR_UNKNOWN_SCHEME = 'Unsupported Sentry DSN scheme: {0} ({1})'
12
13
13
- DEFAULT_TRANSPORT = ThreadedHTTPTransport
14
+ logger = logging .getLogger ('raven' )
15
+
16
+
17
+ def discover_default_transport ():
18
+ from raven .transport .threaded import ThreadedHTTPTransport
19
+ from raven .transport .http import HTTPTransport
20
+
21
+ # Google App Engine
22
+ # https://cloud.google.com/appengine/docs/python/how-requests-are-handled#Python_The_environment
23
+ if 'CURRENT_VERSION_ID' in os .environ and 'INSTANCE_ID' in os .environ :
24
+ logger .info ('Detected environment to be Google App Engine. Using synchronous HTTP transport.' )
25
+ return HTTPTransport
26
+
27
+ # AWS Lambda
28
+ # https://alestic.com/2014/11/aws-lambda-environment/
29
+ if 'LAMBDA_TASK_ROOT' in os .environ :
30
+ logger .info ('Detected environment to be AWS Lambda. Using synchronous HTTP transport.' )
31
+ return HTTPTransport
32
+
33
+ return ThreadedHTTPTransport
34
+
35
+
36
+ DEFAULT_TRANSPORT = discover_default_transport ()
14
37
15
38
16
39
class RemoteConfig (object ):
You can’t perform that action at this time.
0 commit comments