ruby 检查AWS route53中托管区域中是否存在CNAME

44u64gxh  于 2023-03-03  发布在  Ruby
关注(0)|答案(1)|浏览(131)

如何检查托管区域中是否已存在CNAME?

client = Aws::Route53::Client.new(region: "us-west-2", access_key_id: aws_access_key_id, secret_access_key: aws_secret_access_key, session_token: aws_session_token)

字符串
这给了我所有的托管区域。我已经搜索了很多,但我找不到任何方法来检查是否有一个CName存在于托管区域。唯一的link,我发现其中有所有的方法相关的aws route53

client.list_hosted_zones.hosted_zones

oymdgrw7

oymdgrw71#

list_resource_record_sets是要使用的SDK方法。
首先,您需要使用list_resource_record_sets从区域中获取资源记录列表。查询有点奇怪,结果以alpha顺序出现,如果提供start_record_type,则需要提供start_record_name

client = Aws::Route53::Client.new(region: "us-west-2", access_key_id: aws_access_key_id, secret_access_key: aws_secret_access_key, session_token: aws_session_token)

hosted_zone_id = "WHATEVERONEIDIS"

records = client.list_resource_record_sets(hosted_zone_id: hosted_zone_id, 
           start_record_type: "CNAME", 
           start_record_name: "A"
           max_items: 1)

字符串
这将得到以CNAME开始的单个记录(如果存在的话)。
你只需要检查结果。

cname = records.resource_record_sets.select{ |r| r.type ==  "CNAME"}.first


如果cname为nil --没有cname记录。

相关问题