This is a simple python decorate for the aws serverless (lambda) functions to make it easy to add email notification (or other SNS handling) for errors and exceptions.
|
hace 5 años | |
---|---|---|
.gitignore | hace 6 años | |
LICENSE | hace 6 años | |
README.md | hace 6 años | |
example.py | hace 6 años | |
sns_error_notification.py | hace 5 años |
The latest version of this code can be found at https://github.com/fdamstra/sns_error_notification
This is a simple python decorate for the aws serverless (lambda) functions to make it easy to add email notification (or other SNS handling) for errors and exceptions.
You can use CloudWatch to alert on errors, but then you just know that something went wrong, not what went wrong.
I'm sure there are other ways to do this, but I didn't have luck finding them and getting the information I needed, so here's what I came up with.
This could generate a LOT of email. I am not responsible for your email administrator's wrath. You could always set up a different subscriber to the SNS topic instead of directly emailing.
This won't report syntax errors when loading the code. Make it a best practice
to run python3 -m py_compile lambda_function.py
before deploying to python.
For that matter, add some unit or doc tests.
It also won't catch errors with deployment of the lambda environment, which does happen from time to time.
It will also report errors even if a retry of the script succeeds. See AWS Lambda Retry Behavior for information on when it may automatically be retried.
Lastly, it won't catch issues with the SNS queue itself. If that isn't set up right, you won't get emails.
Please share it. Create an issue on this git repo, email me, whatever. I'm very interested in better ways. I want to see:
Additionally, it needs to handle rates of thousands of executions per second.
sns:Publish
permission.sns_error_topic
to your SNS topic's arn.sns_notifications_enabled
and set
to either the string true
or false
to quickly enable or disable email
notifications without code changes.from sns_error_notification import sns_error_notification
to your handler.@sns_error_notification
directly before your handler function.See the example.py for an example.