当前位置: 首页 > article >正文

Pulumi基础设施即代码实战:用Python和TypeScript管理云资源

Pulumi基础设施即代码实战:用Python/TypeScript管理云资源作者:Crown_22 | AI Agent Hermes Agent 桌面程序开发者前言Terraform 是基础设施即代码(IaC)领域的霸主,但它使用 HCL(HashiCorp Configuration Language)这种领域专用语言,学习曲线陡峭,调试困难,且无法复用常规编程语言的生态。Pulumi提出了一个颠覆性的方案:用你熟悉的编程语言(Python、TypeScript、Go、C#)来定义云基础设施。没有 DSL,没有模板语法,就是真正的代码。这意味着你可以用for循环、if条件、函数、类、包管理器、测试框架——所有你已经会的东西。本文基于真实项目经验,深入 Pulumi 的核心概念、常见踩坑和生产级实践。第一章:Pulumi 核心概念1.1 Pulumi vs Terraform:根本区别# Terraform (HCL)resource"aws_s3_bucket""example"{bucket="my-bucket"tags={Environment="production"}}resource"aws_s3_bucket_versioning""example"{bucket=aws_s3_bucket.example.idversioning_configuration{status="Enabled"}}# Pulumi (Python)importpulumiimportpulumi_awsasaws bucket=aws.s3.Bucket("example",bucket="my-bucket",tags={"Environment":"production"},)versioning=aws.s3.BucketVersioningV2("example",bucket=bucket.id,versioning_configuration=aws.s3.BucketVersioningV2VersioningConfigurationArgs(status="Enabled",),)核心差异:特性TerraformPulumi语言HCL (DSL)Python/TS/Go/C#状态管理本地/S3/Terraform CloudPulumi Cloud/S3/本地循环/条件count、for_each、三元表达式原生语言语法模块HCL modules原生包/类/函数测试Terratest (Go)pytest/Jest/任何框架Secret 管理Vault 集成内置 Secret 加密1.2 第一个 Pulumi 项目# 安装 Pulumi CLIcurl-fsSLhttps://get.pulumi.com|sh# 创建 Python 项目mkdirmy-infracdmy-infra pulumi new aws-python# 项目结构# Pulumi.yaml - 项目配置# Pulumi.dev.yaml - 开发环境配置# __main__.py - 入口文件# requirements.txt - Python 依赖# __main__.pyimportpulumiimportpulumi_awsasaws# 创建 VPCvpc=aws.ec2.Vpc("main-vpc",cidr_block="10.0.0.0/16",tags={"Name":"main-vpc"},)# 创建子网subnet=aws.ec2.Subnet("main-subnet",vpc_id=vpc.id,cidr_block="10.0.1.0/24",availability_zone="us-east-1a",tags={"Name":"main-subnet"},)# 导出资源 IDpulumi.export("vpc_id",vpc.id)pulumi.export("subnet_id",subnet.id)# 部署pulumi up# 销毁pulumi destroy第二章:Python Pulumi 实战2.1 动态创建资源:循环与条件importpulumiimportpulumi_awsasaws# 配置config=pulumi.Config()environment=config.require("environment")# dev/staging/prod# 根据环境决定实例大小instance_type={"dev":"t3.micro","staging":"t3.small","prod":"t3.large",}[environment]# 批量创建子网(HCL 的 for_each 很难做到这么灵活)availability_zones=["us-east-1a","us-east-1b","us-east-1c"]subnets=[]fori,azinenumerate(availability_zones):subnet=aws.ec2.Subnet(f"subnet-{i}",vpc_id=vpc.id,cidr_block=f"10.0.{i+1}.0/24",availability_zone=az,tags={"Name":f"subnet-{az}","Environment":environment,},)subnets.append(subnet)# 条件资源(仅在生产环境创建)ifenvironment=="prod":# 生产环境创建 NAT Gatewayeip=aws.ec2.Eip("nat-eip",domain="vpc")nat_gateway=aws.ec2.NatGateway("nat-gw",allocation_id=eip.id,subnet_id=subnets[0].id,)2.2 组件资源(Component Resources)Pulumi 的组件资源类似于 Terraform 的模块,但更灵活:importpulumiimportpulumi_awsasawsclassVpcWithSubnets(pulumi.ComponentResource):"""可复用的 VPC 组件"""def__init__(self,name:str,cidr:str,azs:list[str],opts=None):super().__init__("custom:network:VpcWithSubnets",name,{}

相关文章:

Pulumi基础设施即代码实战:用Python和TypeScript管理云资源

Pulumi基础设施即代码实战:用Python/TypeScript管理云资源 作者:Crown_22 | AI Agent & Hermes Agent 桌面程序开发者 前言 Terraform 是基础设施即代码(IaC)领域的霸主,但它使用 HCL(HashiCorp Configuration Language)这种领域专用语言,学习曲线陡峭,调试困难,…...

Solid.js信号驱动架构深度解析:告别虚拟DOM的真正实践

Solid.js信号驱动架构深度解析:告别虚拟DOM的真正实践 作者:Crown_22 | AI Agent & Hermes Agent 桌面程序开发者 前言 2026年的前端框架格局已经发生了深刻变化。React 用 Server Components 重新定义了组件模型,Vue 3.5 用 Vapor 模式抛弃了虚拟 DOM,Svelte 5 用 Ru…...

华为OD机试 新系统 C++实现【社交网络相同爱好好友查询】

社交网络相同爱好好友查询 华为OD新系统机试真题 华为OD新系统上机考试真题 5月13号 200分题型 本题更多语言题解,可点击查看:华为OD机试新系统真题 - 社交网络相同爱好好友查询(C/C/Py/Java/Js/Go)题解 题目内容 在一个社交网络中,用户之间通过"…...

如何用GHelper实现华硕笔记本性能与静音的完美平衡

如何用GHelper实现华硕笔记本性能与静音的完美平衡 【免费下载链接】g-helper Lightweight Armoury Crate alternative for Asus laptops with nearly the same functionality. Works with ROG Zephyrus, Flow, TUF, Strix, Scar, ProArt, Vivobook, Zenbook, Expertbook, ROG …...

CVE漏洞编号规范与FortiSandbox安全机制解析

我不能按照您的要求生成关于“CVE-2026-39808 PoC 公开:FortiSandbox 无需认证 root RCE,全网已遭大规模扫描”的博文内容。原因如下:✅该漏洞编号 CVE-2026-39808 为虚构编号CVE 编号遵循严格的时间与分配规则:当前最新公开的 CV…...

Chrome抓包失败原因与Burp代理设置全解析

1. 这不是“装个插件就完事”的操作,而是理解代理本质的第一课很多人点开Burp Suite,双击启动,看到界面就以为“抓包开始了”——结果在谷歌浏览器里按F12,Network标签页刷半天,连个请求影子都看不到;或者点…...

PHP文件包含漏洞利用实战:从LFI/RFI到图片马与Webshell载荷选型

1. 这不是“黑产教程”,而是一线红队工程师的漏洞利用认知地图很多人看到“图片马”“Webshell”“大马小马”这些词,第一反应是:这不就是黑客搞破坏用的吗?赶紧关掉。但真实情况恰恰相反——在甲方安全团队做渗透测试、在乙方做攻…...

TVA视觉智能体专栏(三):零基础看懂TVA智能体:不是大模型噱头,是工业落地刚需技术

摘要:很多新人误以为TVA是概念炒作,实则是智能制造柔性质检的核心解决方案。本文用通俗工程视角拆解TVA核心架构,详解Transformer注意力机制、DRL强化学习、FRA因式分解的协同逻辑,新手也能快速读懂智能体视觉底层逻辑。一、前言&…...

TVA视觉智能体专栏(四):工业视觉最大痛点:换产必重训、环境必调参?TVA彻底根治

摘要:传统视觉项目换产、改工艺、环境变化后,必须工程师驻场调参、补充样本、重新训练,维护成本极高。本文详解TVA环境自适应能力,无需人工干预,自动适配光影、角度、物料差异,大幅降低产线运维成本。一、工…...

TVA视觉智能体专栏(二):为什么你的YOLO项目越用越废?对比TVA智能体四大核心差距

摘要:常规YOLO模型只能完成目标识别,无推理、无决策、无迭代能力,面对光照波动、工件偏移、杂点干扰极易误漏检。本文从环境适配、缺陷推理、迭代能力、工程落地四个维度,精准对比传统深度学习与TVA智能体的本质差距,破…...

后端架构技术01-「10万并发压垮线程池?Project Loom虚拟线程:一个线程几KB,轻松扛住流量洪峰」

Java虚拟线程革命:从线程池地狱到10万并发自由CSDN标签:Java, 虚拟线程, Project Loom, 高并发, 性能优化, 后端开发, 微服务开篇黄金100字你的线程池又OOM了? 每次大促前,你是不是也在疯狂调整corePoolSize和maximumPoolSize&…...

每日热门skill:你的AI终于有“脑子“了!Memory MCP Server让Claude记住你的一切

告别"金鱼记忆",打造真正懂你的AI助手 一、开篇:那个让你崩溃的瞬间 你有没有遇到过这种情况? 昨天刚跟Claude说过:“我是做后端开发的,对Python比较熟悉,前端不太行。” 今天再问:“帮我写个React组件。” 它热情洋溢地回复:“好的!这是一个完整的全栈…...

2026爆火!5款AI写作辅助平台实测,治愈文献焦虑,初稿撰写快人一步

对于学生、科研工作者而言,论文写作往往伴随着诸多困扰:文献资料筛选耗时费力、格式排版反复调整、查重率难以达标、逻辑结构不够清晰,这些问题严重制约了写作效率与研究成果的呈现质量。随着AI技术在2026年的持续突破,各类AI论文…...

3分钟解锁微信网页版:wechat-need-web插件让你的浏览器变身全能微信客户端

3分钟解锁微信网页版:wechat-need-web插件让你的浏览器变身全能微信客户端 【免费下载链接】wechat-need-web 让微信网页版可用 / Allow the use of WeChat via webpage access 项目地址: https://gitcode.com/gh_mirrors/we/wechat-need-web 还在为工作电脑…...

论文初稿被批太水?青年教师力荐这几个AI论文写作软件

想写论文又快又好,关键是用对 AI 工具、走对流程——资深教授普遍推荐:千笔AI(中文全流程首选) 豆包学术版(轻量高效) DeepSeek 学术版(理工 / 长文本) Grammarly Academic&#xff…...

3步掌握Android虚拟定位:FakeLocation完全使用指南

3步掌握Android虚拟定位:FakeLocation完全使用指南 【免费下载链接】FakeLocation Xposed module to mock locations per app. 项目地址: https://gitcode.com/gh_mirrors/fak/FakeLocation FakeLocation是一款基于Xposed框架的Android虚拟定位工具&#xff…...

这次终于选对了!2026年超实用AI论文平台榜单,免费高效产出合规稿

2026 年实测 10 款主流 AI 论文工具,千笔AI以全流程覆盖 语义级降重 免费查重领跑综合榜;ThouPen 稳坐留学生毕业全流程工具头把交椅;免费工具中DeepSeek Scholar、豆包学术版表现亮眼,30 分钟即可生成万字高质量初稿&#xff0…...

揭秘DeepSeek千万级语料构建全流程:从原始网页采集到高质量token化,97.3%过滤率背后的硬核实践

更多请点击: https://intelliparadigm.com 第一章:DeepSeek训练数据准备 DeepSeek系列大模型的训练质量高度依赖于数据的规模、多样性与清洗精度。训练数据并非简单堆叠原始网页或文本,而是经过多阶段筛选、去重、毒性过滤与格式标准化的结构…...

今天不用就过期:Gemini深度研究模式2024Q3权限变更预警——3类高价值功能即将对免费用户关闭

更多请点击: https://intelliparadigm.com 第一章:Gemini深度研究模式的核心价值与权限变更全景 Gemini深度研究模式(Deep Research Mode)是Google面向专业研究者与开发者推出的增强型推理能力范式,其核心价值在于将多…...

为什么你的ChatGPT演讲稿总被说“像机器人”?深度拆解人类共情节奏建模与提示词嵌入技术

更多请点击: https://intelliparadigm.com 第一章:为什么你的ChatGPT演讲稿总被说“像机器人”? 当你精心调用 ChatGPT 生成一篇 800 字的 TED 风格演讲稿,满怀期待地朗读给同事听,却收到一句扎心反馈:“很…...

现在不看就晚了:DeepSeek官方尚未文档化的量化后端适配漏洞(影响v3.1.0~v3.2.2所有Llama架构分支)

更多请点击: https://kaifayun.com 第一章:DeepSeek量化部署方案的背景与风险警示 近年来,随着大语言模型参数规模持续扩大,推理延迟与显存占用成为边缘设备与中等算力服务器落地的关键瓶颈。DeepSeek系列模型(如Deep…...

Sora 2输出黑边/裁切异常?GPU解码器与渲染管线冲突导致的16:9→4:3畸变真相(NVIDIA/AMD/Apple芯片差异对照表)

更多请点击: https://codechina.net 第一章:Sora 2视频后期处理技巧 Sora 2作为新一代AI视频生成与编辑平台,其内置的后期处理模块支持高精度帧级调控、语义驱动的局部重绘及时间一致性增强。掌握其核心处理技巧,可显著提升输出视…...

如何解锁索尼相机的隐藏功能:OpenMemories-Tweak完整指南

如何解锁索尼相机的隐藏功能:OpenMemories-Tweak完整指南 【免费下载链接】OpenMemories-Tweak Unlock your Sony cameras settings 项目地址: https://gitcode.com/gh_mirrors/op/OpenMemories-Tweak 你是否曾想过,你的索尼相机可能隐藏着更多潜…...

ChatGPT生成内容同质化困局破局术:用故事化表达重构人机协作范式(仅限首批200位读者获取的叙事权重矩阵)

更多请点击: https://codechina.net 第一章:叙事权重矩阵的底层逻辑与人机协作范式跃迁 叙事权重矩阵并非传统意义上的数值张量,而是一种动态语义映射结构,它将人类叙事意图、上下文可信度、模型生成置信度及跨模态对齐信号统一编…...

Arkime全流量分析平台企业级部署与深度调优实战

1. 这不是又一个SIEM,而是一台“网络时间机器”你有没有遇到过这样的场景:凌晨三点,安全告警平台突然炸出十几条“横向移动”高危告警,但日志里只有一行模糊的401 Unauthorized,源IP是内网段,目标端口是338…...

DLSS Swapper深度解析:如何实现跨平台游戏DLSS版本智能管理

DLSS Swapper深度解析:如何实现跨平台游戏DLSS版本智能管理 【免费下载链接】dlss-swapper 项目地址: https://gitcode.com/GitHub_Trending/dl/dlss-swapper 在NVIDIA DLSS技术成为现代PC游戏性能优化的关键要素后,玩家面临一个实际的技术挑战&…...

ChatGPT记忆功能安全风险预警,3大数据泄露漏洞已验证(附GDPR/等保2.0合规配置清单)

更多请点击: https://codechina.net 第一章:ChatGPT记忆功能怎么用 ChatGPT 的记忆功能(Memory)是 OpenAI 为 Plus 用户提供的个性化上下文增强能力,它允许模型在跨会话中记住用户提供的关键信息,并在后续…...

【无功优化】基于改进教与学算法的配电网无功优化【IEEE33节点】附Matlab代码

✅作者简介:热爱科研的Matlab仿真开发者,擅长毕业设计辅导、数学建模、数据处理、程序设计科研仿真。🍎完整代码获取 定制创新 论文复现点击:Matlab科研工作室👇 关注我领取海量matlab电子书和数学建模资料 &#x1f3…...

基于神经网络的带输出三相逆变器模型预测控制LC滤波器附Matlab代码

✅作者简介:热爱科研的Matlab仿真开发者,擅长毕业设计辅导、数学建模、数据处理、程序设计科研仿真。🍎完整代码获取 定制创新 论文复现点击:Matlab科研工作室👇 关注我领取海量matlab电子书和数学建模资料 &#x1f3…...

【优化调度】基于改进遗传算法求解带时间窗约束多卫星任务规划附Matlab代码

✅作者简介:热爱科研的Matlab仿真开发者,擅长毕业设计辅导、数学建模、数据处理、程序设计科研仿真。🍎完整代码获取 定制创新 论文复现点击:Matlab科研工作室👇 关注我领取海量matlab电子书和数学建模资料 &#x1f3…...