C'est un logiciel qui peut dessiner un diagramme d'architecture avec python.
https://diagrams.mingrammer.com
Il y a quelques jours, je voulais faire quelque chose comme ce qui suit à propos de mes yeux, qui était la motivation que j'ai faite.
<img src='http://localhost:8080/?
with Diagram("Grouped Workers", show=False, direction="TB"):
ELB("lb") >> [EC2("worker1"),
EC2("worker2"),
EC2("worker3"),
EC2("worker4"),
EC2("worker5")] >> RDS("events")
J'ai lutté pendant environ 10 heures et l'ai créé. Le code source complet est le référentiel suivant.
https://github.com/tamuto/diagrams-server
Tout d'abord, la question est de savoir comment compiler le code source Python passé dans l'URL? est. Vous pouvez l'obtenir à partir de query_string, mais vous devez le formater puis le compiler. J'ai utilisé yapf comme bibliothèque.
J'avais l'intention de les faire décrire, y compris la déclaration d'importation, telle qu'elle est publiée dans des exemples.
Cependant, il était attaché à query_string comme
... import EC2from ... ''
, et même s'il était formaté, il ne pouvait pas être séparé (évidemment).
Ici, nous avons pu implémenter le comportement attendu. Réécrivez à l'aide de NodeTransformer, compilez et exécutez avec exec. J'ai eu une erreur disant qu'il n'y avait pas de lineno sur le chemin, mais je l'ai résolu en toute sécurité avec ```ast.fix_missing_location` ``. (Je pense que je l'ai fait ...)
Si vous sortez avec svg, une demande d'icône sera générée séparément. Je l'ai traité de force avec la route de Flask. (Parce qu'il fonctionne dans docker, il devrait être autorisé!?)
J'ai fait de mon mieux pour y arriver, mais je pense qu'il y a plusieurs problèmes.
Normalement, cela devrait être écrit comme un problème ...
Pour une raison quelconque, je me suis précipité pour le sortir avec un sentiment de contre-la-montre. Après cela, je voudrais m'asseoir et répondre.
Recommended Posts