
diagrams AWS 节点类参考手册AWS Provider 节点库、别名与代码生成原理【免费下载链接】diagrams:art: Diagram as Code for prototyping cloud system architectures项目地址: https://gitcode.com/GitHub_Trending/di/diagramsdiagramsDiagram as Code项目中diagrams.aws包是以代码方式绘制 AWS 云架构图的节点Node来源。本文基于仓库文档 AWS 节点列表结合 diagrams/aws/init.py、autogen.sh 与 scripts/generate.py 的生成逻辑完整介绍 AWS provider 下全部 24 个资源类别模块、可用节点类与别名并解释这些类是如何由图标资源自动生成的。读完后你可以直接在图定义脚本中按模块导入任意 AWS 服务节点并理解“图标文件 → 类名”的映射规则。文档定位一份按模块组织的节点类清单docs/nodes/aws.md 开头即说明其用途“Node classes list of the aws provider.”。文档按模块即diagrams/aws下的子模块文件分节每一节列出该模块提供的所有节点类全限定名如diagrams.aws.analytics.Redshift并标注可简写的别名alias例如diagrams.aws.analytics.ElasticsearchService, ES (alias)、diagrams.aws.database.Dynamodb, DDB (alias)。每个条目旁的图标即该类在渲染图中使用的官方 AWS 图标。要理解这份清单如何使用先回顾项目的节点模型。按照 Nodes 指南节点对象由三部分组成provider提供方、resource type资源类别、name实例名from diagrams import Diagram from diagrams.aws.compute import EC2 with Diagram(Simple Diagram): EC2(web)其中EC2是 provider 为aws、资源类别为compute的节点类。docs/nodes/aws.md就是所有awsprovider 节点的权威索引与仓库中diagrams/aws/目录下的 Python 模块一一对应。源码结构_AWS 基类与资源类别映射所有 AWS 节点类共享一个 provider 级基类定义在 diagrams/aws/init.pyclass _AWS(Node): _provider aws _icon_dir resources/aws fontcolor #ffffff_provider aws标识 provider用于定位图标资源根目录_icon_dir resources/aws图标资源目录resources目录由 autogen.sh 在预处理阶段生成并同步到website/static/img/fontcolor节点内文字颜色统一为白色。每个资源类别模块再定义一个类别基类声明_type与更具体的_icon_dir各服务类只声明自己的_icon文件名。以 diagrams/aws/compute.py 为例class _Compute(_AWS): _type compute _icon_dir resources/aws/compute class EC2(_Compute): _icon ec2.png于是EC2(web)渲染时使用resources/aws/compute/ec2.png图标文字标签为web。database、network等模块结构完全一致如 diagrams/aws/database.py、diagrams/aws/network.py。模块、类别与模块文件对照表docs/nodes/aws.md共覆盖以下 24 个模块“模块”一列即diagrams.aws.模块的导入路径与源码文件模块类别含义源码文件analytics数据分析与 BIOpenSearch、Athena、EMR、Glue、Kinesis、Redshift、Quicksight 等analytics.pyar增强现实Sumerian、AR/VRar.pyblockchain区块链Managed Blockchain、QLDBblockchain.pybusiness企业应用Alexa for Business、Chime、WorkMailbusiness.pycompute计算EC2、ECS、EKS、Fargate、Lambda、Lightsail、EB 等compute.pycost成本优化Budgets、Cost Explorer、Savings Planscost.pydatabase数据库Aurora、DynamoDB、ElastiCache、Neptune、RDS、Redshift、Timestreamdatabase.pydevtools开发工具Cloud9、CodeBuild、CodeCommit、CodeDeploy、CodePipeline、X-Ray、CLIdevtools.pyenablement客户赋能与支持服务enablement.pyenduser终端用户AppStream、WorkDocs、WorkLink、WorkSpacesenduser.pyengagement客户交互Connect、Pinpoint、SESengagement.pygame游戏技术GameLiftgame.pygeneral通用图形Client、User、MobileClient、InternetGateway、TraditionalServer 等general.pyintegration集成AppSync、EventBridge、SNS、SQS、Step Functions、MQintegration.pyiot物联网IoT Core、IoT Analytics、Greengrass、设备与协议图标等条目最多的模块iot.pymanagement管理与治理CloudFormation、CloudWatch、CloudTrail、OpsWorks、SSM、Organizations、Trusted Advisor 等management.pymedia媒体服务Elastic Transcoder、Elemental 系列、MediaConnect/MediaConvert/MediaLive 等media.pymigration迁移与传输Application Discovery、Database Migration Service、DataSync、Snowball/Snowmobilemigration.pyml机器学习SageMaker、Comprehend、Kendra、Lex、Polly、Rekognition、Textract、Transcribe、Translateml.pymobile移动Amplify、API Gateway、Device Farm、Pinpointmobile.pynetwork网络API Gateway、CloudFront、Direct Connect、ELB/ALB/NLB、Route 53、Transit Gateway、VPC 系列network.pyquantum量子计算Braketquantum.pyrobotics机器人RoboMaker 系列robotics.pysatellite卫星Ground Stationsatellite.pysecurity安全ACM、Cognito、GuardDuty、IAM 系列、KMS、Secrets Manager、Security Hub、WAF 等security.pystorage存储Backup、EBS、EFS、FSx、S3 系列、Storage Gateway、Snow 系列storage.py注意diagrams/aws/目录下存在而文档章节同样覆盖的模块数量一致24 个说明文档与源码由同一套生成流程产出见下文“自动生成的文档与模块”。高频模块精选节点以下按docs/nodes/aws.md的原始分组摘录几个最常用模块的节点类与别名别名以源码“# Aliases”小节为准。aws.compute计算节点类别名典型场景diagrams.aws.compute.EC2/EC2Instance/EC2InstancesEC2Ami→AMI虚拟机实例与镜像diagrams.aws.compute.ElasticKubernetesServiceEKS托管 Kubernetes 集群diagrams.aws.compute.ElasticContainerServiceECS托管容器集群diagrams.aws.compute.ElasticBeanstalkEBPaaS 部署diagrams.aws.compute.Fargate—无服务器容器diagrams.aws.compute.Lambda/LambdaFunction—函数计算diagrams.aws.compute.ApplicationAutoScalingAutoScaling自动扩缩容diagrams.aws.compute.Batch、Lightsail、LocalZones、Outposts、Wavelength—批处理与边缘计算aws.database数据库与缓存节点类别名典型场景diagrams.aws.database.Aurora/AuroraInstance—MySQL/PostgreSQL 兼容数据库diagrams.aws.database.Dynamodb及DynamodbTable、DynamodbItem(s)、DynamodbAttribute(s)、DynamodbDax、DynamodbGlobalSecondaryIndex、DynamodbStreamsDDB、DAX、DynamodbGSINoSQL 数据模型图示diagrams.aws.database.Elasticache、ElasticacheForRedis、ElasticacheForMemcached、ElasticacheCacheNodeElastiCache缓存diagrams.aws.database.RDS及各引擎实例RDSMysqlInstance、RDSPostgresqlInstance、RDSMariadbInstance、RDSOracleInstance、RDSSqlServerInstance—关系型数据库diagrams.aws.database.DocumentdbMongodbCompatibilityDocumentDBMongoDB 兼容数据库diagrams.aws.database.Neptune、Timestream、Redshift、KeyspacesManagedApacheCassandraService、QuantumLedgerDatabaseQldbQLDB、DatabaseMigrationServiceDMS—图数据库、时序、数仓等aws.network网络与内容分发节点类别名典型场景diagrams.aws.network.ElasticLoadBalancingELB负载均衡diagrams.aws.network.ElbApplicationLoadBalancer/ElbClassicLoadBalancer/ElbNetworkLoadBalancerALB/CLB/NLB三类负载均衡器diagrams.aws.network.CloudFront及三种分发类型CFCDN 加速diagrams.aws.network.APIGateway/APIGatewayEndpoint—API 网关diagrams.aws.network.VPC、PublicSubnet、PrivateSubnet、VPCCustomerGateway、VPCElasticNetworkInterface、VPCFlowLogs、VPCPeering、VPCTrafficMirroring、VPCRouter—VPC 网络拓扑diagrams.aws.network.NATGateway、InternetGatewayIGW、VpnGateway、VpnConnection、SiteToSiteVpn、ClientVpn、DirectConnect、TransitGatewayTGW、TransitGatewayAttachmentTGWAttach、GlobalAcceleratorGAX、Route53、Route53HostedZone、Nacl、RouteTable、Privatelink、CloudMap、AppMesh、NetworkFirewall、Endpoint—接入、路由与跨域互联aws.storage存储节点类别名典型场景diagrams.aws.storage.SimpleStorageServiceS3、SimpleStorageServiceS3Bucket、SimpleStorageServiceS3BucketWithObjects、SimpleStorageServiceS3Object、S3AccessPoints、S3ObjectLambdaAccessPoints、S3Glacier系列S3对象存储与归档diagrams.aws.storage.ElasticBlockStoreEBS及卷/快照EBS块存储diagrams.aws.storage.ElasticFileSystemEFS及文件系统/存储类EFS文件存储diagrams.aws.storage.Fsx、FsxForLustre、FsxForWindowsFileServerFSx高性能文件存储diagrams.aws.storage.Backup、CloudendureDisasterRecoveryCDR、Snowball、SnowballEdge、Snowmobile、SnowFamilySnowballImportExport—备份与离线迁移diagrams.aws.storage.StorageGateway及缓存卷/非缓存卷/虚拟磁带库—混合云存储网关其他常用模块速览analyticsAmazonOpensearchService、Athena、Cloudsearch、DataPipeline、ElasticsearchServiceES、EMR及 HDFS/集群/引擎图标、Glue系列、Kinesis系列Data Streams/Firehose/Data Analytics/Video Streams、LakeFormation、ManagedStreamingForKafka、Quicksight、Redshift及计算/存储节点devtoolsCloudDevelopmentKit、Cloud9、Codeartifact、Codebuild、Codecommit、Codedeploy、Codepipeline、Codestar、CommandLineInterfaceCLI、ToolsAndSdks、XRayintegrationAppsync、Eventbridge及三种事件总线资源、MQ、SimpleNotificationServiceSns系列SNS、SimpleQueueServiceSqs系列SQS、StepFunctionsSFmanagementCloudformation系列、Cloudtrail、Cloudwatch系列Alarm/Logs/Rule/事件型/定时型、Config、Opsworks系列、SystemsManager系列SSM、ParameterStore、Organizations系列、TrustedAdvisor系列、AmazonManagedGrafana、AmazonManagedPrometheus、AmazonManagedWorkflowsApacheAirflow、ControlTower、Proton、WellArchitectedTool等securityCertificateManagerACM、Cognito、CloudhsmCloudHSM、DirectoryServiceDS、Guardduty、IdentityAndAccessManagementIam系列IAM、IAMRole、IAMPermissions、IAMAccessAnalyzer、IAMAWSSts、MFA/凭证/加密数据等、KeyManagementServiceKMS、SecretsManager、SecurityHub系列、Inspector、Macie、Shield/ShieldAdvanced、WAF/WAFFilteringRule、FirewallManagerFMS、ResourceAccessManagerRAMmlSagemaker系列Notebook/Model/Training Job/Ground Truth、Comprehend、Kendra、Lex、Polly、RekognitionImage/Video、Textract、Transcribe、Translate、Forecast、Personalize、FraudDetector、DeepLens、DeepRacer、DeepComposer、DeepLearningContainersDLC、ElasticInference、AugmentedAi等iot条目最多的模块IotCore、IotAnalytics系列、IotGreengrass、IotShadow、IotJobs、IotRule、IotMqtt、IotHttp/IotHttp2、IotLambda、FreertosFreeRTOS、IotThingsGraph、IotSitewise及大量设备类图标摄像头、传感器、门锁、风场等migrationApplicationDiscoveryServiceADS、CloudendureMigrationCEM、DatabaseMigrationServiceDMS、Datasync/DatasyncAgent、MigrationAndTransferMAT、MigrationHub、ServerMigrationServiceSMS、Snowball/SnowballEdge/Snowmobile、TransferForSftpmediaElasticTranscoder、ElementalConductor/Delta/Live/Mediaconnect/Mediaconvert/Medialive/Mediapackage/Mediastore/Mediatailor/Server、KinesisVideoStreams、MediaServicesmobileAmplify、APIGateway/APIGatewayEndpoint、Appsync、DeviceFarm、Mobile、Pinpointbusiness / enduser / engagement / general / game / quantum / robotics / satellite / ar / blockchain / enablement / cost分别提供企业应用Chime、Workmail、AlexaForBusiness→A4B、终端服务Workspaces、Workdocs、Worklink、Appstream20、DesktopAndAppStreaming、客户交互Connect、Pinpoint、SimpleEmailServiceSes→SES、通用图示Client、User(s)、MobileClient、InternetAlt1/2、InternetGateway、SamlToken、SslPadlock、TraditionalServer、OfficeBuilding、游戏Gamelift、GameTech、量子Braket、QuantumTechnologies、机器人Robomaker系列、卫星GroundStation、ARSumerian、ArVr、区块链ManagedBlockchain、QuantumLedgerDatabaseQldb→QLDB、支持服务Support、ProfessionalServices与成本Budgets、CostExplorer、SavingsPlans、CostAndUsageReport、ReservedInstanceReporting图标节点。上述类名与别名与 docs/nodes/aws.md 各分节条目及源码“# Aliases”小节一致完整的逐条图标对照请查阅原文档它随每次autogen.sh运行自动重建与源码保持同步。别名alias机制源码级验证文档中标注的 “(alias)” 在源码中是模块尾部维护的赋值别名。以 diagrams/aws/compute.py 结尾为例# Aliases AutoScaling ApplicationAutoScaling AMI EC2Ami ECR EC2ContainerRegistry EB ElasticBeanstalk ECS ElasticContainerService EKS ElasticKubernetesService SAR ServerlessApplicationRepositorydiagrams/aws/database.py中则是DMS DatabaseMigrationService、DocumentDB DocumentdbMongodbCompatibility、DAX DynamodbDax、DDB Dynamodb、ElastiCache Elasticache、QLDB QuantumLedgerDatabaseQldb等。别名与完整类名指向同一 Python 对象因此两种写法渲染结果完全相同仅影响图脚本的可读性。例如from diagrams import Diagram from diagrams.aws.compute import EC2, EKS, Lambda, ECR from diagrams.aws.database import RDS, DDB, ElastiCache from diagrams.aws.integration import SNS, SQS from diagrams.aws.storage import S3 with Diagram(AWS Web Pipeline, showFalse, directionTB): # 使用别名导入图中标签由实例名参数决定 S3(raw-data) Lambda(ingest) DDB(items) EC2(worker) RDS(userdb) EKS(cluster) ECR(registry) DDB(items) SNS(events) SQS(consumers)使用节点时还有两条来自 Nodes 指南 的通用规则值得注意其一节点间用左到右、右到左、-无方向连接表达数据流-与移位运算符混用时需加括号以避免 Python 运算符优先级问题其二渲染的图顺序与声明顺序相反且Diagram的direction参数只接受TB、BT、LR、RL默认LR。自动生成的文档与模块从 PNG 图标到 Python 类docs/nodes/aws.md与diagrams/aws/*.py都不是手写的——每个模块文件头部都标注 “This module is automatically generated by autogen.sh. DO NOT EDIT.”。生成链路如下见 autogen.sh 与 scripts/generate.py预处理图标autogen.sh对 provider 列表其中包含aws依次执行python -m scripts.resource clean pvd清理资源命名对awsprovider 还额外执行round将所有 PNG 图标圆角化文档中图标统一呈现圆角外观即来源于此。扫描资源目录scripts/generate.py 的generate()遍历resources/aws/按子目录即资源类别typ分组收集.png文件并跳过文件名中含rounded的中间产物provider 根目录本身不作为类别。推导类名_gen_class_meta将图标文件名去扩展名按-拆分并逐词做大小写转换得到类名。大小写并非简单 title-case而是受 config.py 中UPPER_WORDS/TITLE_WORDS词表控制见up_or_title函数——这正是为什么最终类名是EC2、S3、KMS、Lambda而不是Ec2、S3→S3这类机械结果。渲染模板用 templates/module.tmpl 生成模块类文件ALIASES配置决定文件尾部“# Aliases”小节的别名再用 templates/apidoc.tmpl存在 provider 专用模板时优先生成docs/nodes/provider.md形式的 API 文档gen_apidoc中每个条目包含name、alias与resource_path即文档中每个条目的图标路径来源。同步网站资源最后cp -r resources website/static/img/将图标复制进网站静态目录并用black格式化生成代码。从源码结构看这条流水线保证了三者的强一致性resources/aws/typ/icon.png文件名 ↔diagrams/aws/typ.py中的类名 ↔docs/nodes/aws.md中的条目。因此当你在文档中查到一个节点类可以直接按diagrams.aws.模块导入反之如果你在resources/aws下新增了图标运行一次autogen.sh即可同步生成类与文档注意仓库本身是只读的这一步适用于你自己的 fork。小结与延伸阅读节点总览与通用用法docs/guides/node.md、docs/guides/diagram.md、docs/guides/cluster.md、docs/guides/edge.md其他 provider 的同类节点清单docs/nodes/azure.md、docs/nodes/gcp.md、docs/nodes/k8s.md、docs/nodes/onprem.md、docs/nodes/custom.md上手示例与安装docs/getting-started/installation.md、docs/getting-started/examples.md。一句话总结docs/nodes/aws.md是diagrams.aws包的完整节点索引覆盖 24 个资源类别模块每个条目都是一个继承自_AWS的 Python 类绑定一个 AWS 官方图标别名EC2、S3、DDB等让图脚本更贴近日常云术语而图标、类、文档三者由autogen.sh scripts/generate.py 统一生成天然保持同步。【免费下载链接】diagrams:art: Diagram as Code for prototyping cloud system architectures项目地址: https://gitcode.com/GitHub_Trending/di/diagrams创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考