S3 Bucket
This example demonstrates how to create an S3 bucket using the composite S3Bucket component. It builds upon the basic bucket example, integrating functionality into a higher-level abstraction.
- app.tsx
- Overview
- All View
- Terraform
import { Shape } from '@dinghy/base-components'
import { AwsProvider, S3Backend } from '@dinghy/tf-aws'
import { S3Bucket } from '@dinghy/tf-aws/s3Bucket'
export default function Stack() {
return (
<Shape _title='S3 Bucket Composite Component Example'>
<AwsProvider region='eu-west-1'>
<S3Backend />
<S3Bucket
bucket='my-demo-bucket-with-versioning'
versioningEnabled
/>
</AwsProvider>
</Shape>
)
}


tf.json
{
"provider": {
"aws": [
{
"region": "eu-west-1",
"default_tags": {
"tags": {
"iac:stack-title": "S3 Bucket Composite Component Example",
"iac:stack-name": "s3-bucket-composite-component-example"
}
}
}
]
},
"terraform": {
"required_providers": {
"aws": {
"source": "aws",
"version": "6.22.0"
}
},
"backend": {
"s3": {
"bucket": "s3-bucket-composite-component-example-backend",
"key": "tfstates/app.tfstate",
"region": "eu-west-1"
}
}
},
"resource": {
"aws_s3_bucket": {
"awss3bucket_backend": {
"bucket": "s3-bucket-composite-component-example-backend",
"object_lock_enabled": true,
"tags": {
"Name": "s3-bucket-composite-component-example-backend",
"iac:id": "awss3bucket_backend"
}
},
"awss3bucket_mydemobucketwithversioning": {
"bucket": "my-demo-bucket-with-versioning",
"tags": {
"Name": "my-demo-bucket-with-versioning",
"iac:id": "awss3bucket_mydemobucketwithversioning"
}
}
},
"aws_s3_bucket_versioning": {
"awss3bucket_backend_versioning": {
"bucket": "s3-bucket-composite-component-example-backend",
"versioning_configuration": {
"status": "Enabled"
},
"depends_on": [
"aws_s3_bucket.awss3bucket_backend"
]
},
"awss3bucket_mydemobucketwithversioning_versioning": {
"bucket": "my-demo-bucket-with-versioning",
"versioning_configuration": {
"status": "Enabled"
},
"depends_on": [
"aws_s3_bucket.awss3bucket_mydemobucketwithversioning"
]
}
}
}
}