2017-10-12 5 views
0

私はIP 10.20.30.40 ポイントserverBase.mydomain.netのレコードを持っている。しかし、私はAレコードをServerProxyはどのポイントを作成したい場合に提供正常に動作し、次のコードを持っていますIP(コメントアウト行のスワップ)、それはエラーを与えるに:それは間違っているコードで何かあるようプログラム的

"Tried to create an alias that targets 10.20.30.40., type A in zone ********* , but the alias target name does not lie within the target zone"

私はこれを手動で行うことができますか?

String subDomainName = "serverProxy.mydomain.net"; 
    String zoneId = "**********"; 
    //String target = "serverBase.mydomain.net"; 
    String target = "10.20.30.40"; 

    AmazonRoute53Client client = getAmazonRoute53Client(); 
    List<Change> changes = new ArrayList<Change>(); 
    List<ResourceRecord> recourceRecords = new ArrayList<>(); 
    ResourceRecordSet resourceRecordSet = new ResourceRecordSet(subDomainName+".",RRType.A); 

    //AliasTarget alias = new AliasTarget(zoneId, target); 
    //alias.setEvaluateTargetHealth(false); 
    //resourceRecordSet.setAliasTarget(alias); 

    changes.add(new Change(ChangeAction.CREATE, resourceRecordSet)); 
    ChangeBatch changeBatch = new ChangeBatch(changes); 

    try { 
     ChangeResourceRecordSetsRequest changeResourceRecordSetsRequest = new ChangeResourceRecordSetsRequest(zoneId, changeBatch); 
     client.changeResourceRecordSets(changeResourceRecordSetsRequest); 
    } 
    catch(Exception e) 
    { 
     System.out.println(e.getMessage()); 
     e.printStackTrace(); 
    } 

答えて

1

ALIASレコードセットはDNS名のみを指すことができます。 IPアドレスを直接指すことはできません。

IPアドレスを指すレコードを作成する場合は、Aレコードを作成します。

+0

私が作成しようとしているAレコードです。私はこれをResourceRecordSet resourceRecordSet = new ResourceRecordSet(subDomainName + "。"、RRType.A)で指定します。しかし、それは動作しません:( – MayoMan

+0

しかし、あなたはレコードに 'AliasTarget'を設定しています –

+0

私はそれがエイリアスターゲットについてのエラーの話として問題になるかもしれません。あなたの助けをありがとう:) – MayoMan

0
String zoneId = "myzoneID"; 
    String cname = "myserver.mydomain.net"; 

    AmazonRoute53Client client = getAmazonRoute53Client(); 
    List<Change> changes = new ArrayList<>(); 

    Change change = new Change() 
      .withAction(ChangeAction.CREATE) 
      .withResourceRecordSet(new ResourceRecordSet() 
        .withType(RRType.CNAME) 
        .withName(cname) 
        .withTTL(300L) 
        .withResourceRecords(new ResourceRecord("10.20.30.40"))); 

    changes.add(change); 
    ChangeBatch changeBatch = new ChangeBatch(changes); 
    try { 
     ChangeResourceRecordSetsRequest changeResourceRecordSetsRequest = new ChangeResourceRecordSetsRequest(zoneId, changeBatch); 
     client.changeResourceRecordSets(changeResourceRecordSetsRequest); 
     logback.info("DNS Record " + cname + " created"); 
    } 
    catch(InvalidChangeBatchException icbe) 
    { 
     String error = icbe.getMessage(); 
     if(error.contains("already exists")) 
     { 
      logback.info("DNS Record already exists"); 
     } 
     else 
     { 
      throw icbe; 
     } 
    } 
+0

通常、 'ALIAS'のようなDNS名を参照する' CNAME'を作成します。 IPの場合、それらは「A」レコードでなければなりません。 –