Skip to main content

Static Website on Amazon S3

A static website hosted on AWS S3

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-go-s3-folder-component
cd pulumi-examples/aws-go-s3-folder-component

The component version of aws-go-s3-folder. For a detailed walkthrough of this example, see Tutorial: Pulumi Components.

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-component-testing
  2. Set the AWS region:

    $ pulumi config set aws:region us-west-2
  3. Run pulumi up to preview and deploy changes. After showing the preview you will be prompted if you want to continue or not.

    Terminal window
    pulumi up
    Previewing stack 'website-component-testing'
    Previewing changes:
    ...
    Updating stack 'website-component-testing'
    Performing changes:
    Type Name Status
    + pulumi:pulumi:Stack aws-go-s3-folder-component-website-component-testing created
    + └─ pulumi:example:S3Folder pulumi-static-site created
    + ├─ aws:s3:Bucket pulumi-static-site created
    + ├─ aws:s3:BucketPolicy bucketPolicy created
    + ├─ aws:s3:BucketObject index.html created
    + └─ aws:s3:BucketObject favicon.png created
    Outputs:
    bucketName: "pulumi-static-site-***"
    websiteUrl: "pulumi-static-site-***.s3-website-us-west-2.amazonaws.com"
    Resources:
    + 6 created
    Duration: 14s
    Permalink: ***
  4. To see the resources that were created, run pulumi stack output:

    Terminal window
    pulumi stack output
    Current stack outputs (2):
    OUTPUT VALUE
    bucketName pulumi-static-site-***
    websiteUrl pulumi-static-site-***.s3-website-us-west-2.amazonaws.com
  5. To see that the S3 objects exist, you can either use the AWS Console or the AWS CLI:

    Terminal window
    aws s3 ls $(pulumi stack output bucketName)
    2020-04-20 22:52:15 13731 favicon.png
    2020-04-20 22:52:15 249 index.html
  6. Open the site URL in a browser to see both the rendered HTML and the favicon:

    Terminal window
    pulumi stack output websiteUrl
    pulumi-static-site-***.s3-website-us-west-2.amazonaws.com
  7. To clean up resources, run pulumi destroy and answer the confirmation question at the prompt.

Related

The infrastructure as code platform for any cloud.