目前,我正在使用 boto3 标记我拥有的每个 S3 存储桶。与 Lambda 之类的资源相比,执行 s3.put_bucket_tagging
会覆盖之前的所有标签,而 Lambda 则仅添加额外标签,同时保留旧标签。有没有办法只添加标签,而不是覆盖它们?
其次,我创建了一个方法来获取当前标签,添加新标签,然后用这些值覆盖标签,这样我就不会丢失任何标签。但其中一些 S3 存储桶是由 CloudFormation 创建的,因此带有 aws:
前缀,当我尝试获取时,会出现错误 Your TagKey cannot be prefixed with aws:
旧标签并重新贴上新标签。
对其中任何一个进行修复,让我能够自动标记每个 s3 存储桶将是最好的解决方案。
最佳答案
你运气不好。如果 S3 存储桶是由 CFT 创建的,则
- 您无法添加新标签或
- 添加新标签并丢失 CFT 创建的标签(除非您将该 S3 资源排除在删除之外,否则您的删除堆栈将会失败)
您可以尝试按照@jarmod的建议使用新标签更新堆栈
关于python - 使用 boto3 向 S3 存储桶添加额外标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47206395/