Subscription操作

本文为您展示DataHub的 Go SDKSubscription操作。

创建Subscription

参数说明

参数名

参数类型

参数说明

projectName

String

项目名称。

topicName

string

Topic名称。

comment

string

subscription comment

错误说明

错误类名

错误码

错误说明

ResourceNotFoundError

ResourceNotFound

NoSuchProject

NoSuchTopic

NoSuchShard

NoSuchSubscription

NoSuchConnector

NoSuchMeteringInfo

访问的资源不存在(注:进行Split/Merge操作后,立即发送其他请求,有可能会抛出该异常 )。

AuthorizationFailedError

Unauthorized

Authorization 签名解析异常,检查AK是否填写正确。

DatahubClientError

-

其他所有,并且是所有异常的基类。

InvalidParameterError

InvalidParameter

InvalidCursor

非法参数。

代码示例

func createSubscription() {
    csr, err := dh.CreateSubscription(projectName, topicName, "sub comment")
    if err != nil {
        fmt.Println("create subscription failed")
        fmt.Println(err)
        return
    }
    fmt.Println("create subscription successful")
    fmt.Println(*csr)
}

删除subscription

参数说明

参数名

参数类型

参数说明

projectName

string

项目名称。

topicName

string

Topic名称。

subId

string

The id of the subscription.

错误说明

错误类名

错误码

错误说明

ResourceNotFoundError

ResourceNotFound

NoSuchProject

NoSuchTopic

NoSuchShard

NoSuchSubscription

NoSuchConnector

NoSuchMeteringInfo

访问的资源不存在(注:进行Split/Merge操作后,立即发送其他请求,有可能会抛出该异常 )。

AuthorizationFailedError

Unauthorized

Authorization 签名解析异常,检查AK是否填写正确。

DatahubClientError

-

其他所有,并且是所有异常的基类。

InvalidParameterError

InvalidParameter

InvalidCursor

非法参数。

代码示例

func delSubscription(dh datahub.DataHub, projectName, topicName string) {
    subId := "1565577384801DCN0O"
    if err := dh.DeleteSubscription(projectName, topicName, subId); err != nil {
        fmt.Println("delete subscription failed")
        return
    }
    fmt.Println("delete subscription successful")
}

查询subscription

参数说明

参数名

参数类型

参数说明

projectName

string

项目名称。

topicName

string

Topic名称。

subId

string

The id of the subscription.

返回示例

 type GetSubscriptionResult struct {
     SubscriptionEntry
 }

错误说明

错误类名

错误码

错误说明

AuthorizationFailedError

Unauthorized

Authorization 签名解析异常,检查AK是否填写正确。

DatahubClientError

-

其他所有,并且是所有异常的基类。

InvalidParameterError

InvalidParameter

InvalidCursor

非法参数。

代码示例

func getSubscription(dh datahub.DataHub, projectName, topicName string) {
    subId := "1565577384801DCN0O"
    gs, err := dh.GetSubscription(projectName, topicName, subId)
    if err != nil {
        fmt.Println("get subscription failed")
        fmt.Println(err)
        return
    }
    fmt.Println("get subscription successful")
    fmt.Println(gs)
}

列出subscription

通过pageIndexpageSize获取指定范围的subscription信息,如pageIndex=1, pageSize=10,获取1-10subscription; pageIndex=2, pageSize=5则获取6-10subscription。

参数说明

参数名

参数类型

参数说明

projectName

string

项目名称。

topicName

string

Topic名称。

pageIndex

int

The page index used to list subscriptions. - pageSize: The page size used to list subscriptions.

返回示例

type ListSubscriptionResult struct {
    TotalCount    int64               `json:"TotalCount"`
    Subscriptions []SubscriptionEntry `json:"Subscriptions"`
}

错误说明

错误类名

错误码

错误说明

AuthorizationFailedError

Unauthorized

Authorization 签名解析异常,检查AK是否填写正确。

DatahubClientError

-

其他所有,并且是所有异常的基类。

InvalidParameterError

InvalidParameter

InvalidCursor

非法参数。

代码示例

func listSubscription(dh datahub.DataHub, projectName, topicName string) {
    pageIndex := 1
    pageSize := 5
    ls, err := dh.ListSubscription(projectName, topicName, pageIndex, pageSize)
    if err != nil {
        fmt.Println("get subscription list failed")
        fmt.Println(err)
        return
    }
    fmt.Println("get subscription list successful")
    for _, sub := range ls.Subscriptions {
        fmt.Println(sub)
    }
}

更新subscription

参数说明

参数名

参数类型

参数说明

projectName

string

项目名称。

topicName

string

Topic名称

subId

string

The id of the subscription

comment

string

subscription comment

错误说明

错误类名

错误码

错误说明

ResourceNotFoundError

ResourceNotFound

NoSuchProject

NoSuchTopic

NoSuchShard

NoSuchSubscription

NoSuchConnector

NoSuchMeteringInfo

访问的资源不存在(注:进行Split/Merge操作后,立即发送其他请求,有可能会抛出该异常 )。

AuthorizationFailedError

Unauthorized

Authorization 签名解析异常,检查AK是否填写正确。

DatahubClientError

-

其他所有,并且是所有异常的基类。

InvalidParameterError

InvalidParameter

InvalidCursor

非法参数。

代码示例

func updateSubscription(dh datahub.DataHub, projectName, topicName string) {
    subId := "1565580329258VXSY8"
    if err := dh.UpdateSubscription(projectName, topicName, subId, "new sub comment"); err != nil {
        fmt.Println("update subscription comment failed")
        fmt.Println(err)
        return
    }
    fmt.Println("update subscription comment successful")
}

更新subscription状态

参数说明

参数名

参数类型

参数说明

projectName

String

项目名称。

topicName

string

Topic名称

subId

string

The id of the subscription.

state

SubscriptionState

The state you want to change.

错误说明

错误类名

错误码

错误说明

ResourceNotFoundError

ResourceNotFound

NoSuchProject

NoSuchTopic

NoSuchShard

NoSuchSubscription

NoSuchConnector

NoSuchMeteringInfo

访问的资源不存在(注:进行Split/Merge操作后,立即发送其他请求,有可能会抛出该异常 )。

AuthorizationFailedError

Unauthorized

Authorization 签名解析异常,检查AK是否填写正确。

DatahubClientError

-

其他所有,并且是所有异常的基类。

InvalidParameterError

InvalidParameter

InvalidCursor

非法参数。

代码示例

func updateSubState(dh datahub.DataHub, projectName, topicName string) {
    subId := "1565580329258VXSY8"
    if err := dh.UpdateSubscriptionState(projectName, topicName, subId, datahub.SUB_OFFLINE); err != nil {
        fmt.Println("update subscription state failed")
        fmt.Println(err)
        return
    }
    fmt.Println("update subscription state successful")
}