文档首页> > 开发指南> Java> DNS Java SDK示例

DNS Java SDK示例

更新时间: 2018-11-26 14:28

DNS OpenStack4j示例

云解析(Domain Name Service)提供高可用,高扩展的权威DNS服务和DNS管理服务,把人们常用的域名或应用资源转换成计算机用于连接的IP地址,从而将最终用户路由到相应的应用资源上。

创建公网域名

下面代码为公网域名创建的过程,用户可以根据需求进行相应的参数配置,创建完成后,新创建的域名会在DNS服务的公网域名页面上显示。

public void CreateZones() {     
    ZoneBuilder builder = Builders.zone();     
    Zone zone = builder.name(Name).description(Description).email(Email).ttl(TTL).type(zone_type).build();     
    Zone zoneResult = osclient.dns().zones().create(zone);       
}
表1 参数说明

参数

参数说明

取值样例

Name

从域名注册商处获得的授权域名。

example.com

Email

可选参数。

管理该公网域名的管理员邮箱。建议用户使用保留邮箱“HOSTMASTER@域名”作为此管理员邮箱。

HOSTMASTER@example.com

Description

可选参数。

域名的描述信息。

长度不超过255个字符。

This is a zone example.

zone_type

域名类型,其值可以是公有的或私有的

  • public:互联网上的主机可访问的公网域名
  • private:专用网络域名只能访问指定的VPC中的主机。

    如果该值为空,将创建一个公共区域

public

ttl

记录集的有效缓存时间,以秒为单位。

默认值为300

此值的取值范围为300–2147483647

默认为“5min”,即300s。

删除公网域名

当用户无需使用云解析服务托管该公网域名时,可以使用删除公网域名功能。删除公网域名后,该公网域名包含的域名将无法再被解析。

public void DeleteZones() {     
    Zone deletedZone = osclient.dns().zones().delete(publicZone.getId());         
    logger.info("Delete zone: {}", deletedZone);     
    if (osclient.dns().zones().get(publicZone.getId()) == null) {    
        System.out.println("Confirmed delete zone");     
    }  
}

创建内网域名

用户在VPC内使用云解析服务进行内网域名托管,需使用增加内网域名功能,OpenStack4j允许创建一个内网域名。 详细操作如下:

  1. 指定需要关联的VPC。
  2. 创建内网域名。

下面代码为内网域名创建的过程,用户可以根据需求进行相应的参数配置,创建完成后,新增的域名会在DNS服务的内网域名页面上显示。

public void CreatePrivateZones() {     
    Router vpv = this.getFirstRouter();
    DesignateZone.Router router = new DesignateZone.Router(vpc.getId(),REGION, Status); 
    ZoneBuilder builder = Builders.zone();     
    Zone sourceZone = builder.name(Name).description(Description).email(Email).ttl(TTL).type(zone_type).router(router).build();     
    Zone zoneResult = osclient.dns().zones().create(sourceZone);         logger.info("Create zone: {}", zoneResult);  
}
表2 参数说明

参数

参数说明

取值样例

ROUTER_ID

内网域名要关联的VPC ID

cd27d47c-ad5a-40a7-8b54-3504a5885d55

REGION

选择要关联VPC的区域

eu-de

Status

VPC 状态信息

此值包括:PENDING_CREATE, ACTIVE, PENDING_DELETE, ERROR

-

Name

从域名注册商处获得的授权域名

example.com

Email

可选参数。

管理该内网域名的管理员邮箱。建议用户使用保留邮箱“HOSTMASTER@域名”作为此管理员邮箱。

HOSTMASTER@example.com

Description

可选参数。

域名的描述信息。

长度不超过255个字符。

This a public zone.

zone_type

域名类型,其值可以是公有的或私有的

  • public:互联网上的主机可访问的公网域名
  • private:专用网络域名只能访问指定的VPC中的主机

如果该值为空,将创建一个公共区域

private

ttl

记录集的有效缓存时间,以秒为单位。

默认值为300

此值的取值范围为300–2147483647

默认为“5min”,即300s。

关联VPC

当用户创建的内网域名需要关联VPC时,可以利用OpenStack4j在云平台上进行关联操作。 详细操作如下:

  1. 指定需要关联的VPC。
  2. 选择待关联VPC的内网域名并进行关联。
public void AssociateRouter() {     
    router2 = osclient.networking().router().list().get(1);
    DesignateZone.Router router = new DesignateZone.Router(router2.getId(),REGION, Status);     
    DesignateZone.Router routerResult = osclient.dns().zones().associateRouter(privateZone.getId(),router);     
    logger.info("Associate router: {}", routerResult);
}

解关联VPC

当用户创建的内网域名不需要关联某个VPC时,可以利用OpenStack4j进行进行解关联操作。代码如下:

public void DisassociateRouter() {      
    getZone();
    DesignateZone.Router router = new DesignateZone.Router(this.getFirstRouter().getId(), REGION, null);      
    DesignateZone.Router routerResult = osclient.dns().zones().disassociateRouter(privateZone.getId(), router);      
    logger.info("Disassociate router: {}", routerResult);     
}

删除内网域名

当用户无需使用云解析服务托管该内网域名时,可以使用删除内网域名功能。删除内网域名后,该内网域名包含的域名将无法再被解析。

执行删除内网域名操作前,请确认已备份该内网域名下所有用户创建的记录集。代码如下:

public void DeleteZones() {     
    Zone deletedZone = osclient.dns().zones().delete(privateZone.getId());         
    logger.info("Delete zone: {}", deletedZone);     
    if (osclient.dns().zones().get(privateZone.getId()) == null) {   
        System.out.println("Confirmed delete zone");     
    }  
}

文档是否有解决您的问题?

提交成功!

非常感谢您的反馈,我们会继续努力做到更好!

反馈提交失败,请稍后再试!

在文档使用中是否遇到以下问题







请至少选择或填写一项反馈信息

字符长度不能超过100

反馈内容不能为空!

提交反馈 取消

如您有其它疑问,您也可以通过华为云社区问答频道来与我们联系探讨

跳转到云社区
点我,12·12惊喜等着你哦~