使用某些第三方工具(如Terraform)时,指定AWS CLI配置文件并不容易,我更喜欢使用环境变量而不是配置文件.
我有没有办法让AWS CLI只将当前配置文件AWS_ACCESS_KEY_ID和AWS_SECRET_KEY环境变量导出到我的会话?
我的CDK文件中有以下代码块:
\nconst artifactBucket = new s3.Bucket(this, "MyBucket", {\n bucketName: "cdk-cws-pipeline-artifacts",\n removalPolicy: cdk.RemovalPolicy.DESTROY,\n versioned: true, // a bucket used as a source in CodePipeline must be versioned\n});\n\n// code omitted for brevity\n\nconst pipeline = new codepipeline.Pipeline(this, "Pipeline", {\n artifactBucket: artifactBucket,\n // code omitted for brevity\n});\nRun Code Online (Sandbox Code Playgroud)\n一切都工作正常,直到我尝试删除堆栈。我收到这个错误:
\nAre you sure you want to delete: cdk-staging-CwsPipeline (y/n)? y\ncdk-staging-CwsPipeline: destroying...\n6:11:42 PM | DELETE_FAILED | AWS::S3::Bucket | MyBucketF68F3FF0\nThe bucket you tried to delete is not empty. You must delete all versions …Run Code Online (Sandbox Code Playgroud) 当我尝试使用以下行删除存储桶时:
conn = boto.connect_s3(AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY)
print conn.delete_Bucket('BucketNameHere').message
Run Code Online (Sandbox Code Playgroud)
它告诉我我试图删除的桶不是空的.
水桶没有钥匙.但它确实有版本.
如何删除版本?
我可以看到使用bucket.list_versions()的版本列表
Java在其s3连接上有一个deleteVersion方法.我在这里找到了代码:
http://bytecoded.blogspot.com/2011/01/recursive-delete-utility-for-version.html
他这行删除版本:
s3.deleteVersion(new DeleteVersionRequest(bucketName, keyName, versionId));
Run Code Online (Sandbox Code Playgroud)
在博托有什么可比性的吗?
我想在AWS S3中删除十几个桶,它们都有一个类似的名称,其中包含bucket-to-remove一些对象.
使用UI非常慢,是否有使用CLI快速删除所有这些存储桶的解决方案?