Pulumi
現代化基礎設施即程式碼平台
產品說明
Pulumi 是一款開源的基礎設施即程式碼(Infrastructure as Code, IaC)開發平台。與傳統使用專有語法(如 Terraform 的 HCL 或 CloudFormation 的 YAML/JSON)的工具不同,Pulumi 允許開發者使用熟悉的通用程式語言——包括 TypeScript、Python、Go、C# 與 Java——來定義、部署與管理雲端資源。
這種「使用真正的程式碼」的方法,意味著你可以直接利用程式語言原本具備的迴圈、函式、類別、變數與模組化能力來構建基礎設施。這不僅大幅降低了學習門檻,更讓基礎設施程式碼能夠享有 IDE 的自動補全、語法檢查以及單元測試等現代化開發優勢。Pulumi 支援 AWS、Azure、Google Cloud、Kubernetes 等超過 150 種以上的雲端供應商,是實現 DevOps 與 GitOps 流程的強大基石。
核心特色:
- 多語言支援:使用你最熟悉的語言(Node.js, Python, .NET, Go)編寫基礎設施。
- 智慧型別檢查:在部署前即可透過編譯器發現型別錯誤,減少執行時期的失敗。
- 可程式化邏輯:利用
for迴圈、if判斷式與函式封裝複雜的雲端架構邏輯。 - 狀態管理:提供 Pulumi Service(SaaS)或自託管選項來安全地儲存與管理基礎設施狀態(State)。
常用指令
Pulumi 的操作流程非常符合開發者的直覺,主要透過 pulumi CLI 來完成專案的建立、預覽與部署。
專案生命週期管理
# 建立一個新的 Pulumi 專案 (使用 AWS 與 TypeScript 範本)
pulumi new aws-typescript
# 預覽即將發生的變更 (類似 terraform plan)
pulumi preview
# 部署或更新基礎設施 (類似 terraform apply)
pulumi up
| 指令 | 功能說明 | 範例 |
|---|---|---|
| new | 建立專案 | 從官方範本初始化新專案 |
| up | 部署變更 | 執行程式碼並更新雲端資源狀態 |
| preview | 預覽變更 | 顯示將執行的操作但不實際變更資源 |
| destroy | 銷毀資源 | 刪除該 Stack 下的所有雲端資源 |
| stack | 堆疊管理 | 切換不同的部署環境 (如 dev, prod) |
| config | 設定管理 | 管理專案的環境變數與機敏資料 |
進階技巧
多環境管理 (Stacks):
Pulumi 使用 "Stack" 來區分不同環境。你可以輕鬆切換並為不同環境設定專屬配置。# 建立並切換到 production 環境 pulumi stack init production # 設定 production 環境的參數 pulumi config set aws:region us-west-2匯入現有資源 (Import):
若要將已經存在於雲端的資源納入 Pulumi 管理,可使用 import 指令自動產生程式碼。# 將現有的 S3 Bucket 匯入 Pulumi 專案 pulumi import aws:s3/bucket:Bucket my-bucket existing-bucket-id加密機敏資料:
透過--secret參數,Pulumi 會自動加密設定檔中的敏感資訊(如 API Key)。pulumi config set --secret dbPassword "super-secret-password"
操作介面
雖然 Pulumi 核心是 CLI 工具,但它提供了一個功能強大的 Web 介面 —— Pulumi Console(或 Service),用於視覺化管理所有的 Stack 與資源狀態。




![]()
