Create a New Project

Now that you have set up your environment by installing Pulumi, installing your preferred language runtime, and configuring your Azure credentials, let’s create your first Pulumi program.

$ mkdir quickstart && cd quickstart
$ pulumi new azure-typescript
$ mkdir quickstart && cd quickstart
$ pulumi new azure-python
$ mkdir quickstart && cd quickstart
$ pulumi new azure-csharp
# from within your $GOPATH
$ mkdir quickstart && cd quickstart
$ pulumi new azure-go
$ mkdir quickstart && cd quickstart
$ pulumi new azure-java
$ mkdir quickstart && cd quickstart
$ pulumi new azure-yaml

The pulumi new command creates a new Pulumi project with some basic scaffolding based on the cloud and language specified.

Note

If this is your first time running pulumi new or other pulumi commands, you may be prompted to log in to the Pulumi Service. The Pulumi CLI and Pulumi Service work in tandem to deliver a reliable experience. It's free for individual use, with features available for teams, and self-managed options are also available. Hitting Enter at the prompt opens a browser for you to sign in or sign up.

After logging in, the CLI will proceed with walking you through creating a new project.

First, you will be asked for a project name and description. Hit ENTER to accept the default values or specify new values.

Next, you will be asked for the name of a stack. Hit ENTER to accept the default value of dev.

For Azure projects, you will be prompted for the Azure location. You can accept the default value of WestUS or choose another location.

To list all available locations, use the az account list-locations command.

$ az account list-locations --output table

You can then change the region for your stack by using the pulumi config set command as shown below:

pulumi config set azure-native:location eastus

What are projects and stacks? Pulumi projects and stacks let you organize Pulumi code. Consider a Pulumi project to be analogous to a GitHub repo—a single place for code—and a stack to be an instance of that code with a separate configuration. For instance, Project Foo may have multiple stacks for different development environments (Dev, Test, or Prod), or perhaps for different cloud configurations (geographic region for example). See Organizing Projects and Stacks for some best practices on organizing your Pulumi projects and stacks.

After some dependency installations from `npm`, the project and stack will be ready.
After the command completes, the project and stack will be ready.
After the command completes, the project and stack will be ready.
After the command completes, the project and stack will be ready.
After the command completes, the project and stack will be ready.
After the command completes, the project and stack will be ready.

Next, we’ll review the generated project files.