Pulumi 的基礎設施即程式碼 SDK是使用您已經了解和喜愛的程式語言在任何架構和任何雲端上建置和部署基礎架構的最簡單方法。使用您最喜歡的語言和工具更快地編碼和交付基礎設施,並使用自動化 API 將 IaC 嵌入到任何地方。
只需用您最喜歡的語言編寫程式碼,Pulumi 就會使用基礎設施即程式碼方法自動配置和管理 AWS、Azure、Google Cloud Platform、Kubernetes 和 120 多個供應商上的資源。跳過 YAML,並使用您已經了解和喜愛的標準語言功能,例如循環、函數、類別和套件管理。
例如,建立三個 Web 伺服器:
const aws = require("@pulumi/aws");const sg = new aws.ec2.SecurityGroup("web-sg", {ingress: [{ 協議: "tcp", fromPort: 80, toPort: 80, cidrBlocks: ["0.0.0.0/0"] }],});for (let i = 0; i < 3; i++) {new aws.ec2.Instance(`web-${i}`, {ami: "ami -7172b611",instanceType: "t2.micro",vpcSecurityGroupIds: [sg.id],userData: `#!/bin/bash echo "Hello, World!" > index.html nohup python -m SimpleHTTPServer 80 &`,} );}
或一個簡單的無伺服器計時器,每天上午 8:30 歸檔黑客新聞:
const aws = require("@pulumi/aws");const snapshots = new aws.dynamodb.Table("snapshots", {屬性: [{ name: "id", type: "S", }],hashKey: " id", billingMode: "PAY_PER_REQUEST",});aws.cloudwatch.onSchedule("daily-yc-snapshot", "cron(30 8 * * ? *)", () => {require("https"). get("https://news.ycombinator.com", res => {let content = "";res.setEncoding("utf8");res.on("data", chunk => content += chunk); res.on("end", () => new aws.sdk.DynamoDB.DocumentClient().put({TableName: snapshots.name.get(),Item: { date: Date.now(), content }, }).promise());}).end();});
pulumi/examples 中提供了許多跨容器、無伺服器和基礎架構的範例。
Pulumi 在 Apache 2.0 許可下開源,支援多種語言和雲,並且易於擴展。 該儲存庫包含pulumi
CLI、語言 SDK 和核心 Pulumi 引擎,各個庫位於自己的儲存庫中。
開始使用 Pulumi :使用 Pulumi 在 AWS、Azure、Google Cloud 或 Kubernetes 中部署簡單的應用程式。
學習:遵循 Pulumi 學習路徑,透過真實的範例學習最佳實踐和架構模式。
範例:瀏覽跨多種語言、雲端和場景(包括容器、無伺服器和基礎架構)的多個範例。
文件:了解 Pulumi 概念、遵循使用者指南並查閱參考文件。
註冊表:找到包含您需要的資源的 Pulumi 包。將套件直接安裝到您的專案中,瀏覽 API 文檔,然後開始建置。
Pulumi ESC :集中秘密管理與編排。安全地控制所有雲端基礎架構和應用程式中的秘密蔓延和配置複雜性。
Pulumi 路線圖:審查下一季的計畫工作以及我們正在考慮但尚未安排的選定積壓問題。
Community Slack :加入我們的 Pulumi Community Slack。歡迎所有對話和問題。
GitHub 討論:提出問題或與 Pulumi 分享您正在建立的內容。
請參閱入門指南,在您選擇的平台和雲端上快速開始使用 Pulumi。
否則,以下步驟示範如何使用 AWS Serverless Lambda 在幾分鐘內部署您的第一個 Pulumi 程式:
安裝:
若要安裝最新的 Pulumi 版本,請執行下列命令(其他安裝選項,請參閱完整的安裝說明):
$curl -fsSL https://get.pulumi.com/|噓
建立一個專案:
安裝後,您可以開始使用pulumi new
指令:
$ mkdir pulumi-demo && cd pulumi-demo $ pulumi 新 hello-aws-javascript
new
命令提供適用於所有語言和雲端的範本。 不帶參數來運行它,它會提示您可用的項目。 此命令建立了一個用 JavaScript 編寫的 AWS Serverless Lambda 專案。
部署到雲端:
執行pulumi up
將程式碼傳送到雲端:
$ 普盧米 向上
這使得運行程式碼所需的所有雲端資源都可用。 只需對您的專案進行編輯,後續的pulumi up
將計算最小差異來部署您的變更。
使用您的程式:
現在您的程式碼已部署,您可以與其互動。 在上面的例子中,我們可以捲曲端點:
$curl$(pulumi堆疊輸出url)
訪問日誌:
如果您使用容器或函數,Pulumi 的統一日誌記錄命令將顯示您的所有日誌:
$ pulumi 日誌 -f
摧毀你的資源:
完成後,您可以刪除程式建立的所有資源:
$ pulumi 銷毀 -y
要了解更多信息,請訪問 pulumi.com 以了解更多信息,包括教程、示例以及核心 Pulumi CLI 和編程模型概念的詳細信息。
不再支援 Pulumi CLI v1 和 v2。如果您尚未運行 v3,請考慮遷移到 v3 以繼續獲取 Pulumi 提供的最新、最好的服務! ?
若要從 v2 遷移到 v3,請參閱我們的 v3 遷移指南。
請訪問註冊表以獲取受支援的雲端和基礎設施提供者的完整清單。
造訪 CONTRIBUTING.md 以了解有關從原始碼建立 Pulumi 或貢獻改進的資訊。