基础架构作为任何编程语言中的代码
pulumi基础架构作为代码是使用您已经知道和喜欢的编程语言,在任何体系结构和任何云上建立和部署基础架构的最简单方法。用您喜欢的语言和工具更快地代码和运输基础架构,并在任何地方嵌入IAC,并使用自动化API嵌入。
只需使用您喜欢的语言编写代码,并使用基础架构AS-CODE方法在AWS,Azure,Google Cloud Platform,Kubernetes和120多个提供商上pulumi准备并管理您的资源。跳过YAML,并使用您已经知道和喜欢的循环,功能,课程和包装管理等标准语言功能。
例如,创建三个Web服务器:
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存档黑客新闻:
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 。
通过命令行克隆项目: