下面的代码不时地给我AWS API超时错误。它将aws卷标签逐个传输到快照标签。我认为这个+其他api请求重载api队列。我想知道是否有任何方法来构建ec2Client。create_tags命令与所有标签在其中,并执行它,而不是循环它为每个标签如下?
inst.tags.each do |tag|
puts "Tag Key : #{tag.key} , Tag Value : #{tag.value}n"
if tag.key.downcase != "backup"
ec2Client.create_tags({
dry_run: $dry_run,
resources: [newImage.image_id],
tags: [{
key: "#{tag.key}",
value: "#{tag.value}",
},],
})
end
sleep (1.0/2.0)
end
我还没有测试过这个,但是类似这样的东西应该返回所有标记的数组并将其传递给create_tags方法。
def create_tags(tags)
tag_list = []
tags.each do |tag|
puts "Tag Key : #{tag.key} , Tag Value : #{tag.value}n"
unless tag.key.casecmp('backup').zero?
tag_list << { key: tag.key.to_s, value: tag.value.to_s }
end
end
end
ec2Client.create_tags(dry_run: $dry_run,
resources: [newImage.image_id],
tags: create_tags(inst.tags))