[PYTHON] Volume de création et de publication de django-malice, une application django pour provoquer des erreurs HTTP 40X

Dans l'environnement de développement (DEBUG = True), django affiche un écran d'erreur avec une trace de pile familière et utile lorsqu'une erreur se produit sur la vue.

Cependant, dans le cas d'un environnement de production, un e-mail indiquant une erreur est envoyé à l'adresse e-mail définie dans ADMINS.

De plus, si vous utilisez slack_log_handler, le contenu de l'erreur sera envoyé sur slack.

J'ai créé django-malice car si quelque chose fonctionne après une erreur, je dois le vérifier correctement.

À propos de django-malice

--Fournit une vue pour déclencher intentionnellement l'erreur suivante

Il fournit également une page qui renvoie HTTP 200 OK pour vérifier le système normal (HeartBeat, etc.).

django-malice (GitHub Repository)

motivation

―― Il est difficile de préparer une vue pour provoquer une erreur intentionnellement pour vérifier les éléments suivants. Puis fabriquez et distribuez. --Je veux vérifier si le rapport d'erreur est envoyé correctement --Je veux vérifier si l'opération déclenchée par la journalisation ou l'erreur est correctement conduite.

Comment installer django-malice

  1. Installez ce qui suit avec pip
$ pip install django-malice
  1. Ajoutez ce qui suit à INSTALLED_APPS
INSTALLED_APPS = [
    ...
    "malice",
]
  1. Ajoutez ce qui suit à urls.py spécifié dans ROOT_URL_CONF du projet
url(r'^malice/', include('malice.urls', namespace='malice')),

Remarque: Dans un environnement de production, il est plus sûr de changer l'URL en une chaîne que l'attaquant ne peut pas prédire.

Exemple:

view_urlpatterns = [
    ...
    url(r'^all-your-error-are-belong-to-us-2101/', include('malice.urls', namespace='malice')),
    ...
]
  1. Exécutez le serveur et ouvrez l'URL suivante dans votre navigateur
$ ./manage.py runserver 0.0.0.0:8000

Assurez-vous que les URL autres que 200 renvoient une erreur.

Si DEBUG a la valeur True, aucun courrier ne sera envoyé à ADMINS, définissez donc l'indicateur DEBUG sur False et assurez-vous qu'un rapport d'erreur est envoyé.

Concernant le développement

Cette application a construit des tests dans circleci, emballés et distribués dans Pypi tout au long de la rencontre de django.

Merci à BeProud https://twitter.com/hirokiky et https://twitter.com/shimizukawa pour avoir accueilli l'événement ici!

Si vous avez le temps, pourquoi ne pas rejoindre django Meetup!

Recommended Posts

Volume de création et de publication de django-malice, une application django pour provoquer des erreurs HTTP 40X
Explication de la création d'une application pour afficher des images et dessiner avec Python
Commandes pour créer un nouveau projet django
[Développement personnel] Une histoire sur la création d'une application pour les artistes avec SPA avec Django REST Framework et Vue-Cli [DRF + Vue.js]
Essayez de créer une application Web avec Vue.js et Django (édition Mac) - (1) Construction d'environnement, création d'application
Une collection de ressources qui peuvent être utiles pour créer et développer des fichiers dotfiles
Procédure de création d'une application avec Django avec Pycharm ~ Préparation ~
L'histoire de la création d'un «espace de discussion sur l'esprit et le temps» exclusivement pour les ingénieurs de l'entreprise