出于某种目的,我需要使用自定义标签来标记现有的AWS VPC。
我了解了创建VPC时如何标记VPC的方法,但是与标记现有VPC无关。
我在现有代码中可以使用的对象是EC2,RDS和自动伸缩组(当然还有它们的属性),因此我要标记所有实例和RDS,而要标记其VPC。
edit:知道了,这里是有人需要的时候,我通过环境标签('tag:environment')过滤VPC,并且environment_filter_list包含环境的全名,例如dev01-eu-west-1
ec2 = Aws::EC2::Client.new(region: 'eu-west-1', retry_limit: 10, retry_jitter: :full, retry_base_delay: 5)
vpc_response = ec2.describe_vpcs(filters:[{ name: 'tag:environment', values: environment_filter_list }])
vpc_id = vpc_response.data.vpcs[0].vpc_id
#when you have multiple environments in filter list, you should instead of previous line iterate like this and put tag for each vpc id in vpc_hash:
#vpc_hash = {}
#vpc_response.data.vpcs.each do |vpc|
#vpc_name = name_from_tag(vpc)
#vpc_hash[vpc.vpc_id] = vpc_name if vpc_name
#end
resp = ec2.create_tags({
resources: [
vpc_id,
],
tags: [
{
key: "StopDate",
value: "20190321",
},
],
})