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 或贡献改进的信息。