Skip to content

Commit 779ef8b

Browse files
authored
PubSub: adds region tags and updates existing to standard [(#1491)](GoogleCloudPlatform/python-docs-samples#1491)
1 parent a91495d commit 779ef8b

File tree

4 files changed

+54
-8
lines changed

4 files changed

+54
-8
lines changed

samples/snippets/iam.py

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@
2828

2929
def get_topic_policy(project, topic_name):
3030
"""Prints the IAM policy for the given topic."""
31+
# [START pubsub_get_topic_policy]
3132
client = pubsub_v1.PublisherClient()
3233
topic_path = client.topic_path(project, topic_name)
3334

@@ -36,10 +37,12 @@ def get_topic_policy(project, topic_name):
3637
print('Policy for topic {}:'.format(topic_path))
3738
for binding in policy.bindings:
3839
print('Role: {}, Members: {}'.format(binding.role, binding.members))
40+
# [END pubsub_get_topic_policy]
3941

4042

4143
def get_subscription_policy(project, subscription_name):
4244
"""Prints the IAM policy for the given subscription."""
45+
# [START pubsub_get_subscription_policy]
4346
client = pubsub_v1.SubscriberClient()
4447
subscription_path = client.subscription_path(project, subscription_name)
4548

@@ -48,10 +51,12 @@ def get_subscription_policy(project, subscription_name):
4851
print('Policy for subscription {}:'.format(subscription_path))
4952
for binding in policy.bindings:
5053
print('Role: {}, Members: {}'.format(binding.role, binding.members))
54+
# [END pubsub_get_subscription_policy]
5155

5256

5357
def set_topic_policy(project, topic_name):
5458
"""Sets the IAM policy for a topic."""
59+
# [START pubsub_set_topic_policy]
5560
client = pubsub_v1.PublisherClient()
5661
topic_path = client.topic_path(project, topic_name)
5762

@@ -72,10 +77,12 @@ def set_topic_policy(project, topic_name):
7277

7378
print('IAM policy for topic {} set: {}'.format(
7479
topic_name, policy))
80+
# [END pubsub_set_topic_policy]
7581

7682

7783
def set_subscription_policy(project, subscription_name):
7884
"""Sets the IAM policy for a topic."""
85+
# [START pubsub_set_subscription_policy]
7986
client = pubsub_v1.SubscriberClient()
8087
subscription_path = client.subscription_path(project, subscription_name)
8188

@@ -96,10 +103,12 @@ def set_subscription_policy(project, subscription_name):
96103

97104
print('IAM policy for subscription {} set: {}'.format(
98105
subscription_name, policy))
106+
# [END pubsub_set_subscription_policy]
99107

100108

101109
def check_topic_permissions(project, topic_name):
102110
"""Checks to which permissions are available on the given topic."""
111+
# [START pubsub_test_topic_permissions]
103112
client = pubsub_v1.PublisherClient()
104113
topic_path = client.topic_path(project, topic_name)
105114

@@ -113,10 +122,12 @@ def check_topic_permissions(project, topic_name):
113122

114123
print('Allowed permissions for topic {}: {}'.format(
115124
topic_path, allowed_permissions))
125+
# [END pubsub_test_topic_permissions]
116126

117127

118128
def check_subscription_permissions(project, subscription_name):
119129
"""Checks to which permissions are available on the given subscription."""
130+
# [START pubsub_test_subscription_permissions]
120131
client = pubsub_v1.SubscriberClient()
121132
subscription_path = client.subscription_path(project, subscription_name)
122133

@@ -130,6 +141,7 @@ def check_subscription_permissions(project, subscription_name):
130141

131142
print('Allowed permissions for subscription {}: {}'.format(
132143
subscription_path, allowed_permissions))
144+
# [END pubsub_test_subscription_permissions]
133145

134146

135147
if __name__ == '__main__':

samples/snippets/publisher.py

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,35 +28,42 @@
2828

2929
def list_topics(project):
3030
"""Lists all Pub/Sub topics in the given project."""
31+
# [START pubsub_list_topics]
3132
publisher = pubsub_v1.PublisherClient()
3233
project_path = publisher.project_path(project)
3334

3435
for topic in publisher.list_topics(project_path):
3536
print(topic)
37+
# [END pubsub_list_topics]
3638

3739

3840
def create_topic(project, topic_name):
3941
"""Create a new Pub/Sub topic."""
42+
# [START pubsub_create_topic]
4043
publisher = pubsub_v1.PublisherClient()
4144
topic_path = publisher.topic_path(project, topic_name)
4245

4346
topic = publisher.create_topic(topic_path)
4447

4548
print('Topic created: {}'.format(topic))
49+
# [END pubsub_create_topic]
4650

4751

4852
def delete_topic(project, topic_name):
4953
"""Deletes an existing Pub/Sub topic."""
54+
# [START pubsub_delete_topic]
5055
publisher = pubsub_v1.PublisherClient()
5156
topic_path = publisher.topic_path(project, topic_name)
5257

5358
publisher.delete_topic(topic_path)
5459

5560
print('Topic deleted: {}'.format(topic_path))
61+
# [END pubsub_delete_topic]
5662

5763

5864
def publish_messages(project, topic_name):
5965
"""Publishes multiple messages to a Pub/Sub topic."""
66+
# [START pubsub_quickstart_publisher]
6067
publisher = pubsub_v1.PublisherClient()
6168
topic_path = publisher.topic_path(project, topic_name)
6269

@@ -67,11 +74,13 @@ def publish_messages(project, topic_name):
6774
publisher.publish(topic_path, data=data)
6875

6976
print('Published messages.')
77+
# [END pubsub_quickstart_publisher]
7078

7179

7280
def publish_messages_with_custom_attributes(project, topic_name):
7381
"""Publishes multiple messages with custom attributes
7482
to a Pub/Sub topic."""
83+
# [START pubsub_publish_custom_attributes]
7584
publisher = pubsub_v1.PublisherClient()
7685
topic_path = publisher.topic_path(project, topic_name)
7786

@@ -84,11 +93,13 @@ def publish_messages_with_custom_attributes(project, topic_name):
8493
topic_path, data, origin='python-sample', username='gcp')
8594

8695
print('Published messages with custom attributes.')
96+
# [END pubsub_publish_custom_attributes]
8797

8898

8999
def publish_messages_with_futures(project, topic_name):
90100
"""Publishes multiple messages to a Pub/Sub topic and prints their
91101
message IDs."""
102+
# [START pubsub_publisher_concurrency_control]
92103
publisher = pubsub_v1.PublisherClient()
93104
topic_path = publisher.topic_path(project, topic_name)
94105

@@ -107,10 +118,12 @@ def publish_messages_with_futures(project, topic_name):
107118
for future in futures:
108119
# result() blocks until the message is published.
109120
print(future.result())
121+
# [END pubsub_publisher_concurrency_control]
110122

111123

112124
def publish_messages_with_batch_settings(project, topic_name):
113125
"""Publishes multiple messages to a Pub/Sub topic with batch settings."""
126+
# [START pubsub_publisher_batch_settings]
114127
# Configure the batch to publish once there is one kilobyte of data or
115128
# 1 second has passed.
116129
batch_settings = pubsub_v1.types.BatchSettings(
@@ -127,6 +140,7 @@ def publish_messages_with_batch_settings(project, topic_name):
127140
publisher.publish(topic_path, data=data)
128141

129142
print('Published messages.')
143+
# [END pubsub_publisher_batch_settings]
130144

131145

132146
if __name__ == '__main__':

samples/snippets/quickstart.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616

1717

1818
def run_quickstart():
19-
# [START pubsub_quickstart]
19+
# [START pubsub_quickstart_create_topic]
2020
# Imports the Google Cloud client library
2121
from google.cloud import pubsub_v1
2222

@@ -32,7 +32,7 @@ def run_quickstart():
3232
topic = publisher.create_topic(topic_path)
3333

3434
print('Topic created: {}'.format(topic))
35-
# [END pubsub_quickstart]
35+
# [END pubsub_quickstart_create_topic]
3636

3737

3838
if __name__ == '__main__':

samples/snippets/subscriber.py

Lines changed: 26 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -29,24 +29,29 @@
2929

3030
def list_subscriptions_in_topic(project, topic_name):
3131
"""Lists all subscriptions for a given topic."""
32+
# [START pubsub_list_topic_subscriptions]
3233
subscriber = pubsub_v1.PublisherClient()
3334
topic_path = subscriber.topic_path(project, topic_name)
3435

3536
for subscription in subscriber.list_topic_subscriptions(topic_path):
3637
print(subscription)
38+
# [END pubsub_list_topic_subscriptions]
3739

3840

3941
def list_subscriptions_in_project(project):
4042
"""Lists all subscriptions in the current project."""
43+
# [START pubsub_list_subscriptions]
4144
subscriber = pubsub_v1.SubscriberClient()
4245
project_path = subscriber.project_path(project)
4346

4447
for subscription in subscriber.list_subscriptions(project_path):
4548
print(subscription.name)
49+
# [END pubsub_list_subscriptions]
4650

4751

4852
def create_subscription(project, topic_name, subscription_name):
4953
"""Create a new pull subscription on the given topic."""
54+
# [START pubsub_create_pull_subscription]
5055
subscriber = pubsub_v1.SubscriberClient()
5156
topic_path = subscriber.topic_path(project, topic_name)
5257
subscription_path = subscriber.subscription_path(
@@ -56,16 +61,16 @@ def create_subscription(project, topic_name, subscription_name):
5661
subscription_path, topic_path)
5762

5863
print('Subscription created: {}'.format(subscription))
64+
# [END pubsub_create_pull_subscription]
5965

6066

6167
def create_push_subscription(project,
6268
topic_name,
6369
subscription_name,
6470
endpoint):
65-
"""Create a new push subscription on the given topic.
66-
For example, endpoint is
67-
"https://my-test-project.appspot.com/push".
68-
"""
71+
"""Create a new push subscription on the given topic."""
72+
# [START pubsub_create_push_subscription]
73+
# endpoint = "https://my-test-project.appspot.com/push"
6974
subscriber = pubsub_v1.SubscriberClient()
7075
topic_path = subscriber.topic_path(project, topic_name)
7176
subscription_path = subscriber.subscription_path(
@@ -79,26 +84,30 @@ def create_push_subscription(project,
7984

8085
print('Push subscription created: {}'.format(subscription))
8186
print('Endpoint for subscription is: {}'.format(endpoint))
87+
# [END pubsub_create_push_subscription]
8288

8389

8490
def delete_subscription(project, subscription_name):
8591
"""Deletes an existing Pub/Sub topic."""
92+
# [START pubsub_delete_subscription]
8693
subscriber = pubsub_v1.SubscriberClient()
8794
subscription_path = subscriber.subscription_path(
8895
project, subscription_name)
8996

9097
subscriber.delete_subscription(subscription_path)
9198

9299
print('Subscription deleted: {}'.format(subscription_path))
100+
# [END pubsub_delete_subscription]
93101

94102

95103
def update_subscription(project, subscription_name, endpoint):
96104
"""
97105
Updates an existing Pub/Sub subscription's push endpoint URL.
98106
Note that certain properties of a subscription, such as
99-
its topic, are not modifiable. For example, endpoint is
100-
"https://my-test-project.appspot.com/push".
107+
its topic, are not modifiable.
101108
"""
109+
# [START pubsub_update_push_configuration]
110+
# endpoint = "https://my-test-project.appspot.com/push"
102111
subscriber = pubsub_v1.SubscriberClient()
103112
subscription_path = subscriber.subscription_path(
104113
project, subscription_name)
@@ -122,10 +131,13 @@ def update_subscription(project, subscription_name, endpoint):
122131
print('Subscription updated: {}'.format(subscription_path))
123132
print('New endpoint for subscription is: {}'.format(
124133
result.push_config))
134+
# [END pubsub_update_push_configuration]
125135

126136

127137
def receive_messages(project, subscription_name):
128138
"""Receives messages from a pull subscription."""
139+
# [START pubsub_subscriber_async_pull]
140+
# [START pubsub_quickstart_subscriber]
129141
subscriber = pubsub_v1.SubscriberClient()
130142
subscription_path = subscriber.subscription_path(
131143
project, subscription_name)
@@ -141,10 +153,13 @@ def callback(message):
141153
print('Listening for messages on {}'.format(subscription_path))
142154
while True:
143155
time.sleep(60)
156+
# [END pubsub_subscriber_async_pull]
157+
# [END pubsub_quickstart_subscriber]
144158

145159

146160
def receive_messages_with_custom_attributes(project, subscription_name):
147161
"""Receives messages from a pull subscription."""
162+
# [START pubsub_subscriber_sync_pull_custom_attributes]
148163
subscriber = pubsub_v1.SubscriberClient()
149164
subscription_path = subscriber.subscription_path(
150165
project, subscription_name)
@@ -165,10 +180,12 @@ def callback(message):
165180
print('Listening for messages on {}'.format(subscription_path))
166181
while True:
167182
time.sleep(60)
183+
# [END pubsub_subscriber_sync_pull_custom_attributes]
168184

169185

170186
def receive_messages_with_flow_control(project, subscription_name):
171187
"""Receives messages from a pull subscription with flow control."""
188+
# [START pubsub_subscriber_flow_settings]
172189
subscriber = pubsub_v1.SubscriberClient()
173190
subscription_path = subscriber.subscription_path(
174191
project, subscription_name)
@@ -187,10 +204,12 @@ def callback(message):
187204
print('Listening for messages on {}'.format(subscription_path))
188205
while True:
189206
time.sleep(60)
207+
# [END pubsub_subscriber_flow_settings]
190208

191209

192210
def listen_for_errors(project, subscription_name):
193211
"""Receives messages and catches errors from a pull subscription."""
212+
# [START pubsub_subscriber_error_listener]
194213
subscriber = pubsub_v1.SubscriberClient()
195214
subscription_path = subscriber.subscription_path(
196215
project, subscription_name)
@@ -210,6 +229,7 @@ def callback(message):
210229
'Listening for messages on {} threw an Exception: {}.'.format(
211230
subscription_name, e))
212231
raise
232+
# [END pubsub_subscriber_error_listener]
213233

214234

215235
if __name__ == '__main__':

0 commit comments

Comments
 (0)