Changelog¶
This is a record of all releases of wellcome_aws_utils.
2.2.0 - 2018-11-08¶
This release adds utils for the reporting pipeline.
The functions under reporting_utils.py
describe a basic ETL pipeline from VHS to Elasticsearch, without a transformation specified. In this way, the shape of the pipeline remains independent of both the data within it and the transforms being applied.
As further data sources are added to the reporting pipeline and more Lambda functions are created, we keep repeated code to a minimum. In a new Lambda function, the user should specify a set of data-source-specific transformations in a transform.py
file. The Lambda’s main
can then remain minimal and generic:
2.1.3 - 2018-08-17¶
This fixes a bug in the @log_on_error
decorator where the return value
of the original function would be replaced by None
. This decorator now
preserves the original return value.
2.1.2 - 2018-06-26¶
Previously sending a message with sns_utils.publish_sns_message
would
print a message upon success.
Now this message is only logged at debug level.
2.1.1 - 2018-06-04¶
Now @log_on_error
can be used to decorate functions with arbitrary arguments/keyword arguments.
2.1.0 - 2018-06-04¶
This adds a new method: lambda_utils.log_on_error
. This can be used to
decorate the main function for a Lambda, and logs the event/context if the
Lambda throws an unexpected exception.
For example, running the following snippet:
@log_on_error
def handler(event, context=None):
if event == {1: '1', 2: '2'}:
raise ValueError
handler(event={'foo': 'bar'})
handler(event='99 green bottles' * 99)
handler(event={1: '1', 2: '2'})
gives the following output:
This makes it easier to debug failed Lambdas, but without the expense of logging every event that a Lambda receives.
2.0.2 - 2018-06-04¶
Previously sending a message with sns_utils.publish_sns_message
would
log the entire SNS response.
Now the response is only logged if the SNS message is unsuccessful.
2.0.1 - 2018-01-12¶
This fixes a bug in s3_utils.parse_s3_record
. If the key of a changed
file included a character which is usually quoted in URLs (e.g. +
),
a parsed record from the S3 event stream would use the URL-quoted form
of the object key.
For example, a change to s3://example/foo+bar
would become foo%2Bbar
.
This version unquotes the key when parsing the event.
2.0.0 - 2017-11-29¶
Replacing the DynamoImageFactory and DynamoImage classes with DynamoEventFactory and DynamoEvent
- Perform quite a bit of sanity checking on event object received
- DynamoEvent can: - return old and new images (if available) - return modified keys only - return deserialized or otherwise images and keys based on params
1.1.0 - 2017-11-15¶
Deprecates sns_utils.extract_json_message
in favour of sns_utils.extract_sns_messages_from_lambda_event
.
extract_sns_messages_from_lambda_event provides: - better error reporting if the event is malformed - loops over all available records from event not just the first - returns subject along with the json decoded message
This release also adds UnWellcomeException
which will be used as the base exception for new errors.
1.0.0 - 2017-11-07¶
First production release!