使用boto3为S3存储桶添加额外的标签

时间:2017-11-09 16:03:17

标签: python amazon-web-services amazon-s3 boto3

目前我正在使用boto3标记每个S3存储桶。与像Lambdas这样的资源相比,执行s3.put_bucket_tagging会覆盖任何以前的标记,而Lambdas只会在保留旧标记的同时添加额外的标记。有没有办法只添加标签,而不是覆盖它们?

其次,我创建了一个方法来获取当前标记,添加新标记,然后用这些值覆盖标记,这样我就不会丢失任何标记。但是这些S3存储桶中的一些是由CloudFormation创建的,因此以aws:为前缀,当我尝试使用旧标记并使用新标记重新添加它们时,会给出错误Your TagKey cannot be prefixed with aws:

对其中任何一个进行修复,使我能够自动标记每个s3存储桶,这将是最佳解决方案。

1 个答案:

答案 0 :(得分:2)

你运气不好。如果S3存储桶是由CFT创建的,那么

  • 您无法添加新标签或
  • 添加新标记并丢失由CFT创建的标记(然后删除堆栈将失败,除非您从删除中排除该S3资源)

您可以尝试使用@jarmod

建议的新标签更新堆栈