GCP DrawIO Diagram Generator
Generates professional DrawIO XML diagrams for Google Cloud Platform architectures.
Capabilities
- Extract - Analyze existing DrawIO XML files to identify GCP shapes, connections, and structure
- Identify - Recognize GCP service icons from architecture diagram images
- Generate - Create valid DrawIO XML from images or text descriptions
- Convert - Transform GCP architecture diagrams into editable DrawIO format
Quick Reference
GCP Shape Pattern
shape=mxgraph.gcp2.{service_name}
Note: GCP uses snake_case for shape names (e.g., cloud_run, cloud_sql, cloud_storage).
Icon Pattern: Unlike AWS, GCP uses a single icon pattern for all services — there is no service vs instance icon distinction. The same shape=mxgraph.gcp2.{name} is used whether labeling the service itself ("Cloud Run") or a specific instance ("Cloud Run (API Handler)"). Differentiate by label text only.
Common GCP Services
| Service | Shape Code |
|---|---|
| Cloud Run | mxgraph.gcp2.cloud_run |
| BigQuery | mxgraph.gcp2.bigquery |
| Cloud Storage | mxgraph.gcp2.cloud_storage |
| Vertex AI | mxgraph.gcp2.cloud_machine_learning |
| Cloud Scheduler | mxgraph.gcp2.cloud_scheduler |
| Apigee | mxgraph.gcp2.apigee_api_platform |
| Pub/Sub | mxgraph.gcp2.cloud_pubsub |
| Cloud SQL | mxgraph.gcp2.cloud_sql |
| GKE | mxgraph.gcp2.compute_engine |
| Cloud Functions | mxgraph.gcp2.cloud_functions |
GCP Container Types
| Container | Use Case |
|---|---|
| gcp_project | Main project boundary (two-cell pattern) |
| gcp_vpc_sc | VPC Service Controls perimeter (green border) |
| gcp_region | Regional grouping |
| gcp_zone | Zone grouping |
| logical_group_dashed | Logical grouping with dashed border |
| logical_group_solid | Solid border grouping |
| subnet | Subnet boundary |
| firewall_rules | Firewall rules grouping |
| instance_group | Instance group container |
Task 1: Analyze a DrawIO File
Use this workflow to extract and document all components from an existing DrawIO file.
Steps
- Read the file - Load the
.drawioXML file - Parse structure - Extract all
<mxCell>elements - Identify shapes - Find cells with
vertex="1" - Identify connections - Find cells with
edge="1" - Extract styles - Parse style strings for each element
- Map hierarchy - Build container/child relationships using
parentattribute - Generate report - Output findings in structured format
Input
- Path to
.drawiofile
Output
Generate a Markdown report with:
# DrawIO Analysis Report
## Summary
- Total shapes: X
- Total connections: Y
- Containers: Z
## Shape Inventory
| ID | Label | Type | Position | Parent |
|----|-------|------|----------|--------|
| abc | Cloud Run | mxgraph.gcp2.cloud_run | (100,200) | vpc1 |
## Connection Matrix
| From | To | Label | Type |
|------|-----|-------|------|
| Cloud Run | BigQuery | API | solid |
## Container Hierarchy
- VPC-SC (vpc1)
- Cloud Run (run1)
- Cloud Run (run2)
- BigQuery (bq1)
## Style Analysis
### Unique Shapes Found
- mxgraph.gcp2.cloud_run (4 instances)
- mxgraph.gcp2.bigquery (2 instances)
Task 2: Convert Image to DrawIO
Use this workflow to recreate a GCP architecture diagram from an image.
Steps
-
Analyze image - Identify all visual elements:
- GCP service icons (shape, color, label)
- Containers/boundaries (color, border style)
- Connections (solid, dashed, arrows)
- Labels and text
-
Map to library - For each identified element:
- Look up in
assets/gcp-icons.jsonby visual signature or label - Match containers to
assets/containers.json - Note any unrecognized elements
- Look up in
-
Estimate layout - Determine positions:
- Identify container boundaries first
- Place icons within containers
- Estimate x,y coordinates and dimensions
- Standard icon size: 50x50 pixels
-
Generate XML - Build the DrawIO structure:
- Start with base template from
assets/templates/drawio-base.xml - Add containers first (they become parents)
- Add service icons with correct parent references
- Add connections between shapes
- Start with base template from
-
Create confidence report - Document accuracy:
- List all identified components
- Note any uncertain matches
- Flag potential issues
Input
- GCP architecture diagram image (PNG/JPG)
Output
- Valid
.drawioXML file - Confidence report (Markdown)
Confidence Report Format
# Conversion Confidence Report
## Overall Confidence: 85%
## Identified Components
### High Confidence (>90%)
- Cloud Run x4 - Clear icon match
- BigQuery x2 - Clear icon match
- VPC-SC container - Green border, correct label
### Medium Confidence (70-90%)
- Vertex AI Search - Icon similar, label confirms
### Low Confidence (<70%)
- Unknown icon at position (300, 400) - Mapped to generic service
## Connection Accuracy
- 12/14 connections clearly visible
- 2 connections inferred from layout
## Notes
- "Same Instance" dashed container identified
- Bidirectional arrows on 3 connections
Task 3: Create DrawIO from Description
Use this workflow to generate a new GCP diagram from text specifications.
Steps
-
Parse requirements - Extract from description:
- Required GCP services
- Container/grouping needs
- Connection requirements
- Layout preferences
-
Select components - From libraries:
- Look up services in
assets/gcp-icons.json - Choose containers from
assets/containers.json - Select connection styles
- Look up services in
-
Plan layout - Design the arrangement:
- Determine canvas size
- Position containers first
- Arrange services logically (left-to-right data flow, top-to-bottom hierarchy)
- Standard spacing: 100px between 50x50 icons
-
Generate XML - Build the diagram:
- Use
assets/templates/drawio-base.xmlas starting point - Add elements in order: containers, services, connections
- Assign unique IDs to all elements
- Use
-
Validate - Check the output:
- All requested components present
- Connections reference valid IDs
- Layout is logical and readable
Input
- Text description of desired GCP architecture
Output
- Valid
.drawioXML file
Example Input
Create a GCP architecture with:
- VPC-SC container
- Cloud Scheduler triggering Cloud Run
- Cloud Run connecting to BigQuery and Cloud Storage
- Vertex AI Search connected to BigQuery
Example Output Structure
<mxfile ...>
<diagram name="GCP Architecture">
<mxGraphModel ...>
<root>
<mxCell id="0" />
<mxCell id="1" parent="0" />
<!-- VPC-SC Container -->
<mxCell id="vpc" value="VPC-SC" style="..." vertex="1" parent="1">
<mxGeometry x="50" y="50" width="700" height="400" />
</mxCell>
<!-- Cloud Scheduler -->
<mxCell id="sched" value="Cloud Scheduler" style="...mxgraph.gcp2.cloud_scheduler" vertex="1" parent="vpc">
<mxGeometry x="50" y="100" width="50" height="50" />
</mxCell>
<!-- More shapes... -->
<!-- Connections -->
<mxCell id="conn1" edge="1" source="sched" target="run" style="..." />
</root>
</mxGraphModel>
</diagram>
</mxfile>
Shape Library Reference
Looking Up a GCP Service
- Open
assets/gcp-icons.json - Search by
service_nameorrecognition_keywords - Use the
drawio_shape.full_stylefor complete styling - Or construct style using
shape=mxgraph.gcp2.{shape_name}
Service Coverage:
- 46 GCP services across 11 categories
- 40 exact matches, 6 fallback icons
- Categories: compute, database, storage, networking, ai_ml, integration, operations, api_management, data_analytics, devops, security
Note: 6 services use fallback icons (Workflows, Eventarc, Artifact Registry, Cloud Deploy, Secret Mana