Slide 60
Slide 60 text
pulumi.Run(func(ctx
*
pulumi.Context) error {
/ /
Create an AWS resource (S3 Bucket)
bucket, err
: =
s3.NewBucket(ctx, "my
-
bucket", &s3.BucketArgs{
Website: s3.BucketWebsiteArgs{
IndexDocument: pulumi.String("index.html"),
},
})
if err
! =
nil {
return err
}
site
: =
getEnv(ctx, "s3:siteDir", "content")
f
i
les, err
: =
ioutil.ReadDir(site)
if err
! =
nil {
return err
}
for _, item
: =
range f
i
les {
name
: =
item.Name()
if _, err = s3.NewBucketObject(ctx, name, &s3.BucketObjectArgs{
Bucket: bucket.Bucket,
Source: pulumi.NewFileAsset(f
i
lepath.Join(site, name)),
Acl: pulumi.String("public
-
read"),
ContentType: pulumi.String(mime.TypeByExtension(path.Ext(f
i
lepath.Join(site, name)))),
}); err
! =
nil {
return err
}
}
/ /
Export the name of the bucket
ctx.Export("bucketID", bucket.ID())
ctx.Export("bucketName", bucket.Bucket)
ctx.Export("bucketEndpoint", bucket.WebsiteEndpoint)
return nil
})