Pulumi 将其状态存储在后端。默认的后端是 Pulumi 的软件即服务(它有一个针对个人用户的免费计划),但在这个例子中,我使用替代的文件后端。文件后端将在你的本地文件系统上创建一个文件来存储状态:
pulumi login–local
如果你打算和别人分享这个项目,文件后台可能不是一个好的起点。Pulumi 还可以将其状态存储在 AWS S3 等云对象存储中。要使用它,请创建一个 S3 bucket 并登录:
pulumi login–cloud-url s3://my-pulumi-state-bucket
现在你已经登录到了状态后端,你可以创建一个项目和一个堆栈了!
在你开始创建 Pulumi 项目之前,请先了解以下 Pulumi 术语,你将在本教程中看到这些术语。
项目
是一个包含 Pulumi.yaml 文件的目录。这个文件包含了 Pulumi 需要知道的元数据,以便进行它的工作。在 Pulumi.yaml 文件中可以找到的示例字段有:
运行时(例如,Python、Node、Go、.Net)
项目说明(如“我的第一个 Pulumi 项目”)
项目名称
项目是一个松散的概念,可以满足你的需求。一般来说,一个项目包含了一系列的资源,这些资源是你想要提供和控制的东西。你可以选择拥有资源很少的小型 Pulumi 项目,也可以选择包含所有你需要的资源的大型项目。随着你对 Pulumi 越来越熟悉,你想如何布局你的项目会变得更加清晰。
堆栈
Pulumi 允许你根据可配置的值来区分你的 Pulumi 项目。一个常见的用途是将一个项目部署到不同的环境,如开发或生产环境,或不同的地区,如欧洲、中东和非洲以及美国。
在入门时,你不大需要一个复杂的堆栈设置,所以本演练使用默认的堆栈名称 dev。
在 IaC 中使用 TypeScript
你可以使用方便的 pulumi new 命令来初建bootstrap一个 Pulumi 项目。new 命令有一大堆标志和选项,可以帮助你入门 Pulumi,所以请继续创建你的第一个项目:
$ pulumi new typescript
This command will walk you through creating a newPulumi project.
Enter a value or leave blank to accept the (default),and press <ENTER>.
Press^C at any time to quit.
project name:(pulumi)my-first-project
project description:(A minimal TypeScriptPulumi program)My very first Pulumi program
Created project 'my-first-project'
Please enter your desired stack name.
To create a stack in an organization,use the format <org-name>/<stack-name> (e.g. `acmecorp/dev`).
stack name: (dev) dev
Created stack 'dev'
Installing dependencies…
> node scripts/postinstall
added 82 packages from 126 contributors and audited 82 packages in 2.84s
13 packages are looking for funding
run `npm fund` for details
found 0 vulnerabilities
Finished installing dependencies
Your new project is ready to go! ✨
To perform an initial deployment, run 'pulumi up'
这里发生了很多事情,我将其展开来说:
第一部分是为你的 Pulumi 项目确定一个模板。我选择了通用的 typescript 选项