AWS Classic

Pulumi Official
Package maintained by Pulumi
v5.10.0 published on Monday, Jul 11, 2022 by Pulumi

getBucketObject

NOTE: The aws.s3.BucketObject data source is DEPRECATED and will be removed in a future version! Use aws.s3.BucketObjectv2 instead, where new features and fixes will be added.

The S3 object data source allows access to the metadata and optionally (see below) content of an object stored inside S3 bucket.

Note: The content of an object (body field) is available only for objects which have a human-readable Content-Type (text/* and application/json). This is to prevent printing unsafe characters and potentially downloading large amount of data which would be thrown away in favour of metadata.

Example Usage

using Pulumi;
using Aws = Pulumi.Aws;

class MyStack : Stack
{
    public MyStack()
    {
        var bootstrapScript = Output.Create(Aws.S3.GetBucketObject.InvokeAsync(new Aws.S3.GetBucketObjectArgs
        {
            Bucket = "ourcorp-deploy-config",
            Key = "ec2-bootstrap-script.sh",
        }));
        var example = new Aws.Ec2.Instance("example", new Aws.Ec2.InstanceArgs
        {
            InstanceType = "t2.micro",
            Ami = "ami-2757f631",
            UserData = bootstrapScript.Apply(bootstrapScript => bootstrapScript.Body),
        });
    }

}
package main

import (
	"github.com/pulumi/pulumi-aws/sdk/v5/go/aws/ec2"
	"github.com/pulumi/pulumi-aws/sdk/v5/go/aws/s3"
	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		bootstrapScript, err := s3.LookupBucketObject(ctx, &s3.LookupBucketObjectArgs{
			Bucket: "ourcorp-deploy-config",
			Key:    "ec2-bootstrap-script.sh",
		}, nil)
		if err != nil {
			return err
		}
		_, err = ec2.NewInstance(ctx, "example", &ec2.InstanceArgs{
			InstanceType: pulumi.String("t2.micro"),
			Ami:          pulumi.String("ami-2757f631"),
			UserData:     pulumi.String(bootstrapScript.Body),
		})
		if err != nil {
			return err
		}
		return nil
	})
}
package generated_program;

import java.util.*;
import java.io.*;
import java.nio.*;
import com.pulumi.*;

public class App {
    public static void main(String[] args) {
        Pulumi.run(App::stack);
    }

    public static void stack(Context ctx) {
        final var bootstrapScript = Output.of(S3Functions.getBucketObject(GetBucketObjectArgs.builder()
            .bucket("ourcorp-deploy-config")
            .key("ec2-bootstrap-script.sh")
            .build()));

        var example = new Instance("example", InstanceArgs.builder()        
            .instanceType("t2.micro")
            .ami("ami-2757f631")
            .userData(bootstrapScript.apply(getBucketObjectResult -> getBucketObjectResult.body()))
            .build());

    }
}
import pulumi
import pulumi_aws as aws

bootstrap_script = aws.s3.get_bucket_object(bucket="ourcorp-deploy-config",
    key="ec2-bootstrap-script.sh")
example = aws.ec2.Instance("example",
    instance_type="t2.micro",
    ami="ami-2757f631",
    user_data=bootstrap_script.body)
import * as pulumi from "@pulumi/pulumi";
import * as aws from "@pulumi/aws";

const bootstrapScript = aws.s3.getBucketObject({
    bucket: "ourcorp-deploy-config",
    key: "ec2-bootstrap-script.sh",
});
const example = new aws.ec2.Instance("example", {
    instanceType: "t2.micro",
    ami: "ami-2757f631",
    userData: bootstrapScript.then(bootstrapScript => bootstrapScript.body),
});
resources:
  example:
    type: aws:ec2:Instance
    properties:
      instanceType: t2.micro
      ami: ami-2757f631
      userData: ${bootstrapScript.body}
variables:
  bootstrapScript:
    Fn::Invoke:
      Function: aws:s3:getBucketObject
      Arguments:
        bucket: ourcorp-deploy-config
        key: ec2-bootstrap-script.sh

Using getBucketObject

Two invocation forms are available. The direct form accepts plain arguments and either blocks until the result value is available, or returns a Promise-wrapped result. The output form accepts Input-wrapped arguments and returns an Output-wrapped result.

function getBucketObject(args: GetBucketObjectArgs, opts?: InvokeOptions): Promise<GetBucketObjectResult>
function getBucketObjectOutput(args: GetBucketObjectOutputArgs, opts?: InvokeOptions): Output<GetBucketObjectResult>
def get_bucket_object(bucket: Optional[str] = None,
                      key: Optional[str] = None,
                      range: Optional[str] = None,
                      tags: Optional[Mapping[str, str]] = None,
                      version_id: Optional[str] = None,
                      opts: Optional[InvokeOptions] = None) -> GetBucketObjectResult
def get_bucket_object_output(bucket: Optional[pulumi.Input[str]] = None,
                      key: Optional[pulumi.Input[str]] = None,
                      range: Optional[pulumi.Input[str]] = None,
                      tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
                      version_id: Optional[pulumi.Input[str]] = None,
                      opts: Optional[InvokeOptions] = None) -> Output[GetBucketObjectResult]
func LookupBucketObject(ctx *Context, args *LookupBucketObjectArgs, opts ...InvokeOption) (*LookupBucketObjectResult, error)
func LookupBucketObjectOutput(ctx *Context, args *LookupBucketObjectOutputArgs, opts ...InvokeOption) LookupBucketObjectResultOutput

> Note: This function is named LookupBucketObject in the Go SDK.

public static class GetBucketObject 
{
    public static Task<GetBucketObjectResult> InvokeAsync(GetBucketObjectArgs args, InvokeOptions? opts = null)
    public static Output<GetBucketObjectResult> Invoke(GetBucketObjectInvokeArgs args, InvokeOptions? opts = null)
}
public static CompletableFuture<GetBucketObjectResult> getBucketObject(GetBucketObjectArgs args, InvokeOptions options)
// Output-based functions aren't available in Java yet
Fn::Invoke:
  Function: aws:s3/getBucketObject:getBucketObject
  Arguments:
    # Arguments dictionary

The following arguments are supported:

Bucket string

The name of the bucket to read the object from. Alternatively, an S3 access point ARN can be specified

Deprecated:

Use the aws_s3_object data source instead

Key string

The full path to the object inside the bucket

Range string
Tags Dictionary<string, string>

A map of tags assigned to the object.

VersionId string

Specific version ID of the object returned (defaults to latest version)

Bucket string

The name of the bucket to read the object from. Alternatively, an S3 access point ARN can be specified

Deprecated:

Use the aws_s3_object data source instead

Key string

The full path to the object inside the bucket

Range string
Tags map[string]string

A map of tags assigned to the object.

VersionId string

Specific version ID of the object returned (defaults to latest version)

bucket String

The name of the bucket to read the object from. Alternatively, an S3 access point ARN can be specified

Deprecated:

Use the aws_s3_object data source instead

key String

The full path to the object inside the bucket

range String
tags Map<String,String>

A map of tags assigned to the object.

versionId String

Specific version ID of the object returned (defaults to latest version)

bucket string

The name of the bucket to read the object from. Alternatively, an S3 access point ARN can be specified

Deprecated:

Use the aws_s3_object data source instead

key string

The full path to the object inside the bucket

range string
tags {[key: string]: string}

A map of tags assigned to the object.

versionId string

Specific version ID of the object returned (defaults to latest version)

bucket str

The name of the bucket to read the object from. Alternatively, an S3 access point ARN can be specified

Deprecated:

Use the aws_s3_object data source instead

key str

The full path to the object inside the bucket

range str
tags Mapping[str, str]

A map of tags assigned to the object.

version_id str

Specific version ID of the object returned (defaults to latest version)

bucket String

The name of the bucket to read the object from. Alternatively, an S3 access point ARN can be specified

Deprecated:

Use the aws_s3_object data source instead

key String

The full path to the object inside the bucket

range String
tags Map<String>

A map of tags assigned to the object.

versionId String

Specific version ID of the object returned (defaults to latest version)

getBucketObject Result

The following output properties are available:

Body string

Object data (see limitations above to understand cases in which this field is actually available)

Bucket string

Deprecated:

Use the aws_s3_object data source instead

BucketKeyEnabled bool

(Optional) Whether or not to use Amazon S3 Bucket Keys for SSE-KMS.

CacheControl string

Specifies caching behavior along the request/reply chain.

ContentDisposition string

Specifies presentational information for the object.

ContentEncoding string

Specifies what content encodings have been applied to the object and thus what decoding mechanisms must be applied to obtain the media-type referenced by the Content-Type header field.

ContentLanguage string

The language the content is in.

ContentLength int

Size of the body in bytes.

ContentType string

A standard MIME type describing the format of the object data.

Etag string

ETag generated for the object (an MD5 sum of the object content in case it's not encrypted)

Expiration string

If the object expiration is configured (see object lifecycle management), the field includes this header. It includes the expiry-date and rule-id key value pairs providing object expiration information. The value of the rule-id is URL encoded.

Expires string

The date and time at which the object is no longer cacheable.

Id string

The provider-assigned unique ID for this managed resource.

Key string
LastModified string

Last modified date of the object in RFC1123 format (e.g., Mon, 02 Jan 2006 15:04:05 MST)

Metadata Dictionary<string, string>

A map of metadata stored with the object in S3

ObjectLockLegalHoldStatus string

Indicates whether this object has an active legal hold. This field is only returned if you have permission to view an object's legal hold status.

ObjectLockMode string

The object lock retention mode currently in place for this object.

ObjectLockRetainUntilDate string

The date and time when this object's object lock will expire.

ServerSideEncryption string

If the object is stored using server-side encryption (KMS or Amazon S3-managed encryption key), this field includes the chosen encryption and algorithm used.

SseKmsKeyId string

If present, specifies the ID of the Key Management Service (KMS) master encryption key that was used for the object.

StorageClass string

Storage class information of the object. Available for all objects except for Standard storage class objects.

Tags Dictionary<string, string>

A map of tags assigned to the object.

VersionId string

The latest version ID of the object returned.

WebsiteRedirectLocation string

If the bucket is configured as a website, redirects requests for this object to another object in the same bucket or to an external URL. Amazon S3 stores the value of this header in the object metadata.

Range string
Body string

Object data (see limitations above to understand cases in which this field is actually available)

Bucket string

Deprecated:

Use the aws_s3_object data source instead

BucketKeyEnabled bool

(Optional) Whether or not to use Amazon S3 Bucket Keys for SSE-KMS.

CacheControl string

Specifies caching behavior along the request/reply chain.

ContentDisposition string

Specifies presentational information for the object.

ContentEncoding string

Specifies what content encodings have been applied to the object and thus what decoding mechanisms must be applied to obtain the media-type referenced by the Content-Type header field.

ContentLanguage string

The language the content is in.

ContentLength int

Size of the body in bytes.

ContentType string

A standard MIME type describing the format of the object data.

Etag string

ETag generated for the object (an MD5 sum of the object content in case it's not encrypted)

Expiration string

If the object expiration is configured (see object lifecycle management), the field includes this header. It includes the expiry-date and rule-id key value pairs providing object expiration information. The value of the rule-id is URL encoded.

Expires string

The date and time at which the object is no longer cacheable.

Id string

The provider-assigned unique ID for this managed resource.

Key string
LastModified string

Last modified date of the object in RFC1123 format (e.g., Mon, 02 Jan 2006 15:04:05 MST)

Metadata map[string]string

A map of metadata stored with the object in S3

ObjectLockLegalHoldStatus string

Indicates whether this object has an active legal hold. This field is only returned if you have permission to view an object's legal hold status.

ObjectLockMode string

The object lock retention mode currently in place for this object.

ObjectLockRetainUntilDate string

The date and time when this object's object lock will expire.

ServerSideEncryption string

If the object is stored using server-side encryption (KMS or Amazon S3-managed encryption key), this field includes the chosen encryption and algorithm used.

SseKmsKeyId string

If present, specifies the ID of the Key Management Service (KMS) master encryption key that was used for the object.

StorageClass string

Storage class information of the object. Available for all objects except for Standard storage class objects.

Tags map[string]string

A map of tags assigned to the object.

VersionId string

The latest version ID of the object returned.

WebsiteRedirectLocation string

If the bucket is configured as a website, redirects requests for this object to another object in the same bucket or to an external URL. Amazon S3 stores the value of this header in the object metadata.

Range string
body String

Object data (see limitations above to understand cases in which this field is actually available)

bucket String

Deprecated:

Use the aws_s3_object data source instead

bucketKeyEnabled Boolean

(Optional) Whether or not to use Amazon S3 Bucket Keys for SSE-KMS.

cacheControl String

Specifies caching behavior along the request/reply chain.

contentDisposition String

Specifies presentational information for the object.

contentEncoding String

Specifies what content encodings have been applied to the object and thus what decoding mechanisms must be applied to obtain the media-type referenced by the Content-Type header field.

contentLanguage String

The language the content is in.

contentLength Integer

Size of the body in bytes.

contentType String

A standard MIME type describing the format of the object data.

etag String

ETag generated for the object (an MD5 sum of the object content in case it's not encrypted)

expiration String

If the object expiration is configured (see object lifecycle management), the field includes this header. It includes the expiry-date and rule-id key value pairs providing object expiration information. The value of the rule-id is URL encoded.

expires String

The date and time at which the object is no longer cacheable.

id String

The provider-assigned unique ID for this managed resource.

key String
lastModified String

Last modified date of the object in RFC1123 format (e.g., Mon, 02 Jan 2006 15:04:05 MST)

metadata Map<String,String>

A map of metadata stored with the object in S3

objectLockLegalHoldStatus String

Indicates whether this object has an active legal hold. This field is only returned if you have permission to view an object's legal hold status.

objectLockMode String

The object lock retention mode currently in place for this object.

objectLockRetainUntilDate String

The date and time when this object's object lock will expire.

serverSideEncryption String

If the object is stored using server-side encryption (KMS or Amazon S3-managed encryption key), this field includes the chosen encryption and algorithm used.

sseKmsKeyId String

If present, specifies the ID of the Key Management Service (KMS) master encryption key that was used for the object.

storageClass String

Storage class information of the object. Available for all objects except for Standard storage class objects.

tags Map<String,String>

A map of tags assigned to the object.

versionId String

The latest version ID of the object returned.

websiteRedirectLocation String

If the bucket is configured as a website, redirects requests for this object to another object in the same bucket or to an external URL. Amazon S3 stores the value of this header in the object metadata.

range String
body string

Object data (see limitations above to understand cases in which this field is actually available)

bucket string

Deprecated:

Use the aws_s3_object data source instead

bucketKeyEnabled boolean

(Optional) Whether or not to use Amazon S3 Bucket Keys for SSE-KMS.

cacheControl string

Specifies caching behavior along the request/reply chain.

contentDisposition string

Specifies presentational information for the object.

contentEncoding string

Specifies what content encodings have been applied to the object and thus what decoding mechanisms must be applied to obtain the media-type referenced by the Content-Type header field.

contentLanguage string

The language the content is in.

contentLength number

Size of the body in bytes.

contentType string

A standard MIME type describing the format of the object data.

etag string

ETag generated for the object (an MD5 sum of the object content in case it's not encrypted)

expiration string

If the object expiration is configured (see object lifecycle management), the field includes this header. It includes the expiry-date and rule-id key value pairs providing object expiration information. The value of the rule-id is URL encoded.

expires string

The date and time at which the object is no longer cacheable.

id string

The provider-assigned unique ID for this managed resource.

key string
lastModified string

Last modified date of the object in RFC1123 format (e.g., Mon, 02 Jan 2006 15:04:05 MST)

metadata {[key: string]: string}

A map of metadata stored with the object in S3

objectLockLegalHoldStatus string

Indicates whether this object has an active legal hold. This field is only returned if you have permission to view an object's legal hold status.

objectLockMode string

The object lock retention mode currently in place for this object.

objectLockRetainUntilDate string

The date and time when this object's object lock will expire.

serverSideEncryption string

If the object is stored using server-side encryption (KMS or Amazon S3-managed encryption key), this field includes the chosen encryption and algorithm used.

sseKmsKeyId string

If present, specifies the ID of the Key Management Service (KMS) master encryption key that was used for the object.

storageClass string

Storage class information of the object. Available for all objects except for Standard storage class objects.

tags {[key: string]: string}

A map of tags assigned to the object.

versionId string

The latest version ID of the object returned.

websiteRedirectLocation string

If the bucket is configured as a website, redirects requests for this object to another object in the same bucket or to an external URL. Amazon S3 stores the value of this header in the object metadata.

range string
body str

Object data (see limitations above to understand cases in which this field is actually available)

bucket str

Deprecated:

Use the aws_s3_object data source instead

bucket_key_enabled bool

(Optional) Whether or not to use Amazon S3 Bucket Keys for SSE-KMS.

cache_control str

Specifies caching behavior along the request/reply chain.

content_disposition str

Specifies presentational information for the object.

content_encoding str

Specifies what content encodings have been applied to the object and thus what decoding mechanisms must be applied to obtain the media-type referenced by the Content-Type header field.

content_language str

The language the content is in.

content_length int

Size of the body in bytes.

content_type str

A standard MIME type describing the format of the object data.

etag str

ETag generated for the object (an MD5 sum of the object content in case it's not encrypted)

expiration str

If the object expiration is configured (see object lifecycle management), the field includes this header. It includes the expiry-date and rule-id key value pairs providing object expiration information. The value of the rule-id is URL encoded.

expires str

The date and time at which the object is no longer cacheable.

id str

The provider-assigned unique ID for this managed resource.

key str
last_modified str

Last modified date of the object in RFC1123 format (e.g., Mon, 02 Jan 2006 15:04:05 MST)

metadata Mapping[str, str]

A map of metadata stored with the object in S3

object_lock_legal_hold_status str

Indicates whether this object has an active legal hold. This field is only returned if you have permission to view an object's legal hold status.

object_lock_mode str

The object lock retention mode currently in place for this object.

object_lock_retain_until_date str

The date and time when this object's object lock will expire.

server_side_encryption str

If the object is stored using server-side encryption (KMS or Amazon S3-managed encryption key), this field includes the chosen encryption and algorithm used.

sse_kms_key_id str

If present, specifies the ID of the Key Management Service (KMS) master encryption key that was used for the object.

storage_class str

Storage class information of the object. Available for all objects except for Standard storage class objects.

tags Mapping[str, str]

A map of tags assigned to the object.

version_id str

The latest version ID of the object returned.

website_redirect_location str

If the bucket is configured as a website, redirects requests for this object to another object in the same bucket or to an external URL. Amazon S3 stores the value of this header in the object metadata.

range str
body String

Object data (see limitations above to understand cases in which this field is actually available)

bucket String

Deprecated:

Use the aws_s3_object data source instead

bucketKeyEnabled Boolean

(Optional) Whether or not to use Amazon S3 Bucket Keys for SSE-KMS.

cacheControl String

Specifies caching behavior along the request/reply chain.

contentDisposition String

Specifies presentational information for the object.

contentEncoding String

Specifies what content encodings have been applied to the object and thus what decoding mechanisms must be applied to obtain the media-type referenced by the Content-Type header field.

contentLanguage String

The language the content is in.

contentLength Number

Size of the body in bytes.

contentType String

A standard MIME type describing the format of the object data.

etag String

ETag generated for the object (an MD5 sum of the object content in case it's not encrypted)

expiration String

If the object expiration is configured (see object lifecycle management), the field includes this header. It includes the expiry-date and rule-id key value pairs providing object expiration information. The value of the rule-id is URL encoded.

expires String

The date and time at which the object is no longer cacheable.

id String

The provider-assigned unique ID for this managed resource.

key String
lastModified String

Last modified date of the object in RFC1123 format (e.g., Mon, 02 Jan 2006 15:04:05 MST)

metadata Map<String>

A map of metadata stored with the object in S3

objectLockLegalHoldStatus String

Indicates whether this object has an active legal hold. This field is only returned if you have permission to view an object's legal hold status.

objectLockMode String

The object lock retention mode currently in place for this object.

objectLockRetainUntilDate String

The date and time when this object's object lock will expire.

serverSideEncryption String

If the object is stored using server-side encryption (KMS or Amazon S3-managed encryption key), this field includes the chosen encryption and algorithm used.

sseKmsKeyId String

If present, specifies the ID of the Key Management Service (KMS) master encryption key that was used for the object.

storageClass String

Storage class information of the object. Available for all objects except for Standard storage class objects.

tags Map<String>

A map of tags assigned to the object.

versionId String

The latest version ID of the object returned.

websiteRedirectLocation String

If the bucket is configured as a website, redirects requests for this object to another object in the same bucket or to an external URL. Amazon S3 stores the value of this header in the object metadata.

range String

Package Details

Repository
https://github.com/pulumi/pulumi-aws
License
Apache-2.0
Notes

This Pulumi package is based on the aws Terraform Provider.