Now that we have a project configured to use AWS, we can create some basic infrastructure. We will start with a simple S3 bucket.
Add the following to your index.ts
file:
const bucket = new aws.s3.Bucket("my-website-bucket", {
website: {
indexDocument: "index.html",
},
});
After this change, your index.ts
should look like this:
import * as pulumi from "@pulumi/pulumi";
import * as aws from "@pulumi/aws";
const bucket = new aws.s3.Bucket("my-website-bucket", {
website: {
indexDocument: "index.html",
},
});
Now let’s deploy our bucket:
pulumi up
The pulumi up
command evaluates our program, determines what the resources need to change, and shows us a preview of the planned changes. You’ll see output similar to the following:
Previewing update (dev)
View Live: https://app.pulumi.com/username/iac-workshop/dev/previews/82f71dc2-077e-48d5-b574-e4575f27dad9
Type Name Plan
+ pulumi:pulumi:Stack iac-workshop-dev create
+ └─ aws:s3:Bucket my-website-bucket create
Resources:
+ 2 to create
Do you want to perform this update? [Use arrows to move, enter to select, type to filter]
yes
> no
details
The pulumi:pulumi:stack
resource is the container for all of our infrastructure. Whenever we create a new stack with Pulumi, we’ll see this resource created. The second resource is our S3 bucket, which we declared in our program.
Now that we’ve examined a preview of our changes, let’s deploy them. Select yes
:
Updating (dev)
View Live: https://app.pulumi.com/jkodroff/iac-workshop/dev/updates/1
Type Name Status
+ pulumi:pulumi:Stack iac-workshop-dev created
+ └─ aws:s3:Bucket my-website-bucket created
Resources:
+ 2 created
Duration: 7s
Our S3 bucket has been created in our AWS account! Feel free to click the link in the command output and explore; this will take you to the Pulumi Service, which records your deployment history.
In the next step, we’ll add some files to our S3 bucket.