在路由53 AWS中,如何处理重复的子域

问题描述:

我正在使用Java API的亚马逊路由53创建动态子域。有没有什么办法可以在使用Recordset或Route53的API的域中找到预先存在的子域。在路由53 AWS中,如何处理重复的子域

例如,我将动态创建子域,像

  • ABC(abc.example.com)
  • XYZ(xyz.example.com)

会发生什么事我再次添加abc,xyz,或者如何找到使用java API的RecordSet中的子域已经处于活动状态。

使用listResourceRecordSets()获取托管区域的记录集列表,并检查该子域是否已经在该列表中。您可能可以过滤该列表以获取ListResourceRecordSetsRequest.withStartRecordName()所需的子域名。

+0

你能不能让我知道会发生什么,当我尝试添加相同的名称? – Charles

根据documentation,changeResourceRecordSets方法在AWS Route53 JavaSDK中用于创建,更改和删除记录集。如果您尝试添加现有记录集,则不会导致修改(因为记录集存在且更改为空)。

+0

但通过api它会抛出一个错误,所以我怎么能区分这在AmazonRoute53Client? – Charles

+0

它抛出的错误是什么? –

您可以使用kichik提到的listResourceRecordSets()。如果你尝试再次添加同一资源就会抛出com.amazonaws.services.route53.model.InvalidChangeBatchException包含异常消息

Tried to create resource record set [name='abc.example.com.', type='CNAME'] but it already exists (Service: AmazonRoute53; Status Code: 400; Error Code: InvalidChangeBatch; Request ID: **********)