In diesem Artikel werde ich Ihnen Schritt für Schritt führen, um dynamische und interaktive visuelle Dokumentation mithilfe von Diagramm-As-Code-Tools zu erstellen. Anstelle von statischen Bildern werden wir programmgesteuert Diagramme erzeugen, um sicherzustellen, dass sie immer aktuell und leicht zu pflegen sind.
Diagramm als Code ist ein Ansatz, mit dem Sie Diagramme über Code anstelle von herkömmlichen grafischen Tools erstellen können. Anstatt die Diagramme manuell zu erstellen, können Sie Code in eine Textdatei schreiben, um die Struktur, Komponenten und Verbindungen Ihrer Diagramme zu definieren.
Dieser Code wird dann in grafische Bilder übersetzt, so
diagrams ist a ? Mit Diagrammen können Sie Cloud -Infrastrukturkomponenten (wie AWS, Azure und GCP), Netzwerkelemente, Softwaredienste und mehr mit nur wenigen Codezeilen definieren. ? Vorteile von Diagramm-As-Code
! PIP Installieren Sie Diagramme == '0.23.4'
!pip install diagrams=='0.23.4'? Diagramme: Knoten
Knotentypen
☁️
ermöglicht es Ihnen, verschiedene Knoten zu verwenden, um verschiedene Programmiersprachen darzustellen. Diese Knoten sind hilfreich, um in Ihren Diagrammen anzuzeigen, wenn ein Teil Ihrer Architektur Skripte oder Komponenten verwendet, die in einer bestimmten Programmiersprache entwickelt wurden. unten präsentieren wir alle verfügbaren Sprachen in der Bibliothek. Wenn eine Sprache fehlt, können Sie benutzerdefinierte Knoten hinzufügen, indem Sie das entsprechende Logo in einen bestimmten Ordner hochladen.
# Erstellen Sie das Diagrammobjekt
mit Diagrams.Diagram ("Programmiersprachen", Show = false, Dateiname = "Sprachen"):
# Erhalten Sie alle Sprachen in dieser Bibliothek
Sprachen = [Element für Element in DIR (Diagramme.programming.Language) Wenn Element [0]! = '_']
# Teilen Sie die Darstellung in zwei Zeilen auf
Mid_index = len (Sprachen) // 2
First_line = Sprachen [: Mid_index]
Second_line = Sprachen [Mid_index:]
# Fügen Sie Knoten in der ersten Zeile hinzu
PREV_NODE = NONE
Für Sprache in First_line:
current_node = eval (f "diagrams.programming.language. {Sprache} (Sprache)"))
Wenn PREV_NODE nicht ist:
PREV_NODE >> current_node
PREV_NODE = Current_Node
# Fügen Sie Knoten in der zweiten Zeile hinzu
PREV_NODE = NONE
Für Sprache in Second_line:
current_node = eval (f "diagrams.programming.language. {Sprache} (Sprache)"))
Wenn PREV_NODE nicht ist:
PREV_NODE >> current_node
PREV_NODE = Current_Node
Bild ("Sprachen.png")
# Create the diagram object with diagrams.Diagram("Programming Languages", show=False, filename="languages"): # Get all the languages available in this library languages = [item for item in dir(diagrams.programming.language) if item[0] != '_'] # Divide the representation in two lines mid_index = len(languages) // 2 first_line = languages[:mid_index] second_line = languages[mid_index:] # Add nodes in the first row prev_node = None for language in first_line: current_node = eval(f"diagrams.programming.language.{language}(language)") if prev_node is not None: prev_node >> current_node prev_node = current_node # Add nodes in the second row prev_node = None for language in second_line: current_node = eval(f"diagrams.programming.language.{language}(language)") if prev_node is not None: prev_node >> current_node prev_node = current_node Image("languages.png")
aus den Diagrammen -Importdiagramme
von ipython.display importieren
Diagramme importieren.aws.database als aws_database
Database_Components = []
Für Element in DIR (AWS_DATABASE):
Wenn Element [0]! = '_':
wenn nicht irgendwelche (comp.Startswith (item) oder item.startswith (comp) für comp in database_components):
Database_Components.Append (Artikel)
Mit Diagramm ("AWS -Datenbank" show = false, Dateiname = "AWS_DATABase"):
Mid_index = len (Database_Components) // 2
First_line = Database_Components [: Mid_index]
Second_line = Database_Components [Mid_index:]
PREV_NODE = NONE
für item_database in First_line:
current_node = eval (f "aws_database. {item_database} (item_database)"))
Wenn PREV_NODE nicht ist:
PREV_NODE >> current_node
PREV_NODE = Current_Node
PREV_NODE = NONE
für item_database in Second_line:
current_node = eval (f "aws_database. {item_database} (item_database)"))
Wenn PREV_NODE nicht ist:
PREV_NODE >> current_node
PREV_NODE = Current_Node
Image ("aws_database.png")
# Create the diagram object with diagrams.Diagram("Programming Languages", show=False, filename="languages"): # Get all the languages available in this library languages = [item for item in dir(diagrams.programming.language) if item[0] != '_'] # Divide the representation in two lines mid_index = len(languages) // 2 first_line = languages[:mid_index] second_line = languages[mid_index:] # Add nodes in the first row prev_node = None for language in first_line: current_node = eval(f"diagrams.programming.language.{language}(language)") if prev_node is not None: prev_node >> current_node prev_node = current_node # Add nodes in the second row prev_node = None for language in second_line: current_node = eval(f"diagrams.programming.language.{language}(language)") if prev_node is not None: prev_node >> current_node prev_node = current_node Image("languages.png")
. erstellen. .
from diagrams import Diagram, Cluster from diagrams.aws.storage import S3 from diagrams.aws.analytics import Glue, Athena import diagrams.aws.ml as ml from diagrams.aws.integration import StepFunctions from diagrams.aws.compute import Lambda from diagrams.aws.network import APIGateway from IPython.display import Image with Diagram("AWS Data Processing Pipeline", show=False): lambda_raw = Lambda('Get Raw Data') # Buckets de S3 with Cluster("Data Lake"): s3_rawData = S3("raw_data") s3_stage = S3("staging_data") s3_data_capture = S3("data_capture") athena = Athena("Athena") s3_rawData >> athena s3_stage >> athena s3_data_capture >> athena # Step Functions Pipeline with Cluster("Data Processing Pipeline"): step_functions = StepFunctions("Pipeline") # Glue Jobs in Step Functions with Cluster("Glue Jobs"): data_quality = Glue("job_data_quality") transform = Glue("job_data_transform") dataset_preparation = Glue("job_dataset_model") # Define Step Functions Flows step_functions >> data_quality >> transform >> dataset_preparation s3_rawData >> data_quality # SageMaker for model training and deployment with Cluster("SageMaker Model Deployment"): train_model = ml.SagemakerTrainingJob("job_train_model") eval_model = ml.SagemakerGroundTruth("job_evaluate_model") endpoint = ml.SagemakerModel("model_enpoint") # API Gateway and Lambda for the endpoint api_gateway = APIGateway("API_gateway") lambda_fn = Lambda("invoke_endpoint") # Connection lambda_raw >> s3_rawData s3_stage >> train_model >> eval_model >> endpoint endpoint >> lambda_fn >> api_gateway endpoint >> s3_data_capture dataset_preparation >> train_model Image("aws_data_processing_pipeline.png")
Diagramm als Code ist ein Ansatz, mit dem Sie Diagramme über Code anstelle von herkömmlichen grafischen Tools erstellen können. Anstatt die Diagramme manuell zu erstellen, können Sie Code in eine Textdatei schreiben, um die Struktur, Komponenten und Verbindungen Ihrer Diagramme zu definieren.
Was sind Diagramme?
ist a ? Mit Diagrammen können Sie Cloud -Infrastrukturkomponenten (wie AWS, Azure und GCP), Netzwerkelemente, Softwaredienste und mehr mit nur wenigen Codezeilen definieren. ? Vorteile von Diagramm-as-Code
? Referenzen
Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.
Copyright© 2022 湘ICP备2022001581号-3