Skip to main content

Search the Dev Center

Search tutorials, templates, examples, and more.

Host a static website on Amazon S3, written in HCL

A static website hosted on AWS S3, written in HCL

This example lives in the pulumi/examples repository. Check out just this directory to use it:

Get started with this example
git clone --filter=blob:none --sparse https://github.com/pulumi/examples pulumi-examples
git -C pulumi-examples sparse-checkout set aws-hcl-s3-folder
cd pulumi-examples/aws-hcl-s3-folder

A static website that uses S3’s website support, written in Pulumi HCL. Pulumi installs the HCL language plugin and the Terraform AWS provider automatically the first time you run the program.

Note: some values in this example will be different from run to run. These values are indicated with ***.

Prerequisites#

  1. Install Pulumi
  2. Configure AWS credentials

Deploying the example#

  1. Create a new stack:

    Terminal window
    pulumi stack init website-testing
  2. Set the AWS region to deploy into:

    Terminal window
    pulumi config set aws:region us-west-2
  3. Deploy the stack:

    Terminal window
    pulumi up
    Updating (website-testing)
    Type Name Status
    + pulumi:pulumi:Stack aws-hcl-s3-folder-website-testing created
    + ├─ aws:s3:Bucket site_bucket created
    + ├─ aws:s3:BucketWebsiteConfiguration site_config created
    + ├─ aws:s3:BucketPublicAccessBlock public_access_block created
    + ├─ aws:s3:BucketObject site_files["favicon.png"] created
    + ├─ aws:s3:BucketObject site_files["index.html"] created
    + └─ aws:s3:BucketPolicy bucket_policy created
    Resources:
    + 7 created
    Duration: ***
  4. To see the resources that were created, run pulumi stack output:

    Terminal window
    pulumi stack output
    Current stack outputs (2):
    OUTPUT VALUE
    bucket_name s3-website-bucket***
    website_url ***.s3-website-us-west-2.amazonaws.com
  5. Open the site URL in a browser to see both the rendered HTML and the favicon:

    Terminal window
    pulumi stack output website_url
    ***.s3-website-us-west-2.amazonaws.com

Cleaning up#

Once you’re finished experimenting, you can destroy your stack and remove it to avoid incurring any additional cost:

Terminal window
pulumi destroy
pulumi stack rm

Related

The infrastructure as code platform for any cloud.