Skip to main content

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.

Deploying and running the program#

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

  1. Create a new stack:

    Terminal window
    pulumi stack init website-testing
  2. Configure your AWS credentials and set the AWS region:

    Terminal window
    export AWS_REGION=us-west-2
  3. Run pulumi up to preview and deploy changes. After the preview is shown you will be prompted if you want to continue or not.

    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
  6. To clean up resources, run pulumi destroy and answer the confirmation question at the prompt.

Related

The infrastructure as code platform for any cloud.