GetBucket
Provides details about a specific S3 bucket.
This resource may prove useful when setting up a Route53 record, or an origin for a CloudFront Distribution.
Example Usage
Route53 Record
using Pulumi;
using Aws = Pulumi.Aws;
class MyStack : Stack
{
public MyStack()
{
var selected = Output.Create(Aws.S3.GetBucket.InvokeAsync(new Aws.S3.GetBucketArgs
{
Bucket = "bucket.test.com",
}));
var testZone = Output.Create(Aws.Route53.GetZone.InvokeAsync(new Aws.Route53.GetZoneArgs
{
Name = "test.com.",
}));
var example = new Aws.Route53.Record("example", new Aws.Route53.RecordArgs
{
Aliases =
{
new Aws.Route53.Inputs.RecordAliasArgs
{
Name = selected.Apply(selected => selected.WebsiteDomain),
ZoneId = selected.Apply(selected => selected.HostedZoneId),
},
},
Name = "bucket",
Type = "A",
ZoneId = testZone.Apply(testZone => testZone.Id),
});
}
}
package main
import (
"github.com/pulumi/pulumi-aws/sdk/v2/go/aws/route53"
"github.com/pulumi/pulumi-aws/sdk/v2/go/aws/s3"
"github.com/pulumi/pulumi/sdk/v2/go/pulumi"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
selected, err := s3.LookupBucket(ctx, &s3.LookupBucketArgs{
Bucket: "bucket.test.com",
}, nil)
if err != nil {
return err
}
opt0 := "test.com."
testZone, err := route53.LookupZone(ctx, &route53.LookupZoneArgs{
Name: &opt0,
}, nil)
if err != nil {
return err
}
_, err = route53.NewRecord(ctx, "example", &route53.RecordArgs{
Aliases: route53.RecordAliasArray{
&route53.RecordAliasArgs{
Name: pulumi.String(selected.WebsiteDomain),
ZoneId: pulumi.String(selected.HostedZoneId),
},
},
Name: pulumi.String("bucket"),
Type: pulumi.String("A"),
ZoneId: pulumi.String(testZone.Id),
})
if err != nil {
return err
}
return nil
})
}import pulumi
import pulumi_aws as aws
selected = aws.s3.get_bucket(bucket="bucket.test.com")
test_zone = aws.route53.get_zone(name="test.com.")
example = aws.route53.Record("example",
aliases=[{
"name": selected.website_domain,
"zone_id": selected.hosted_zone_id,
}],
name="bucket",
type="A",
zone_id=test_zone.id)import * as pulumi from "@pulumi/pulumi";
import * as aws from "@pulumi/aws";
const selected = pulumi.output(aws.s3.getBucket({
bucket: "bucket.test.com",
}, { async: true }));
const testZone = pulumi.output(aws.route53.getZone({
name: "test.com.",
}, { async: true }));
const example = new aws.route53.Record("example", {
aliases: [{
name: selected.websiteDomain,
zoneId: selected.hostedZoneId,
}],
name: "bucket",
type: "A",
zoneId: testZone.id,
});CloudFront Origin
using Pulumi;
using Aws = Pulumi.Aws;
class MyStack : Stack
{
public MyStack()
{
var selected = Output.Create(Aws.S3.GetBucket.InvokeAsync(new Aws.S3.GetBucketArgs
{
Bucket = "a-test-bucket",
}));
var test = new Aws.CloudFront.Distribution("test", new Aws.CloudFront.DistributionArgs
{
Origins =
{
new Aws.CloudFront.Inputs.DistributionOriginArgs
{
DomainName = selected.Apply(selected => selected.BucketDomainName),
OriginId = "s3-selected-bucket",
},
},
});
}
}
package main
import (
"github.com/pulumi/pulumi-aws/sdk/v2/go/aws/cloudfront"
"github.com/pulumi/pulumi-aws/sdk/v2/go/aws/s3"
"github.com/pulumi/pulumi/sdk/v2/go/pulumi"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
selected, err := s3.LookupBucket(ctx, &s3.LookupBucketArgs{
Bucket: "a-test-bucket",
}, nil)
if err != nil {
return err
}
_, err = cloudfront.NewDistribution(ctx, "test", &cloudfront.DistributionArgs{
Origins: cloudfront.DistributionOriginArray{
&cloudfront.DistributionOriginArgs{
DomainName: pulumi.String(selected.BucketDomainName),
OriginId: pulumi.String("s3-selected-bucket"),
},
},
})
if err != nil {
return err
}
return nil
})
}import pulumi
import pulumi_aws as aws
selected = aws.s3.get_bucket(bucket="a-test-bucket")
test = aws.cloudfront.Distribution("test", origins=[{
"domain_name": selected.bucket_domain_name,
"originId": "s3-selected-bucket",
}])import * as pulumi from "@pulumi/pulumi";
import * as aws from "@pulumi/aws";
const selected = pulumi.output(aws.s3.getBucket({
bucket: "a-test-bucket",
}, { async: true }));
const test = new aws.cloudfront.Distribution("test", {
origins: [{
domainName: selected.bucketDomainName,
originId: "s3-selected-bucket",
}],
});Using GetBucket
function getBucket(args: GetBucketArgs, opts?: InvokeOptions): Promise<GetBucketResult>function get_bucket(bucket=None, opts=None)func LookupBucket(ctx *Context, args *LookupBucketArgs, opts ...InvokeOption) (*LookupBucketResult, error)Note: This function is named
LookupBucketin the Go SDK.
public static class GetBucket {
public static Task<GetBucketResult> InvokeAsync(GetBucketArgs args, InvokeOptions? opts = null)
}The following arguments are supported:
GetBucket Result
The following output properties are available:
- Arn string
The ARN of the bucket. Will be of format
arn:aws:s3:::bucketname.- Bucket string
- Bucket
Domain stringName The bucket domain name. Will be of format
bucketname.s3.amazonaws.com.- Bucket
Regional stringDomain Name The bucket region-specific domain name. The bucket domain name including the region name, please refer here for format. Note: The AWS CloudFront allows specifying S3 region-specific endpoint when creating S3 origin, it will prevent redirect issues from CloudFront to S3 Origin URL.
- Hosted
Zone stringId The Route 53 Hosted Zone ID for this bucket’s region.
- Id string
The provider-assigned unique ID for this managed resource.
- Region string
The AWS region this bucket resides in.
- Website
Domain string The domain of the website endpoint, if the bucket is configured with a website. If not, this will be an empty string. This is used to create Route 53 alias records.
- Website
Endpoint string The website endpoint, if the bucket is configured with a website. If not, this will be an empty string.
- Arn string
The ARN of the bucket. Will be of format
arn:aws:s3:::bucketname.- Bucket string
- Bucket
Domain stringName The bucket domain name. Will be of format
bucketname.s3.amazonaws.com.- Bucket
Regional stringDomain Name The bucket region-specific domain name. The bucket domain name including the region name, please refer here for format. Note: The AWS CloudFront allows specifying S3 region-specific endpoint when creating S3 origin, it will prevent redirect issues from CloudFront to S3 Origin URL.
- Hosted
Zone stringId The Route 53 Hosted Zone ID for this bucket’s region.
- Id string
The provider-assigned unique ID for this managed resource.
- Region string
The AWS region this bucket resides in.
- Website
Domain string The domain of the website endpoint, if the bucket is configured with a website. If not, this will be an empty string. This is used to create Route 53 alias records.
- Website
Endpoint string The website endpoint, if the bucket is configured with a website. If not, this will be an empty string.
- arn string
The ARN of the bucket. Will be of format
arn:aws:s3:::bucketname.- bucket string
- bucket
Domain stringName The bucket domain name. Will be of format
bucketname.s3.amazonaws.com.- bucket
Regional stringDomain Name The bucket region-specific domain name. The bucket domain name including the region name, please refer here for format. Note: The AWS CloudFront allows specifying S3 region-specific endpoint when creating S3 origin, it will prevent redirect issues from CloudFront to S3 Origin URL.
- hosted
Zone stringId The Route 53 Hosted Zone ID for this bucket’s region.
- id string
The provider-assigned unique ID for this managed resource.
- region string
The AWS region this bucket resides in.
- website
Domain string The domain of the website endpoint, if the bucket is configured with a website. If not, this will be an empty string. This is used to create Route 53 alias records.
- website
Endpoint string The website endpoint, if the bucket is configured with a website. If not, this will be an empty string.
- arn str
The ARN of the bucket. Will be of format
arn:aws:s3:::bucketname.- bucket str
- bucket_
domain_ strname The bucket domain name. Will be of format
bucketname.s3.amazonaws.com.- bucket_
regional_ strdomain_ name The bucket region-specific domain name. The bucket domain name including the region name, please refer here for format. Note: The AWS CloudFront allows specifying S3 region-specific endpoint when creating S3 origin, it will prevent redirect issues from CloudFront to S3 Origin URL.
- hosted_
zone_ strid The Route 53 Hosted Zone ID for this bucket’s region.
- id str
The provider-assigned unique ID for this managed resource.
- region str
The AWS region this bucket resides in.
- website_
domain str The domain of the website endpoint, if the bucket is configured with a website. If not, this will be an empty string. This is used to create Route 53 alias records.
- website_
endpoint str The website endpoint, if the bucket is configured with a website. If not, this will be an empty string.
Package Details
- Repository
- https://github.com/pulumi/pulumi-aws
- License
- Apache-2.0
- Notes
- This Pulumi package is based on the
awsTerraform Provider.