今日は、Pythonのdiagramモジュールに取り組みます。
もしあなたが大規模なプロジェクトに携わり、プレゼンテーションをする必要があるなら、同じことを示すためにダイアグラムを描いたことがあるかもしれません。
技術的に言えば、ダイアグラムは単に線をつなぎ合わせて異なる形状を形成したものです。
しかし、図を正確に整列させるのは大変な作業で、ボックスとラベルを一列に並べるのも大変な作業です。
また、ボックスとラベルを一列に並べるのも大変です。
そのため、貴重な時間を1つの図の作成に費やしてしまい、せっかく作成した図が役に立たなくなることもあります。
幸運なことに、厄介なAWSやGCPの接続を表示するためのダイアグラムやフローチャートを作成する、より良い方法があります。
それは diagrams
モジュールです。
diagramsモジュールを使えば、数行のコードでダイアグラムを作成することができ、コンポーネントを互いに接続するだけです。
画像内の位置を指定する必要はありませんし、矢印の経路も必要ありません。
これは非常に効率的なツールで、私たちも同様に効率的でありたいと思います。
Pythonでdiagramモジュールをインストールする
diagrams` モジュールを使用するためには、まず、ダイアグラムの画像を提供する GraphViz をインストールする必要があります。
それと同時に、diagramsモジュールをインストールする必要がありますので、pipコマンドを使用してインストールします。
pip install diagrams
|
diagrams モジュールを使う
さて、これですべての設定が終わったので、コンソールから diagrams モジュールを操作できるようになりました!
1. 初期化
diagrams` モジュールを扱うには、まず Python スクリプトにインポートする必要がある。
これは次のコマンドで行うことができる。
from diagrams import Diagram
|
また、diagrams.aws
パッケージからいくつかのクラスをインポートする必要があります。
これにより、スクリプト内でAWSシステムの異なるコンポーネントを操作することができます。
from diagrams.aws.compute import EC2
from diagrams.aws.database import RDS
from diagrams.aws.network import ELB
|
もちろん、これはAWSコンポーネントを実行するという意味ではなく、これらのコンポーネントを使用して可視化できるという意味です。
2. コンポーネントの操作
ダイアグラムモジュールが動作する方法は簡単です。
ファイルを開いて、テキストを追加したり、画像を追加したり、あるいは単に矢印を描いたりといった操作を行います。
with`コマンドでファイルを開き、ファイル名を指定します。
このファイル名は画像の名前としても使用されます。
show=False`コマンドは、スクリプトを実行したときに画像が目に飛び込んでこないようにするために使用します。
with Diagram( "Hello World" , show = False ):
|
続けて、diagrams
モジュールからインポートしたクラスを使い、ラベルを付けています。
ELB( "lb" ), EC2( "web" ), RDS( "userdb" )
|
そして、これらの異なるコンポーネントを、図中の矢印マークである >>
を使って接続します。
そうすると、最終的に以下のような結果が得られるはずです。
with Diagram( "Web Service" , show = False ):
ELB( "lb" ) >> EC2( "web" ) >> RDS( "userdb" )
|
このスクリプトを実行すると、次のような .png
形式のファイルが出力されます。
with Diagram( "Grouped Workers" , show = False , direction = "TB" ):
ELB( "lb" ) >> [EC2( "worker1" ),
EC2( "worker2" ),
EC2( "worker3" ),
EC2( "worker4" ),
EC2( "worker5" )] >> RDS( "events" )
|
このコンポーネントを使った別の例としては、たくさんのコンポーネントを一つのコンポーネントに接続することがあります。
これは、単にこれらのコンポーネントを1つのリストにグループ化することで実現できます。
グループ化した場合、すべてのコンポーネントは同じ入力からリソースを受け取るものと考えます。
そのため、個々に矢印を描いています。
このスクリプトを実行すると、次のような画像が表示されるはずです。
これらの図は、スクリプトを実行したのと同じディレクトリに .png
フォーマットで保存されます。
3. 前へ進む
diagrams`モジュールは素晴らしいドキュメントを持っており、様々なサービスを介して、Diagrams、Nodes、Clusters、Edgesに関するガイドも提供しています。
これらは非常によく文書化されており、かなりよく説明されています。
しかし、他のモジュールと同様に、このモジュールもオープンソースになっています。
まとめ
図に線を合わせ、ピクセル単位で必要以上の時間をかけて修正することを強いられた日々はもうありません。
今は、diagrams
モジュールを使って自動化することができ、もう悩むことはありません。
Pythonを使った自動化には、以下のような記事があります。