AWS utils for lambda
Project description
AWS utils for lambda
- Wrapper for Boto3
- Handles Exceptions gracefully and returns structured response
- Can be used in lambda layers along with boto3 package
Install
pip install -U aws-utils-for-lambda
Request
import aws_utils
aws_utils.s3.get_object('bucket_name', 'test_data.json', output_format='dict')
Response (dict)
{
'data': 'data',
'success': True,
'output_format': 'dict',
'error': "ClientError",
'error_message': 'error_message',
'full_response': 'full_response',
'short_traceback': 'short_traceback',
'full_traceback': 'full_traceback'
}
How it works
Edit diagram link
Currently supported
- S3
- upload_file
- get_object
- DynamoDB
- get_item
- put_item
Example 1
Get S3 object - request:
import aws_utils
response = aws_utils.s3.get_object('bucket_name', 'test_data.json', output_format='dict')
print(response)
Get S3 object - response:
{
'data': '{\n "name": "name",\n "age": "24",\n "country": "India"\n}',
'success': True,
'output_format': 'dict',
'error': None,
'error_message': None,
'full_response': {
'ResponseMetadata': {
'RequestId': 'xxxxxxxxxxxx',
'HostId': 'xxxxxxxxxxxx',
'HTTPStatusCode': 200,
'HTTPHeaders': {
'x-amz-id-2': 'xxxxxxxxxxxx',
'x-amz-request-id': 'xxxxxxxxxxxx',
'date': 'Sun, 26 May 2019 10:04:23 GMT',
'last-modified': 'Sun, 26 May 2019 10:04:18 GMT',
'etag': '"xxxxxxxxxxxx"',
'accept-ranges': 'bytes',
'content-type': 'application/json',
'content-length': '65',
'server': 'AmazonS3'
},
'RetryAttempts': 0
},
'AcceptRanges': 'bytes',
'LastModified': datetime.datetime(2019, 5, 26, 10, 4, 18, tzinfo=tzutc()),
'ContentLength': 65,
'ETag': '"xxxxxxxxxxxx"',
'ContentType': 'application/json',
'Metadata': {},
'Body': "<botocore.response.StreamingBodyat0x10591111>"
},
'short_traceback': None,
'full_traceback': None
}
Example 2
Get S3 object - request:
import aws_utils
response = aws_utils.s3.get_object('bucket_name', 'test_data.json', output_format='dict')
print(response)
Get S3 object - response:
{
'data': None,
'success': False,
'output_format': 'dict',
'error': 'NoSuchKey',
'error_message': 'An error occurred (NoSuchKey) when calling the GetObject operation: The specified key does not exist.',
'full_response': None,
'short_traceback': [' File "/Users/nelsonsequiera/.pyenv/versions/3.7.2/envs/aws_utils_test/lib/python3.7/site-packages/aws_utils/s3.py" line 26, in get_object\n full_response = s3.meta.client.get_object(Bucket=bucket, Key=file_path)\n',
' File "/Users/nelsonsequiera/.pyenv/versions/3.7.2/envs/aws_utils_test/lib/python3.7/site-packages/botocore/client.py", line 357, in _api_call\n return self._make_api_call(operation_name, kwargs)\n',
' File "/Users/nelsonsequiera/.pyenv/versions/3.7.2/envs/aws_utils_test/lib/python3.7/site-packages/botocore/client.py", line 661, in _make_api_call\n raise error_class(parsed_response, operation_name)\n'],
'full_traceback': ['Traceback (most recent call last):\n',
' File "/Users/nelsonsequiera/.pyenv/versions/3.7.2/envs/aws_utils_test/lib/python3.7/site-packages/aws_utils/s3.py", line 26, in get_object\n full_response = s3.meta.client.get_object(Bucket=bucket, Key=file_path)\n',
' File "/Users/nelsonsequiera/.pyenv/versions/3.7.2/envs/aws_utils_test/lib/python3.7/site-packages/botocore/client.py", line 357, in _api_call\n return self._make_api_call(operation_name, kwargs)\n',
' File "/Users/nelsonsequiera/.pyenv/versions/3.7.2/envs/aws_utils_test/lib/python3.7/site-packages/botocore/client.py", line 661, in _make_api_call\n raise error_class(parsed_response, operation_name)\n',
'botocore.errorfactory.NoSuchKey: An error occurred (NoSuchKey) when calling the GetObject operation: The specified key does not exist.\n']
}
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distributions
No source distribution files available for this release.See tutorial on generating distribution archives.
Built Distribution
File details
Details for the file aws_utils_for_lambda-1.0.3-py3-none-any.whl
.
File metadata
- Download URL: aws_utils_for_lambda-1.0.3-py3-none-any.whl
- Upload date:
- Size: 8.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/1.13.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.0.1 requests-toolbelt/0.9.1 tqdm/4.32.1 CPython/3.7.2
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 9834b773b8324e3807962ec865d07442b7e496acfe1c2dc239be009e6fff522f |
|
MD5 | a269943295f6593ed9d3dc6d0ebd6fe4 |
|
BLAKE2b-256 | fecae3045f82a4c78e3d18dd8cabd8ce18787b97dce8e1de58f32da15126f383 |