示例1:创建公网域名解析
场景描述
当您想在Internet上通过域名访问您的网站时,可以通过华为云的云解析服务为域名添加解析记录。
下面介绍如何通过调用创建单个公网Zone和创建单个Record Set接口创建公网域名和添加记录集。API的调用方法请参见如何调用API。
通过IAM服务获取到的Token有效期为24小时,需要使用同一个Token鉴权时,可以先将Token缓存,避免频繁调用。
前提条件
涉及API
当您使用Token认证方式完成认证鉴权时,需要获取用户Token并在调用接口时增加“X-Auth-Token”到业务接口请求消息头中。
- IAM获取token的API
- DNS创建公网Zone的API
- DNS创建Record Set的API
具体步骤
- Token认证,具体操作请参考认证鉴权。
- 在Request Header中增加“Content-Type”和“X-Auth-Token”。
- 在Request Body中传入参数如下:
{ "name": "example.com.", //域名(必选String) "description": "This is an example zone.", //域名的描述信息(可选String) "zone_type": "public", //域名类型(可选String) "email": "xx@example.org", //管理该域名的管理员邮箱(可选String) "ttl": 300, //默认生成的SOA记录中有效缓存时间(可选String) }
- 发送“POST https://DNS的Endpoint/v2/zones”。
- 请求消息发送后,收到响应消息。
- 响应消息包括成功和失败两类情况,本文以响应成功为例进行介绍。
- 若请求消息响应失败则会返回错误码及对应的错误信息说明,详细错误码信息请参见错误码。
- 响应消息的要素说明请参见创建单个公网Zone。
- 响应消息的返回值请参见状态码。
请求成功的响应消息举例如下:
STATUS CODE 202
{ "id": "2c9eb155587194ec01587224c9f90149", "name": "example.com.", "description": "This is an example zone.", "email": "xx@example.com", "ttl": 300, "serial": 1, "masters": [], "status": "PENDING_CREATE", "links": { "self": "https://Endpoint/v2/zones/2c9eb155587194ec01587224c9f90149" }, "pool_id": "00000000570e54ee01570e9939b20019", "project_id": "e55c6f3dc4e34c9f86353b664ae0e70c", "zone_type": "public", "created_at": "2016-11-17T11:56:03.439", "updated_at": null, "record_num": 0 }
- 在Request Header中增加“Content-Type”和“X-Auth-Token”。
- 在Request Body中传入参数如下:
{ "name": "example.com.", //域名(必选String) "description": "This is an example record set.", //记录集的描述信息(可选String) "type": "A", //记录集类型(必选String) "ttl": 3600, //记录集有效缓存时间(可选Integer) "records": [ "192.168.10.1", "192.168.10.2" ] //记录集的值(必选List<String>) }
- 发送“POST https://DNS的Endpoint/v2/zones/{zone_id}/recordsets”,其中,zone_id为待添加记录集的域名ID。
- 请求消息发送后,收到响应消息。
STATUS CODE 202
{ "id": "2c9eb155587228570158722b6ac30007", "name": "example.com.", "description": "This is an example record set.", "type": "A", "ttl": 300, "records": [ "192.168.10.1", "192.168.10.2" ], "status": "PENDING_CREATE", "links": { "self": "https://Endpoint/v2/zones/2c9eb155587194ec01587224c9f90149/recordsets/2c9eb155587228570158722b6ac30007" }, "zone_id": "ff8080825b8fc86c015b94bc6f8712c3", "zone_name": "example.com.", "create_at": "2017-04-22T08:17:08.997", "update_at": null, "default": false, "project_id": "e55c6f3dc4e34c9f86353b664ae0e70c" }