Skip to content

Commit 6f87712

Browse files
committed
Add support for X-Ray tracing
1 parent b4b6ba6 commit 6f87712

File tree

4 files changed

+22
-1
lines changed

4 files changed

+22
-1
lines changed

Diff for: README.md

+3
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,9 @@ Example `lambda.json` file:
5353
"security_groups": [
5454
"sg-00000000"
5555
]
56+
},
57+
"tracing": {
58+
"Mode": "Active"
5659
}
5760
}
5861
```

Diff for: README.rst

+3
Original file line numberDiff line numberDiff line change
@@ -67,6 +67,9 @@ Example ``lambda.json`` file:
6767
"security_groups": [
6868
"sg-00000000"
6969
]
70+
},
71+
"tracing": {
72+
"Mode": "Active"
7073
}
7174
}
7275

Diff for: lambda_uploader/config.py

+14-1
Original file line numberDiff line numberDiff line change
@@ -29,12 +29,13 @@
2929
REQUIRED_KINESIS_SUBSCRIPTION_PARAMS = {u'stream': basestring,
3030
u'batch_size': int,
3131
u'starting_position': basestring}
32+
REQUIRED_TRACING_MODES = ['Active', 'PassThrough']
3233

3334
DEFAULT_PARAMS = {u'requirements': [], u'publish': False,
3435
u'alias': None, u'alias_description': None,
3536
u'ignore': [], u'extra_files': [], u'vpc': None,
3637
u's3_bucket': None, u's3_key': None, u'runtime': 'python2.7',
37-
u'variables': {}, u'subscription': {}}
38+
u'variables': {}, u'subscription': {}, u'tracing': {}}
3839

3940

4041
class Config(object):
@@ -51,6 +52,8 @@ def __init__(self, pth, config_file=None, role=None, variables=None):
5152
self._validate_vpc()
5253
if self._config['subscription']:
5354
self._validate_subscription()
55+
if self._config['tracing']:
56+
self._validate_tracing()
5457

5558
for param, clss in REQUIRED_PARAMS.items():
5659
self._validate(param, cls=clss)
@@ -126,6 +129,16 @@ def _validate_vpc(self):
126129
" strings. '%s' contains something else"
127130
% param)
128131

132+
'''Validate the tracing configuration'''
133+
def _validate_tracing(self):
134+
if len(self._config['tracing']) > 1:
135+
raise TypeError("Tracing Config can only contain one item")
136+
if not self._config['tracing'].get('Mode'):
137+
raise TypeError("Tracing Config must contain the `Mode` key")
138+
if self._config['tracing']['Mode'] not in REQUIRED_TRACING_MODES:
139+
raise TypeError("Tracing Config Mode must be one of {}".format(
140+
', '.join(REQUIRED_TRACING_MODES)))
141+
129142
'''Validate the subscription configuration.
130143
All kinds of subscription will be validated here'''
131144
def _validate_subscription(self):

Diff for: lambda_uploader/uploader.py

+2
Original file line numberDiff line numberDiff line change
@@ -71,6 +71,7 @@ def upload_existing(self, pkg):
7171
MemorySize=self._config.memory,
7272
VpcConfig=self._vpc_config,
7373
Environment=environment,
74+
TracingConfig=self._config.tracing,
7475
)
7576
LOG.debug("AWS update_function_configuration response: %s"
7677
% response)
@@ -117,6 +118,7 @@ def upload_new(self, pkg):
117118
Publish=self._config.publish,
118119
VpcConfig=self._vpc_config,
119120
Environment=environment,
121+
TracingConfig=self._config.tracing,
120122
)
121123
LOG.debug("AWS create_function response: %s" % response)
122124

0 commit comments

Comments
 (0)