【问题标题】:How to create a CNAME Record with AWS SDK如何使用 AWS 开发工具包创建 CNAME 记录
【发布时间】:2020-12-01 06:18:38
【问题描述】:


我可以通过 AWS 控制台创建 CNAME 记录,没问题,见上图。但是当我尝试使用 AWS Route53 SDK 以编程方式做同样的事情时,我不断得到一个

com.amazonaws.services.route53.model.InvalidInputException:无效 请求(服务:AmazonRoute53;状态代码:400;错误代码: 输入无效;请求 ID:7fd7b5d1-5ea8-11e8-a252-7f474094c446)

这是我尝试的代码

    private static final String QA_HOSTED_ZONE_ID = "UUIDFromConsole";                

    GetHostedZoneRequest getHostedZoneRequest = new GetHostedZoneRequest(HOSTED_ZONE_ID);
        GetHostedZoneResult result = route53Client.getHostedZone(getHostedZoneRequest);
        ResourceRecordSet resourceRecordSet = new 
        ResourceRecordSet("DN4TheRecordSet", RRType.CNAME);
        GeoLocation geoLocation = new GeoLocation();
        geoLocation.setContinentCode("NA");
        geoLocation.setSubdivisionCode("NY");
        resourceRecordSet.setGeoLocation(geoLocation);
        resourceRecordSet.setTTL(50L);
        resourceRecordSet.setGeoLocation(geoLocation);
        resourceRecordSet.setSetIdentifier("uniqueid-statecode");Change addStateChange = new Change(ChangeAction.CREATE, resourceRecordSet);
        ChangeBatch changeBatch = new ChangeBatch(Arrays.asList(addStateChange));
        ChangeResourceRecordSetsRequest changeResourceRecordSetsRequest = new ChangeResourceRecordSetsRequest().withHostedZoneId(HOSTED_ZONE_ID).withChangeBatch(changeBatch);
        route53Client.changeResourceRecordSets(changeResourceRecordSetsRequest);

我也无法配置 CNAME 的值,这意味着我想在流量到达 DN4TheRecordSet 后将其重定向到哪里。这可能是我在响应中收到无效错误的原因。

请帮忙????

【问题讨论】:

    标签: java amazon-web-services aws-sdk amazon-route53


    【解决方案1】:

    发现问题。

    InvalidInputException 逃避了缺少ResourceRecord 的事实,它对应于上图中的值字段。

    这是上面的解决方案,将ResourceRecord 添加到ResourceRecordSet

    private static final String QA_HOSTED_ZONE_ID = "UUIDFromConsole";                
    private static final String REDIRECT_DNS = "DNS to want the cname to route to";
    GetHostedZoneRequest getHostedZoneRequest = new GetHostedZoneRequest(HOSTED_ZONE_ID);
        GetHostedZoneResult result = route53Client.getHostedZone(getHostedZoneRequest); ResourceRecordSet resourceRecordSet = new ResourceRecordSet("DN4TheRecordSet", RRType.CNAME);
        GeoLocation geoLocation = new GeoLocation();
        geoLocation.setContinentCode("NA");
        geoLocation.setSubdivisionCode("NY");
        resourceRecordSet.setGeoLocation(geoLocation);
        resourceRecordSet.setTTL(50L);
        resourceRecordSet.setGeoLocation(geoLocation);
        resourceRecordSet.setSetIdentifier("uniqueid-statecode");
        resourceRecordSet.setResourceRecords(Arrays.asList(new ResourceRecord(REDIRECT_DNS))); // This line being missing cause the exception
        Change addStateChange = new Change(ChangeAction.CREATE, resourceRecordSet);
        ChangeBatch changeBatch = new ChangeBatch(Arrays.asList(addStateChange));
        ChangeResourceRecordSetsRequest changeResourceRecordSetsRequest = new ChangeResourceRecordSetsRequest().withHostedZoneId(HOSTED_ZONE_ID).withChangeBatch(changeBatch);
        route53Client.changeResourceRecordSets(changeResourceRecordSetsRequest);
    

    请参阅此 page 中的地理位置语法部分,了解 sdk 为您的请求创建和发送的负载示例。

    【讨论】:

      猜你喜欢
      • 2021-09-05
      • 1970-01-01
      • 1970-01-01
      • 2018-05-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-10-29
      • 1970-01-01
      相关资源
      最近更新 更多