基于文档:
Amazon S3 存储桶名称是全球唯一的,并且命名空间由所有 AWS 账户共享。这意味着创建存储桶后,该存储桶的名称不能被任何 AWS 区域中的另一个 AWS 账户使用,直到该存储桶被删除
创建 S3 存储桶时,这bucketName
是可选的。如果您遗漏,bucketName
将为您生成一个唯一的存储桶名称。
cdk 项目中的其他资源可以通过引用获取存储桶名称。
例子:
import * as cdk from '@aws-cdk/core';
import * as s3 from '@aws-cdk/aws-s3';
import * as glue from '@aws-cdk/aws-glue';
export class MyStack extends cdk.Stack {
constructor(scope: cdk.Construct, id: string, props?: cdk.StackProps) {
super(scope, id, props);
// Generate a random bucket name that starts with your cdk stack name
const bucket = new s3.Bucket(this, 'MyBucket');
const database = new glue.Database(this, 'MyDatabase', {
databaseName: 'my_database'
});
new glue.Table(this, 'MyTable', {
database: database,
bucket: bucket, // Takes details from the bucket created
s3Prefix: 'my-table/'
// other table details...
});
}
}