pulumi/tests/testdata/codegen/aws-s3-folder-pp/aws-s3-folder.pp

43 lines
1.2 KiB
Puppet

// Create a bucket and expose a website index document
resource siteBucket "aws:s3:Bucket" {
website = {
indexDocument = "index.html"
}
}
siteDir = "www" // directory for content files
// For each file in the directory, create an S3 object stored in `siteBucket`
resource files "aws:s3:BucketObject" {
options {
range = readDir(siteDir)
deletedWith = siteBucket
}
bucket = siteBucket.id // Reference the s3.Bucket object
key = range.value // Set the key appropriately
source = fileAsset("${siteDir}/${range.value}") // use fileAsset to point to a file
contentType = range.value // set the MIME type of the file
}
// Set the access policy for the bucket so all objects are readable
resource bucketPolicy "aws:s3:BucketPolicy" {
bucket = siteBucket.id // refer to the bucket created earlier
// The policy is JSON-encoded.
policy = toJSON({
Version = "2012-10-17"
Statement = [{
Effect = "Allow"
Principal = "*"
Action = [ "s3:GetObject" ]
Resource = [ "arn:aws:s3:::${siteBucket.id}/*" ]
}]
})
}
// Stack outputs
output bucketName { value = siteBucket.bucket }
output websiteUrl { value = siteBucket.websiteEndpoint }