SuperAPI AI 工具集

pulumi-automation-api

部署与运维

查看项目

更新于 10-16 04:53

技能介绍

用途:Automation API 提供对 Pulumi 操作的编程访问,不再从 CLI 运行 pulumi up,而是在代码中调用等价函数。适用于跨多个 Pulumi 堆栈编排部署、将 Pulumi 嵌入自定义应用、构建自助式基础设施平台、替代脆弱的 Bash/Makefile 编排脚本、创建自定义基础设施 CLI,以及构建可供给基础设施的 Web 应用。单一项目且标准部署、无需编程控制时不建议使用。

主要能力:创建或选择堆栈(LocalWorkspace.createOrSelectStack)、以编程方式执行 up 与 destroy、设置堆栈配置(setConfig,支持 secret)、读取堆栈输出(outputs 或 up 结果)、通过 onOutput 回调流式获取实时输出、按依赖顺序串行部署或对独立堆栈用 Promise.all 并行部署、捕获并处理部署失败。

使用方式:支持本地源码(workDir 指向已有 Pulumi 项目)与内联源码(program 函数内嵌 Pulumi 程序)两种架构;编排程序可与被编排的 Pulumi 程序使用不同语言。示例:import * as automation from "@pulumi/pulumi/automation"; 然后 await automation.LocalWorkspace.createOrSelectStack({ stackName: "dev", projectName: "my-project", program: async () => {...} }); 再 await stack.up({ onOutput: console.log })。

适用场景:多堆栈依赖编排(如 infrastructure → platform → application)、自助式平台(Web 门户、Slack 机器人、自定义 CLI)、嵌入式基础设施(SaaS 按租户资源、测试环境、CI/CD 动态基础设施)、替代脚本编排。

限制与注意:资料未提供具体版本、语言支持范围、收费或性能数据;内联源码便于分发编译二进制,本地源码便于独立版本控制与发布周期;配置建议外置到文件或环境变量。相关技能:pulumi-best-practices。参考:https://www.pulumi.com/docs/using-pulumi/automation-api/