最近更新时间:2024.04.15 11:37:00
首次发布时间:2023.12.28 21:21:52
阅读本文,您可以获取 Go SDK 限额管理的接口调用示例,实现快速开发。
说明
本文的调用示例包含接口的全部参数。由于参数间可能存在互斥关系,在调用时,请您参考注释,进行调整。
调用接口前,请先完成 Go SDK 的安装及初始化操作
本节为您介绍限额管理相关接口的功能和调用示例。
您可以调用 UpdateStreamQuotaConfig 接口添加或更新推拉流限额配置。详细的参数说明可参见 UpdateStreamQuotaConfig 接口文档。
接口调用示例如下所示。
package main import ( "os" "context" "fmt" "github.com/volcengine/volc-sdk-golang/base" "github.com/volcengine/volc-sdk-golang/service/live/v20230101" ) func main () { // 强烈建议不要把 AccessKey ID 和 AccessKey Secret 保存到工程代码里,否则可能导致 AccessKey 泄露,威胁您账号下所有资源的安全。 // 本示例通过从环境变量中读取 AccessKey ID 和 AccessKey Secret,来实现 API 访问的身份验证。运行代码示例前,请配置环境变量 ACCESS_KEY_ID 和 ACCESS KEY_SECRET service := live_v20230101.NewInstance() service.SetCredential(base.Credentials{ AccessKeyID: os.Getenv("ACCESS_KEY_ID"), SecretAccessKey: os.Getenv("ACCESS_KEY_SECRET"), }) body := &live_v20230101.UpdateStreamQuotaConfigBody{} //需要配置限额的推流域名或拉流域名。您可以调用 [ListDomainDetail](https://www.volcengine.com/docs/6469/1126815) 接口或在视频直播控制台的[域名管理](https://console-stable.volcanicengine.com/live/main/domain/list)页面,查看域名信息。 body.Domain = "live.push.example.com" //限额配置详情。 updateStreamQuotaConfigBodyQuotaDetailListItem := live_v20230101.UpdateStreamQuotaConfigBodyQuotaDetailListItem{} //拉流域名的带宽限额配置。 // note: // `Domain` 为拉流域名时,本参数为必选参数。 updateStreamQuotaConfigBodyQuotaDetailListItemBandwidthConfig := live_v20230101.UpdateStreamQuotaConfigBodyQuotaDetailListItemBandwidthConfig{} //带宽限额,下行带宽峰值超过此限额的额外访问将会被拒绝,取值范围为 [1,10000]。 updateStreamQuotaConfigBodyQuotaDetailListItemBandwidthConfig.Quota = 1000 //拉流带宽限额的计量单位,支持的取值如下所示。 // <li> Mbps </li> // <li> Gbps </li> // <li> Tbps </li> updateStreamQuotaConfigBodyQuotaDetailListItemBandwidthConfig.QuotaUnit = "Mbps" //拉流带宽限额告警阈值,取值范围为 [1,10000],缺省情况表示不设置告警。 // note: // 该参数的取值需要小于等于拉流带宽限额 `Quota`,否则会报错。 var updateStreamQuotaConfigBodyQuotaDetailListItemBandwidthConfigAlarmThreshold *int32 var updateStreamQuotaConfigBodyQuotaDetailListItemBandwidthConfigAlarmThresholdValue int32 = 900 updateStreamQuotaConfigBodyQuotaDetailListItemBandwidthConfigAlarmThreshold = &updateStreamQuotaConfigBodyQuotaDetailListItemBandwidthConfigAlarmThresholdValue updateStreamQuotaConfigBodyQuotaDetailListItemBandwidthConfig.AlarmThreshold = updateStreamQuotaConfigBodyQuotaDetailListItemBandwidthConfigAlarmThreshold //拉流带宽限额告警的计量单位,缺省情况表示不设置告警。支持的取值如下所示。 // <li> Mbps </li> // <li> Gbps </li> // <li> Tbps </li> var updateStreamQuotaConfigBodyQuotaDetailListItemBandwidthConfigAlarmThresholdUnit *string var updateStreamQuotaConfigBodyQuotaDetailListItemBandwidthConfigAlarmThresholdUnitValue string = "Mbps" updateStreamQuotaConfigBodyQuotaDetailListItemBandwidthConfigAlarmThresholdUnit = &updateStreamQuotaConfigBodyQuotaDetailListItemBandwidthConfigAlarmThresholdUnitValue updateStreamQuotaConfigBodyQuotaDetailListItemBandwidthConfig.AlarmThresholdUnit = updateStreamQuotaConfigBodyQuotaDetailListItemBandwidthConfigAlarmThresholdUnit updateStreamQuotaConfigBodyQuotaDetailListItem.BandwidthConfig = &updateStreamQuotaConfigBodyQuotaDetailListItemBandwidthConfig //推流域名的推流路数限额配置。 // note: // `Domain` 为推流域名时,本参数为必选参数。 updateStreamQuotaConfigBodyQuotaDetailListItemStreamConfig := live_v20230101.UpdateStreamQuotaConfigBodyQuotaDetailListItemStreamConfig{} //推流路数限额,取值[10~200000]。 updateStreamQuotaConfigBodyQuotaDetailListItemStreamConfig.Quota = 20 //推流路数限额告警阈值,缺省情况表示不设置告警。取值范围为 [10,200000]。 // note: // 该参数的取值需要小于等于推流路数限额 `Quota`,否则会报错。 var updateStreamQuotaConfigBodyQuotaDetailListItemStreamConfigAlarmThreshold *int32 var updateStreamQuotaConfigBodyQuotaDetailListItemStreamConfigAlarmThresholdValue int32 = 20 updateStreamQuotaConfigBodyQuotaDetailListItemStreamConfigAlarmThreshold = &updateStreamQuotaConfigBodyQuotaDetailListItemStreamConfigAlarmThresholdValue updateStreamQuotaConfigBodyQuotaDetailListItemStreamConfig.AlarmThreshold = updateStreamQuotaConfigBodyQuotaDetailListItemStreamConfigAlarmThreshold updateStreamQuotaConfigBodyQuotaDetailListItem.StreamConfig = &updateStreamQuotaConfigBodyQuotaDetailListItemStreamConfig //超过限额时返回的错误码,默认值为 `403`。 var updateStreamQuotaConfigBodyQuotaDetailListItemErrCode *int32 var updateStreamQuotaConfigBodyQuotaDetailListItemErrCodeValue int32 = 403 updateStreamQuotaConfigBodyQuotaDetailListItemErrCode = &updateStreamQuotaConfigBodyQuotaDetailListItemErrCodeValue updateStreamQuotaConfigBodyQuotaDetailListItem.ErrCode = updateStreamQuotaConfigBodyQuotaDetailListItemErrCode //超过限额时返回的错误信息,默认值为 `forbid`。 var updateStreamQuotaConfigBodyQuotaDetailListItemErrMsg *string var updateStreamQuotaConfigBodyQuotaDetailListItemErrMsgValue string = "forbid" updateStreamQuotaConfigBodyQuotaDetailListItemErrMsg = &updateStreamQuotaConfigBodyQuotaDetailListItemErrMsgValue updateStreamQuotaConfigBodyQuotaDetailListItem.ErrMsg = updateStreamQuotaConfigBodyQuotaDetailListItemErrMsg body.QuotaDetailList = append(body.QuotaDetailList,updateStreamQuotaConfigBodyQuotaDetailListItem) resp, err := service.UpdateStreamQuotaConfig(context.Background(), body) if err != nil { fmt.Printf("error %v", err) } else { fmt.Printf("success %+v", resp) } }
您可以调用 DescribeStreamQuotaConfig 接口查询推拉流限流配置。详细的参数说明可参见 DescribeStreamQuotaConfig 接口文档。
接口调用示例如下所示。
package main import ( "os" "context" "fmt" "github.com/volcengine/volc-sdk-golang/base" "github.com/volcengine/volc-sdk-golang/service/live/v20230101" ) func main () { // 强烈建议不要把 AccessKey ID 和 AccessKey Secret 保存到工程代码里,否则可能导致 AccessKey 泄露,威胁您账号下所有资源的安全。 // 本示例通过从环境变量中读取 AccessKey ID 和 AccessKey Secret,来实现 API 访问的身份验证。运行代码示例前,请配置环境变量 ACCESS_KEY_ID 和 ACCESS KEY_SECRET service := live_v20230101.NewInstance() service.SetCredential(base.Credentials{ AccessKeyID: os.Getenv("ACCESS_KEY_ID"), SecretAccessKey: os.Getenv("ACCESS_KEY_SECRET"), }) body := &live_v20230101.DescribeStreamQuotaConfigBody{} //待查询限额配置的推流域名或拉流域名。您可以调用 [ListDomainDetail](https://www.volcengine.com/docs/6469/1126815) 接口或在视频直播控制台的[域名管理](https://console-stable.volcanicengine.com/live/main/domain/list)页面,查看域名信息。 body.Domain = "live.push.example.com" resp, err := service.DescribeStreamQuotaConfig(context.Background(), body) if err != nil { fmt.Printf("error %v", err) } else { fmt.Printf("success %+v", resp) } }
您可以调用 DeleteStreamQuotaConfig 接口删除推拉流限额配置。详细的参数说明可参见 DeleteStreamQuotaConfig 接口文档。
接口调用示例如下所示。
package main import ( "os" "context" "fmt" "github.com/volcengine/volc-sdk-golang/base" "github.com/volcengine/volc-sdk-golang/service/live/v20230101" ) func main () { // 强烈建议不要把 AccessKey ID 和 AccessKey Secret 保存到工程代码里,否则可能导致 AccessKey 泄露,威胁您账号下所有资源的安全。 // 本示例通过从环境变量中读取 AccessKey ID 和 AccessKey Secret,来实现 API 访问的身份验证。运行代码示例前,请配置环境变量 ACCESS_KEY_ID 和 ACCESS KEY_SECRET service := live_v20230101.NewInstance() service.SetCredential(base.Credentials{ AccessKeyID: os.Getenv("ACCESS_KEY_ID"), SecretAccessKey: os.Getenv("ACCESS_KEY_SECRET"), }) body := &live_v20230101.DeleteStreamQuotaConfigBody{} //待删除限额配置的推流域名或拉流域名。您可以调用 [ListDomainDetail](https://www.volcengine.com/docs/6469/1126815) 接口或在视频直播控制台的[域名管理](https://console-stable.volcanicengine.com/live/main/domain/list)页面,查看域名信息。 body.Domain = "push.example.com" resp, err := service.DeleteStreamQuotaConfig(context.Background(), body) if err != nil { fmt.Printf("error %v", err) } else { fmt.Printf("success %+v", resp) } }