基础架构作为任何编程语言中的代码
pulumi基础架构作为代码是使用您已经知道和喜欢的编程语言,在任何体系结构和任何云上建立和部署基础架构的最简单方法。用您喜欢的语言和工具更快地代码和运输基础架构,并在任何地方嵌入IAC,并使用自动化API嵌入。
只需使用您喜欢的语言编写代码,并使用基础架构AS-CODE方法在AWS,Azure,Google Cloud Platform,Kubernetes和120多个提供商上pulumi准备并管理您的资源。跳过YAML,并使用您已经知道和喜欢的循环,功能,课程和包装管理等标准语言功能。
例如,创建三个Web服务器:
pulumi/aws\”);
const sg = new aws.ec2.SecurityGroup(\”web-sg\”, {
ingress: [{ protocol: \”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 &`,
});
}\”>
const aws = require ( \"@ pulumi /aws\" ) ; const sg = new aws . ec2 . SecurityGroup ( \"web-sg\" , { ingress : [ { protocol : \"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存档黑客新闻:
pulumi/aws\”);
const snapshots = new aws.dynamodb.Table(\”snapshots\”, {
attributes: [{ name: \”id\”, type: \”S\”, }],
hashKey: \”id\”, billingMode: \”PAY_PER_REQUEST\”,
});
aws.cloudwatch.onSchedule(\”daily-yc-snapshot\”, \”cron(30 8 * * ? *)\”, () => {
require(\”https\”).get(\”https://news.ycom*bina**tor.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();
});\”>
const aws = require ( \"@ pulumi /aws\" ) ; const snapshots = new aws . dynamodb . Table ( \"snapshots\" , { attributes : [ { name : \"id\" , type : \"S\" , } ] , hashKey : \"id\" , billingMode : \"PAY_PER_REQUEST\" , } ) ; aws . cloudwatch . onSchedule ( \"daily-yc-snapshot\" , \"cron(30 8 * * ? *)\" , ( ) => { require ( \"https\" ) . get ( \"https://news.ycom*bina**tor.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 /示例中的跨越容器,无服务器和基础架构。
pulumi是Apache 2.0许可证下的开源,支持许多语言和云,并且易于扩展。该仓库包含pulumi CLI,语言SDK和Core pulumi Engine,并且单个库中都有自己的存储库。
欢迎
-
使用pulumi开始使用Pulumi :使用pulumi中的AWS,Azure,Google Cloud或Kubernetes中部署一个简单的应用程序。
-
学习:遵循pulumi学习途径,通过真实的例子来学习最佳实践和建筑模式。
-
示例:浏览许多语言,云和场景(包括容器,无服务器和基础架构)的几个示例。
-
文档:了解pulumi概念,遵循用户指南,然后咨询参考文档。
-
注册表:找到带有所需资源的pulumi软件包。将软件包直接安装到您的项目中,浏览API文档,然后开始构建。
-
秘密管理:Tame Secrets在所有云基础架构以及pulumi Esc的应用程序中牢固地蔓延和配置复杂性。
-
pulumi路线图:审查即将到来的季度的计划工作,以及我们想到但尚未安排的问题的选择。
-
社区懈怠:加入我们参加pulumi Community Slack。欢迎所有对话和问题。
-
Github讨论:提出问题或与pulumi分享您的建设。
入门
请参阅“启动指南”,以快速从您的平台和选择的云上开始使用pulumi 。
否则,以下步骤在几分钟内使用AWS无服务器lambdas演示了如何部署第一个pulumi程序:
-
安装:
要安装最新的pulumi版本,请运行以下内容(有关其他安装选项,请参见完整的安装说明):
$ curl -fsSL https://get.pu***lumi.com/ | sh -
创建一个项目:
安装后,您可以开始使用
pulumi new命令:pulumi -demo
$ pulumi new hello-aws-javascript\”>$ mkdir pulumi -demo && cd pulumi -demo $ pulumi new hello-aws-javascript
new命令提供所有语言和云的模板。在没有参数的情况下运行它,它将提示您进行可用的项目。该命令创建了一个用JavaScript编写的AWS无服务器Lambda项目。 -
部署到云:
运行
pulumi up以使您的代码进入云:$ pulumi up这使得运行代码所需的所有云资源。只需对您的项目进行编辑,然后随后的
pulumi upS将计算最小的差异以部署更改。 -
使用您的程序:
现在,您的代码已部署,您可以与之进行交互。在上面的示例中,我们可以卷曲端点:
$ curl $( pulumi stack output url ) -
访问日志:
如果您使用的是容器或功能, pulumi的统一记录命令将显示您的所有日志:
$ pulumi logs -f -
破坏您的资源:
完成后,您可以删除程序创建的所有资源:
$ pulumi destroy -y
要了解更多信息,请前往pulumi .com获取更多信息,包括教程,示例以及核心pulumi CLI和编程模型概念的详细信息。
平台
语言
| 语言 | 地位 | 运行时 | 版本 | |
|---|---|---|---|---|
| JavaScript | 稳定的 | node.js | 当前,主动和维护LTS版本 | |
| 打字稿 | 稳定的 | node.js | 当前,主动和维护LTS版本 | |
| Python | 稳定的 | Python | 支持版本 | |
| 去 | 稳定的 | 去 | 支持版本 | |
| .net(c#/f#/vb.net) | 稳定的 | 。网 | 支持版本 | |
| 爪哇 | 稳定的 | JDK | 11+ | |
| yaml | 稳定的 | N/A。 | N/A。 |
EOL发布
不再支持pulumi CLI V1和V2。如果您尚未运行V3,请考虑迁移到V3,以继续获得最新,最出色的pulumi提供! ?
- 要从V2迁移到V3,请参阅我们的V3迁移指南。
云
请访问注册表以获取支持的云和基础架构提供商的完整列表。
贡献
访问pulumi 。
