Ruby: как пометить существующий AWS VPC - PullRequest
1 голос
/ 20 марта 2019

Мне нужно для какой-то цели пометить существующий AWS VPC пользовательским тегом.

Я узнал, как пометить VPC при его создании, но ничего о маркировке существующего VPC.

Объекты, которые яВ существующем коде есть EC2, RDS и группы автоматического масштабирования (и, конечно, их атрибуты), поэтому вместо того, чтобы пометить все экземпляры и RDS, я бы хотел пометить их VPC.

edit: получил, вот оноесли кто-то в этом нуждается, я фильтрую VPC по тегу среды ('tag: environment'), а 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",
    },
  ],
})
...