Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat: support L2 constructs for Amazon S3 Tables #33599

Draft
wants to merge 4 commits into
base: main
Choose a base branch
from

Conversation

xuxey
Copy link

@xuxey xuxey commented Feb 27, 2025

Reason for this change

This adds an alpha module @aws-cdk/aws-s3tables-alpha containing L2 constructs for Amazon S3 Tables.
At this initial stage, we would appreciate feedback on the public API and/or implementation details for these constructs.

Description of changes

Amazon S3 Tables deliver the first cloud object store with built-in Apache Iceberg support and streamline storing tabular data at scale. See product page.

These changes set up an experimental alpha module for higher level L2 constructs for S3 Tables:

Example Usage

Define an S3 Table Bucket

// Build a Table bucket
const tableBucket = new TableBucket(scope, 'ExampleTableBucket', {
    tableBucketName: 'example-bucket-1',
    // optional fields:
    unreferencedFileRemoval: {
        noncurrentDays: 123,
        status: 'Enabled',
        unreferencedDays: 123,
    },
});

  // Add resource policy statements
const permissions = new iam.PolicyStatement({
    effect: Effect.ALLOW,
    actions: ['s3tables:*'],
    principals: [ new iam.ServicePrincipal('example.aws.internal') ],
    resources: ['*']
});

tableBucket.addResourcePolicy(permissions);

Future constructs are planned to be supported incrementally.

Describe any new or updated permissions being added

N/A

Description of how you validated changes

  • Unit tests & integration tests are pending, and will be added after the public interfaces for these constructs are finalized.
  • Built with npx lerna run build --scope=@aws-cdk/aws-s3tables-alpha

Checklist


By submitting this pull request, I confirm that my contribution is made under the terms of the Apache-2.0 license

@github-actions github-actions bot added beginning-contributor [Pilot] contributed between 0-2 PRs to the CDK p2 labels Feb 27, 2025
@aws-cdk-automation aws-cdk-automation requested a review from a team February 27, 2025 00:46
Copy link
Collaborator

@aws-cdk-automation aws-cdk-automation left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The pull request linter fails with the following errors:

❌ Features must contain a change to an integration test file and the resulting snapshot.

If you believe this pull request should receive an exemption, please comment and provide a justification. A comment requesting an exemption should contain the text Exemption Request. Additionally, if clarification is needed, add Clarification Request to a comment.

@xuxey xuxey changed the title Add L2 constructs for Amazon S3 Tables feat: Add L2 constructs for Amazon S3 Tables Feb 27, 2025
@xuxey xuxey changed the title feat: Add L2 constructs for Amazon S3 Tables feat: support L2 constructs for Amazon S3 Tables Feb 27, 2025
@aws-cdk-automation
Copy link
Collaborator

AWS CodeBuild CI Report

  • CodeBuild project: AutoBuildv2Project1C6BFA3F-wQm2hXv2jqQv
  • Commit ID: 52bbd5e
  • Result: SUCCEEDED
  • Build Logs (available for 30 days)

Powered by github-codebuild-logs, available on the AWS Serverless Application Repository

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
beginning-contributor [Pilot] contributed between 0-2 PRs to the CDK p2
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants