阅读本文,您可以获取 Go SDK DNS 管理的接口调用示例,实现快速开发。
说明
本文的调用示例包含接口的部分参数。由于参数间可能存在互斥关系,在调用时,请您参考注释,进行调整。
调用接口前,请先完成 Go SDK 的安装及初始化操作。
本节为您介绍DNS 管理相关接口的功能和调用示例。
您可以调用 CreateDNSRule 接口创建 DNS 规则 CreateDNSRule。详细的参数说明可参见 CreateDNSRule 接口文档。
接口调用示例如下所示。
package main import ( "context" "fmt" "os" "github.com/volcengine/volc-sdk-golang/base" ACEP "github.com/volcengine/volc-sdk-golang/service/acep" ) func StringPtr(v string) *string { return &v } func Int32Ptr(v int32) *int32 { return &v } func main() { // 强烈建议不要把 VOLC_ACCESSKEY 和 VOLC_SECRETKEY 保存到工程代码里,否则可能导致 AccessKey 泄露,威胁您账号下所有资源的安全。 // 本示例通过从环境变量中读取 VOLC_ACCESSKEY 和 VOLC_SECRETKEY,来实现 API 访问的身份验证。运行代码示例前,请配置环境变量 VOLC_ACCESSKEY 和 VOLC_SECRETKEY service := ACEP.NewInstance() service.SetCredential(base.Credentials{ AccessKeyID: os.Getenv("VOLC_ACCESSKEY"), SecretAccessKey: os.Getenv("VOLC_SECRETKEY"), }) body := &ACEP.CreateDNSRuleBody{ // 业务 ID,可在「云手机控制台-业务管理-业务详情」中获取。 ProductID: `1749281594201xxxxxx`, // 机房 ID, 可通过 ListDc 接口获取。 Dc: `tjtj-xxxxxx`, // DNS 规则名称,支持中英文、数字、下划线、中划线,长度限制为 0~64个字符。 DNSName: StringPtr(`test-dns-name`), // 指定同一机房内创建的实例是否默认使用该 DNS 解析规则。 // <li> 0:默认值,不使用该 DNS 规则; </li> // <li> 1:使用该 DNS 规则。 </li> // > 同一个业务的单个 Dc 维度只支持一个默认的 DNS 策略。 Type: Int32Ptr(0), } // DNS 地址列表,参看 IPInfo 数据结构说明。 IPList1 := ACEP.CreateDNSRuleBodyIPListItem{ // IP 地址。 IP: `8.8.8.8`, // 运营商: // <li> 1:移动; </li> // <li> 2:联通; </li> // <li> 4:电信; </li> // <li> 8:BGP。 </li> ISP: 1, } body.IPList = append(body.IPList, IPList1) resp, err := service.CreateDNSRule(context.Background(), body) if err != nil { fmt.Printf("error %v", err) } else { fmt.Printf("success %+v", resp) } }
您可以调用 UpdateDNSRule 接口更新 DNS 规则 UpdateDNSRule。详细的参数说明可参见 UpdateDNSRule 接口文档。
接口调用示例如下所示。
package main import ( "context" "fmt" "os" "github.com/volcengine/volc-sdk-golang/base" ACEP "github.com/volcengine/volc-sdk-golang/service/acep" ) func StringPtr(v string) *string { return &v } func Int32Ptr(v int32) *int32 { return &v } func main() { // 强烈建议不要把 VOLC_ACCESSKEY 和 VOLC_SECRETKEY 保存到工程代码里,否则可能导致 AccessKey 泄露,威胁您账号下所有资源的安全。 // 本示例通过从环境变量中读取 VOLC_ACCESSKEY 和 VOLC_SECRETKEY,来实现 API 访问的身份验证。运行代码示例前,请配置环境变量 VOLC_ACCESSKEY 和 VOLC_SECRETKEY service := ACEP.NewInstance() service.SetCredential(base.Credentials{ AccessKeyID: os.Getenv("VOLC_ACCESSKEY"), SecretAccessKey: os.Getenv("VOLC_SECRETKEY"), }) body := &ACEP.UpdateDNSRuleBody{ ProductID: `1749281594201xxxxxx`, // DNS 规则 ID,可通过调用 ListDNSRule 接口获取。 DNSID: `dns-xxx`, // DNS 规则名称,支持中英文、数字、下划线、中划线,长度限制为0~64个字符。 DNSName: StringPtr(`test-dns-name`), // DNS 规则类型: // <li> 0:非默认 DNS; </li> // <li> 1:默认 DNS。 </li> // > 同一个业务的单个 Dc 维度只支持一个默认的 DNS 策略。 Type: Int32Ptr(0), } // DNS 地址列表,参看 IPInfo 数据结构说明。 IPList1 := ACEP.UpdateDNSRuleBodyIPListItem{ // IP 地址。 IP: `8.8.8.8`, // 运营商: // <li> 1:移动; </li> // <li> 2:联通; </li> // <li> 4:电信; </li> // <li> 8:BGP。 </li> ISP: 1, } body.IPList = append(body.IPList, &IPList1) resp, err := service.UpdateDNSRule(context.Background(), body) if err != nil { fmt.Printf("error %v", err) } else { fmt.Printf("success %+v", resp) } }
您可以调用 DeleteDNSRule 接口删除 DNS 规则 DeleteDNSRule。详细的参数说明可参见 DeleteDNSRule 接口文档。
接口调用示例如下所示。
package main import ( "context" "fmt" "os" "github.com/volcengine/volc-sdk-golang/base" ACEP "github.com/volcengine/volc-sdk-golang/service/acep" ) func main() { // 强烈建议不要把 VOLC_ACCESSKEY 和 VOLC_SECRETKEY 保存到工程代码里,否则可能导致 AccessKey 泄露,威胁您账号下所有资源的安全。 // 本示例通过从环境变量中读取 VOLC_ACCESSKEY 和 VOLC_SECRETKEY,来实现 API 访问的身份验证。运行代码示例前,请配置环境变量 VOLC_ACCESSKEY 和 VOLC_SECRETKEY service := ACEP.NewInstance() service.SetCredential(base.Credentials{ AccessKeyID: os.Getenv("VOLC_ACCESSKEY"), SecretAccessKey: os.Getenv("VOLC_SECRETKEY"), }) body := &ACEP.DeleteDNSRuleBody{ // 业务 ID,可在「云手机控制台-业务管理-业务详情」中获取。 ProductID: `1749281594201xxxxxx`, // DNS 规则 ID,可通过调用 ListDNSRule 接口获取。 DNSID: `dns-xxx`, } resp, err := service.DeleteDNSRule(context.Background(), body) if err != nil { fmt.Printf("error %v", err) } else { fmt.Printf("success %+v", resp) } }
您可以调用 DetailDNSRule 接口查询 DNS 规则详情 DetailDNSRule。详细的参数说明可参见 DetailDNSRule 接口文档。
接口调用示例如下所示。
package main import ( "context" "fmt" "os" "github.com/volcengine/volc-sdk-golang/base" ACEP "github.com/volcengine/volc-sdk-golang/service/acep" ) func main() { // 强烈建议不要把 VOLC_ACCESSKEY 和 VOLC_SECRETKEY 保存到工程代码里,否则可能导致 AccessKey 泄露,威胁您账号下所有资源的安全。 // 本示例通过从环境变量中读取 VOLC_ACCESSKEY 和 VOLC_SECRETKEY,来实现 API 访问的身份验证。运行代码示例前,请配置环境变量 VOLC_ACCESSKEY 和 VOLC_SECRETKEY service := ACEP.NewInstance() service.SetCredential(base.Credentials{ AccessKeyID: os.Getenv("VOLC_ACCESSKEY"), SecretAccessKey: os.Getenv("VOLC_SECRETKEY"), }) body := &ACEP.DetailDNSRuleBody{ // 业务 ID,可在「云手机控制台-业务管理-业务详情」中获取。 ProductID: `1749281594201xxxxxx`, // DNS 规则 ID,可通过调用 ListDNSRule 接口获取。 DNSID: `dns-xxx`, } resp, err := service.DetailDNSRule(context.Background(), body) if err != nil { fmt.Printf("error %v", err) } else { fmt.Printf("success %+v", resp) } }
您可以调用 ListDNSRule 接口查询 DNS 规则列表 ListDNSRule。详细的参数说明可参见 ListDNSRule 接口文档。
接口调用示例如下所示。
package main import ( "context" "fmt" "os" "github.com/volcengine/volc-sdk-golang/base" ACEP "github.com/volcengine/volc-sdk-golang/service/acep" ) func StringPtr(v string) *string { return &v } func Int32Ptr(v int32) *int32 { return &v } func Int64Ptr(v int64) *int64 { return &v } func main() { // 强烈建议不要把 VOLC_ACCESSKEY 和 VOLC_SECRETKEY 保存到工程代码里,否则可能导致 AccessKey 泄露,威胁您账号下所有资源的安全。 // 本示例通过从环境变量中读取 VOLC_ACCESSKEY 和 VOLC_SECRETKEY,来实现 API 访问的身份验证。运行代码示例前,请配置环境变量 VOLC_ACCESSKEY 和 VOLC_SECRETKEY service := ACEP.NewInstance() service.SetCredential(base.Credentials{ AccessKeyID: os.Getenv("VOLC_ACCESSKEY"), SecretAccessKey: os.Getenv("VOLC_SECRETKEY"), }) body := &ACEP.ListDNSRuleBody{ // 业务 ID,可在「云手机控制台-业务管理-业务详情」中获取。 ProductID: `1749281594201xxxxxx`, // DNS 规则 名称,支持中英文、数字、下划线、中划线,长度限制为 0~64 个字符。 DNSName: StringPtr(`test-dns-name`), // 是否为默认 DNS: // <li> 0:非默认 DNS; </li> // <li> 1:默认 DNS。 </li> Type: Int32Ptr(0), // 查询结果的起始位置,用于指定从哪一条记录开始返回数据。例如,若 Offset 为 10,则表示从第 11 条记录开始。默认值为 0。 // note: // 可与 Count 配合使用。假设当前数据集的记录总数为 200 条,如需查询第 101~150 条数据,需设置 Offset 为 100,Count 为 50。 Offset: Int64Ptr(0), // 单次查询返回的最大记录数,用于控制每次查询返回的数据量。例如,若 Count 为 100,则表示在查询数据时,系统将每次返回 100 条记录。 // note: // 可与 Offset 配合使用。假设当前数据集的记录总数为 200 条,如需查询第 101~150 条数据,需设置 Offset 为 100,Count 为 50。 Count: Int64Ptr(10), } resp, err := service.ListDNSRule(context.Background(), body) if err != nil { fmt.Printf("error %v", err) } else { fmt.Printf("success %+v", resp) } }