pulumi

C#源码 2025-08-17

基础架构作为任何编程语言中的代码

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程序:

  1. 安装

    要安装最新的pulumi版本,请运行以下内容(有关其他安装选项,请参见完整的安装说明):

    $ curl -fsSL https://get.pu***lumi.com/ | sh
  2. 创建一个项目

    安装后,您可以开始使用pulumi new命令:

    pulumi -demo $ pulumi new hello-aws-javascript">
    $ mkdir pulumi -demo && cd pulumi -demo
    $ pulumi new hello-aws-javascript

    new命令提供所有语言和云的模板。在没有参数的情况下运行它,它将提示您进行可用的项目。该命令创建了一个用JavaScript编写的AWS无服务器Lambda项目。

  3. 部署到云

    运行pulumi up以使您的代码进入云:

    $ pulumi up

    这使得运行代码所需的所有云资源。只需对您的项目进行编辑,然后随后的pulumi up S将计算最小的差异以部署更改。

  4. 使用您的程序

    现在,您的代码已部署,您可以与之进行交互。在上面的示例中,我们可以卷曲端点:

    $ curl $( pulumi stack output url )
  5. 访问日志

    如果您使用的是容器或功能, pulumi的统一记录命令将显示您的所有日志:

    $ pulumi logs -f
  6. 破坏您的资源

    完成后,您可以删除程序创建的所有资源:

    $ 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 。

下载源码

通过命令行克隆项目:

git clone https://github.com/pulumi/pulumi.git