Validator for AWS SNS messages.
Project description
AWS SNS Message Validator
PyPI: https://pypi.org/project/aws-sns-message-validator/
Motivation
An HTTP endpoint for AWS SNS needs to validate the received messages before processing them which involves some non-trivial logic, especially signature verification. In terms of implementation, AWS does not offer any help with SNS message validation in their SDK for Python (issue) nor does it provide example code in the documentation (example code is only available in Java). Therefore Python developers would need to invent their own wheels.
To solve this problem, this repository offers an SNS message validator which is implemented according to the guide on the official AWS documentation, and offers example code of how to use it to implement an HTTP endpoint for SNS.
Prerequisite
- Python >= 3.6
Install
pip install aws-sns-message-validator
Usage
Refer to the example code flask_example.py
to see how to use this package in your SNS http endpoint. In order to quickly try out the example code, follow the steps below:
- Make sure you have Python>=3.6 installed. (Create a virtual environment if you want to.)
- Checkout this repo and install dev dependencies by
python3 -m pip install -r requirements.txt
- Run
FLASK_APP=flask_example.py flask run --port=5000
to start an http server. - Use
ngrok
to expose the local server to the public internet (./ngrok http -bind-tls=true localhost:5000
). Now you should get a public endpoint (https://xxxxxxxx.ngrok.io
) that can be set as a subscriber of an SNS topic.
Issues
Feel free to create an issue if you found a bug or have a feature request.
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 Distribution
Built Distribution
File details
Details for the file aws-sns-message-validator-0.0.5.tar.gz
.
File metadata
- Download URL: aws-sns-message-validator-0.0.5.tar.gz
- Upload date:
- Size: 3.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.5.0 importlib_metadata/4.8.1 pkginfo/1.7.1 requests/2.21.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.7.2
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 55e56e59b8dd9f08400c49c21815fdbb4435f90d289eb6c0c755f6cdbefb5c1d |
|
MD5 | ed15ad7b0109720ff1e3a0ea0e8802f9 |
|
BLAKE2b-256 | 337174ae1eec5ed7c272a4a88c9c4aad712c181eabb29927a1dc407d109e46eb |
File details
Details for the file aws_sns_message_validator-0.0.5-py3-none-any.whl
.
File metadata
- Download URL: aws_sns_message_validator-0.0.5-py3-none-any.whl
- Upload date:
- Size: 5.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.5.0 importlib_metadata/4.8.1 pkginfo/1.7.1 requests/2.21.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.7.2
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | baf0c0344314b4a844ec93f32ffcfe3325f30ceea22560f55f30e7ef790a01b9 |
|
MD5 | b4dba2734ccd1ab5c94d5f813a94d54f |
|
BLAKE2b-256 | ef5759b18169ecca717b6b8cfdf153676d1c9d56791f6d42eed500836a43d771 |