Skip to content

Latest commit

 

History

History

aws-native-java-s3-folder

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
 
 
 
 
 
 
 
 

Deploy this example with Pulumi Deploy this example with Pulumi

Host a Static Website on Amazon S3 with the AWS Native Provider

A static website that uses S3's website support. For a detailed walkthrough of this example, see the tutorial Static Website on AWS S3.

Note: Some resources are not yet supported by the Native AWS provider, so we are using both the Native and Classic provider in this example. The resources will be updated to use native resources as they are available in AWS's Cloud Control API.

Deploying and running the program

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

  1. Set the AWS region:

    Either using an environment variable

    $ export AWS_REGION=us-west-2

    Or with the stack config

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

    $ pulumi up
    Previewing update (dev)
    
    View Live: https://app.pulumi.com/***/aws-java-s3-folder/dev/previews/e251093a-d128-4ed3-a230-4e98888aed84
    
         Type                     Name                    Plan       Info
     +   pulumi:pulumi:Stack      aws-java-s3-folder-dev  create     6 messages
     +   ├─ aws-native:s3:Bucket  s3-website-bucket       create
     +   ├─ aws:s3:BucketPolicy   bucketPolicy            create
     +   ├─ aws:s3:BucketObject   index.html              create
     +   └─ aws:s3:BucketObject   favicon.ico             create
    
    Diagnostics:
      pulumi:pulumi:Stack (aws-java-s3-folder-dev):
        > Task :app:compileJava UP-TO-DATE
        > Task :app:processResources NO-SOURCE
        > Task :app:classes UP-TO-DATE
        > Task :app:run
        BUILD SUCCESSFUL in 3s
        2 actionable tasks: 1 executed, 1 up-to-date
    
    
    Updating (dev)
    
    View Live: https://app.pulumi.com/***/aws-java-s3-folder/dev/updates/1
    
         Type                     Name                    Status      Info
     +   pulumi:pulumi:Stack      aws-java-s3-folder-dev  created     6 messages
     +   ├─ aws-native:s3:Bucket  s3-website-bucket       created
     +   ├─ aws:s3:BucketPolicy   bucketPolicy            created
     +   ├─ aws:s3:BucketObject   index.html              created
     +   └─ aws:s3:BucketObject   favicon.ico             created
    
    Diagnostics:
      pulumi:pulumi:Stack (aws-java-s3-folder-dev):
        > Task :app:compileJava UP-TO-DATE
        > Task :app:processResources NO-SOURCE
        > Task :app:classes UP-TO-DATE
        > Task :app:run
        BUILD SUCCESSFUL in 1m 5s
        2 actionable tasks: 1 executed, 1 up-to-date
    
    Outputs:
        bucketName: "s3-website-bucket-***"
        urn       : "***"
        websiteUrl: "http://s3-website-bucket-***.s3-website-us-west-2.amazonaws.com"
    
    Resources:
        + 5 created
    
    Duration: 1m6s
  3. To see the resources that were created, run pulumi stack output:

    $ pulumi stack output
    Current stack outputs (3):
        OUTPUT      VALUE
        bucketName  s3-website-bucket-***
        urn         urn:pulumi:dev::aws-java-s3-folder::pulumi:pulumi:Stack::aws-java-s3-folder-dev
        websiteUrl  http://s3-website-bucket-***.s3-website-us-west-2.amazonaws.com
  4. To see that the S3 objects exist, you can either use the AWS Console or the AWS CLI:

    $ aws s3 ls $(pulumi stack output bucketName)
    2022-02-17 14:11:54      13731 favicon.ico
    2022-02-17 14:11:54        198 index.html
  5. Open the site URL in a browser to see both the rendered HTML and the favicon:

    $ pulumi stack output websiteUrl
    http://s3-website-bucket-***.s3-website-us-west-2.amazonaws.com

    Hello S3 example

  6. To clean up resources, run pulumi destroy and answer the confirmation question at the prompt.