本文整理匯總了Golang中cloud/google/com/go/pubsub.Client類的典型用法代碼示例。如果您正苦於以下問題:Golang Client類的具體用法?Golang Client怎麽用?Golang Client使用的例子?那麽, 這裏精選的類代碼示例或許可以為您提供幫助。
在下文中一共展示了Client類的9個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Golang代碼示例。
示例1: delete
func delete(client *pubsub.Client, topic string) error {
ctx := context.Background()
// [START delete_topic]
t := client.Topic(topic)
if err := t.Delete(ctx); err != nil {
return err
}
fmt.Printf("Deleted topic: %v\n", t)
// [END delete_topic]
return nil
}
示例2: create
func create(client *pubsub.Client, topic string) error {
ctx := context.Background()
// [START create_topic]
t, err := client.CreateTopic(ctx, topic)
if err != nil {
return err
}
fmt.Printf("Topic created: %v\n", t)
// [END create_topic]
return nil
}
示例3: getPolicy
func getPolicy(c *pubsub.Client, topicName string) *iam.Policy {
ctx := context.Background()
// [START pubsub_get_topic_policy]
policy, err := c.Topic(topicName).IAM().Policy(ctx)
if err != nil {
log.Fatal(err)
}
for _, role := range policy.Roles() {
log.Print(policy.Members(role))
}
// [END pubsub_get_topic_policy]
return policy
}
示例4: publish
func publish(client *pubsub.Client, topic, msg string) error {
ctx := context.Background()
// [START publish]
t := client.Topic(topic)
msgIDs, err := t.Publish(ctx, &pubsub.Message{
Data: []byte(msg),
})
if err != nil {
return err
}
for _, id := range msgIDs {
fmt.Printf("Published a message; msg ID: %v\n", id)
}
// [END publish]
return nil
}
示例5: testPermissions
func testPermissions(c *pubsub.Client, topicName string) []string {
ctx := context.Background()
// [START pubsub_test_topic_permissions]
topic := c.Topic(topicName)
perms, err := topic.IAM().TestPermissions(ctx, []string{
"pubsub.topics.publish",
"pubsub.topics.update",
})
if err != nil {
log.Fatal(err)
}
for _, perm := range perms {
log.Printf("Allowed: %v", perm)
}
// [END pubsub_test_topic_permissions]
return perms
}
示例6: list
func list(client *pubsub.Client) ([]*pubsub.Subscription, error) {
ctx := context.Background()
// [START get_all_subscriptions]
var subs []*pubsub.Subscription
it := client.Subscriptions(ctx)
for {
s, err := it.Next()
if err == iterator.Done {
break
}
if err != nil {
return nil, err
}
subs = append(subs, s)
}
// [END get_all_subscriptions]
return subs, nil
}
示例7: createTopicIfNotExists
func createTopicIfNotExists(c *pubsub.Client) *pubsub.Topic {
ctx := context.Background()
const topic = "example-topic"
// Create a topic to subscribe to.
t := c.Topic(topic)
ok, err := t.Exists(ctx)
if err != nil {
log.Fatal(err)
}
if ok {
return t
}
t, err = c.CreateTopic(ctx, topic)
if err != nil {
log.Fatalf("Failed to create the topic: %v", err)
}
return t
}
示例8: addUsers
func addUsers(c *pubsub.Client, topicName string) {
ctx := context.Background()
// [START pubsub_set_topic_policy]
topic := c.Topic(topicName)
policy, err := topic.IAM().Policy(ctx)
if err != nil {
log.Fatalf("GetPolicy: %v", err)
}
// Other valid prefixes are "serviceAccount:", "user:"
// See the documentation for more values.
policy.Add(iam.AllUsers, iam.Viewer)
policy.Add("group:[email protected]", iam.Editor)
if err := topic.IAM().SetPolicy(ctx, policy); err != nil {
log.Fatalf("SetPolicy: %v", err)
}
// NOTE: It may be necessary to retry this operation if IAM policies are
// being modified concurrently. SetPolicy will return an error if the policy
// was modified since it was retrieved.
// [END pubsub_set_topic_policy]
}
示例9: pullMsgs
func pullMsgs(client *pubsub.Client, name string, topic *pubsub.Topic) error {
ctx := context.Background()
// publish 10 messages on the topic.
for i := 0; i < 10; i++ {
_, err := topic.Publish(ctx, &pubsub.Message{
Data: []byte(fmt.Sprintf("hello world #%d", i)),
})
if err != nil {
return err
}
}
// [START pull_messages]
sub := client.Subscription(name)
it, err := sub.Pull(ctx)
if err != nil {
return err
}
defer it.Stop()
// Consume 10 messages.
for i := 0; i < 10; i++ {
msg, err := it.Next()
if err == iterator.Done {
break
}
if err != nil {
return err
}
fmt.Printf("Got message: %q\n", string(msg.Data))
msg.Done(true)
}
// [END pull_messages]
return nil
}