Ruby:如何标记现有的AWS VPC

时间:2019-03-20 12:38:49

标签: ruby amazon-web-services tags aws-sdk vpc

出于某种目的,我需要使用自定义标签来标记现有的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",
    },
  ],
})

0 个答案:

没有答案