You need to enable JavaScript to run this app.
文档中心
云手机

云手机

复制全文
下载 pdf
网络配置与管理
DNS 管理
复制全文
下载 pdf
DNS 管理

阅读本文,您可以获取 Go SDK DNS 管理的接口调用示例,实现快速开发。

说明

本文的调用示例包含接口的部分参数。由于参数间可能存在互斥关系,在调用时,请您参考注释,进行调整。

调用说明

  • 本文提供的接口调用示例均通过 AK 和 SK 初始化实例。
  • 接口的参数说明和错误码等信息可通过接口文档查看。

前提条件

调用接口前,请先完成 Go SDK 的安装及初始化操作。

调用示例

本节为您介绍DNS 管理相关接口的功能和调用示例。

创建 DNS 规则 CreateDNSRule

您可以调用 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)
	}
}

更新 DNS 规则 UpdateDNSRule

您可以调用 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)
	}
}

删除 DNS 规则 DeleteDNSRule

您可以调用 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)
	}
}

查询 DNS 规则详情 DetailDNSRule

您可以调用 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)
	}
}

查询 DNS 规则列表 ListDNSRule

您可以调用 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)
	}
}

最近更新时间:2024.10.29 19:42:44
这个页面对您有帮助吗?
有用
有用
无用
无用