Subscriber Client API (v1)¶
- class google.cloud.pubsub_v1.subscriber.client.Client(**kwargs)[source]¶
A subscriber client for Google Cloud Pub/Sub.
This creates an object that is capable of subscribing to messages. Generally, you can instantiate this client with no arguments, and you get sensible defaults.
- Parameters
kwargs (dict) – Any additional arguments provided are sent as keyword keyword arguments to the underlying
SubscriberClient
. Generally you should not need to set additional keyword arguments. Optionally, regional endpoints can be set viaclient_options
that takes a single key-value pair that defines the endpoint.
Example:
from google.cloud import pubsub_v1 subscriber_client = pubsub_v1.SubscriberClient( # Optional client_options = { "api_endpoint": REGIONAL_ENDPOINT } )
- acknowledge(request: google.cloud.pubsub_v1.types.AcknowledgeRequest = None, *, subscription: str = None, ack_ids: Sequence[str] = None, retry: google.api_core.retry.Retry = <object object>, timeout: float = None, metadata: Sequence[Tuple[str, str]] = ()) → None¶
Acknowledges the messages associated with the
ack_ids
in theAcknowledgeRequest
. The Pub/Sub system can remove the relevant messages from the subscription.Acknowledging a message whose ack deadline has expired may succeed, but such a message may be redelivered later. Acknowledging a message more than once will not result in an error.
- Parameters
request (google.pubsub_v1.types.AcknowledgeRequest) – The request object. Request for the Acknowledge method.
subscription (str) –
Required. The subscription whose message is being acknowledged. Format is
projects/{project}/subscriptions/{sub}
.This corresponds to the
subscription
field on therequest
instance; ifrequest
is provided, this should not be set.ack_ids (Sequence[str]) –
Required. The acknowledgment ID for the messages being acknowledged that was returned by the Pub/Sub system in the
Pull
response. Must not be empty.This corresponds to the
ack_ids
field on therequest
instance; ifrequest
is provided, this should not be set.retry (google.api_core.retry.Retry) – Designation of what errors, if any, should be retried.
timeout (float) – The timeout for this request.
metadata (Sequence[Tuple[str, str]]) – Strings which should be sent along with the request as metadata.
- property api¶
The underlying gapic API client.
- close()[source]¶
Close the underlying channel to release socket resources.
After a channel has been closed, the client instance cannot be used anymore.
This method is idempotent.
- static common_billing_account_path(billing_account: str) → str¶
Returns a fully-qualified billing_account string.
- static common_location_path(project: str, location: str) → str¶
Returns a fully-qualified location string.
- static common_organization_path(organization: str) → str¶
Returns a fully-qualified organization string.
- create_snapshot(request: google.cloud.pubsub_v1.types.CreateSnapshotRequest = None, *, name: str = None, subscription: str = None, retry: google.api_core.retry.Retry = <object object>, timeout: float = None, metadata: Sequence[Tuple[str, str]] = ()) → google.cloud.pubsub_v1.types.Snapshot¶
Creates a snapshot from the requested subscription. Snapshots are used in Seek operations, which allow you to manage message acknowledgments in bulk. That is, you can set the acknowledgment state of messages in an existing subscription to the state captured by a snapshot. If the snapshot already exists, returns
ALREADY_EXISTS
. If the requested subscription doesn’t exist, returnsNOT_FOUND
. If the backlog in the subscription is too old – and the resulting snapshot would expire in less than 1 hour – thenFAILED_PRECONDITION
is returned. See also theSnapshot.expire_time
field. If the name is not provided in the request, the server will assign a random name for this snapshot on the same project as the subscription, conforming to the [resource name format] (https://cloud.google.com/pubsub/docs/admin#resource_names). The generated name is populated in the returned Snapshot object. Note that for REST API requests, you must specify a name in the request.- Parameters
request (google.pubsub_v1.types.CreateSnapshotRequest) – The request object. Request for the CreateSnapshot method.
name (str) –
Required. User-provided name for this snapshot. If the name is not provided in the request, the server will assign a random name for this snapshot on the same project as the subscription. Note that for REST API requests, you must specify a name. See the resource name rules. Format is
projects/{project}/snapshots/{snap}
.This corresponds to the
name
field on therequest
instance; ifrequest
is provided, this should not be set.subscription (str) –
Required. The subscription whose backlog the snapshot retains. Specifically, the created snapshot is guaranteed to retain: (a) The existing backlog on the subscription. More precisely, this is defined as the messages in the subscription’s backlog that are unacknowledged upon the successful completion of the
CreateSnapshot
request; as well as: (b) Any messages published to the subscription’s topic following the successful completion of the CreateSnapshot request. Format isprojects/{project}/subscriptions/{sub}
.This corresponds to the
subscription
field on therequest
instance; ifrequest
is provided, this should not be set.retry (google.api_core.retry.Retry) – Designation of what errors, if any, should be retried.
timeout (float) – The timeout for this request.
metadata (Sequence[Tuple[str, str]]) – Strings which should be sent along with the request as metadata.
- Returns
- A snapshot resource. Snapshots are used in
[Seek](https://cloud.google.com/pubsub/docs/replay-overview) operations, which allow you to manage message acknowledgments in bulk. That is, you can set the acknowledgment state of messages in an existing subscription to the state captured by a snapshot.
- Return type
google.pubsub_v1.types.Snapshot
- create_subscription(request: google.cloud.pubsub_v1.types.Subscription = None, *, name: str = None, topic: str = None, push_config: google.cloud.pubsub_v1.types.PushConfig = None, ack_deadline_seconds: int = None, retry: google.api_core.retry.Retry = <object object>, timeout: float = None, metadata: Sequence[Tuple[str, str]] = ()) → google.cloud.pubsub_v1.types.Subscription¶
Creates a subscription to a given topic. See the [resource name rules] (https://cloud.google.com/pubsub/docs/admin#resource_names). If the subscription already exists, returns
ALREADY_EXISTS
. If the corresponding topic doesn’t exist, returnsNOT_FOUND
.If the name is not provided in the request, the server will assign a random name for this subscription on the same project as the topic, conforming to the [resource name format] (https://cloud.google.com/pubsub/docs/admin#resource_names). The generated name is populated in the returned Subscription object. Note that for REST API requests, you must specify a name in the request.
- Parameters
request (google.pubsub_v1.types.Subscription) – The request object. A subscription resource.
name (str) –
Required. The name of the subscription. It must have the format
"projects/{project}/subscriptions/{subscription}"
.{subscription}
must start with a letter, and contain only letters ([A-Za-z]
), numbers ([0-9]
), dashes (-
), underscores (_
), periods (.
), tildes (~
), plus (+
) or percent signs (%
). It must be between 3 and 255 characters in length, and it must not start with"goog"
.This corresponds to the
name
field on therequest
instance; ifrequest
is provided, this should not be set.topic (str) –
Required. The name of the topic from which this subscription is receiving messages. Format is
projects/{project}/topics/{topic}
. The value of this field will be_deleted-topic_
if the topic has been deleted.This corresponds to the
topic
field on therequest
instance; ifrequest
is provided, this should not be set.push_config (google.pubsub_v1.types.PushConfig) –
If push delivery is used with this subscription, this field is used to configure it. An empty
pushConfig
signifies that the subscriber will pull and ack messages using API methods.This corresponds to the
push_config
field on therequest
instance; ifrequest
is provided, this should not be set.ack_deadline_seconds (int) –
The approximate amount of time (on a best-effort basis) Pub/Sub waits for the subscriber to acknowledge receipt before resending the message. In the interval after the message is delivered and before it is acknowledged, it is considered to be outstanding. During that time period, the message will not be redelivered (on a best-effort basis).
For pull subscriptions, this value is used as the initial value for the ack deadline. To override this value for a given message, call
ModifyAckDeadline
with the correspondingack_id
if using non-streaming pull or send theack_id
in aStreamingModifyAckDeadlineRequest
if using streaming pull. The minimum custom deadline you can specify is 10 seconds. The maximum custom deadline you can specify is 600 seconds (10 minutes). If this parameter is 0, a default value of 10 seconds is used.For push delivery, this value is also used to set the request timeout for the call to the push endpoint.
If the subscriber never acknowledges the message, the Pub/Sub system will eventually redeliver the message.
This corresponds to the
ack_deadline_seconds
field on therequest
instance; ifrequest
is provided, this should not be set.retry (google.api_core.retry.Retry) – Designation of what errors, if any, should be retried.
timeout (float) – The timeout for this request.
metadata (Sequence[Tuple[str, str]]) – Strings which should be sent along with the request as metadata.
- Returns
A subscription resource.
- Return type
google.pubsub_v1.types.Subscription
- delete_snapshot(request: google.cloud.pubsub_v1.types.DeleteSnapshotRequest = None, *, snapshot: str = None, retry: google.api_core.retry.Retry = <object object>, timeout: float = None, metadata: Sequence[Tuple[str, str]] = ()) → None¶
Removes an existing snapshot. Snapshots are used in [Seek] (https://cloud.google.com/pubsub/docs/replay-overview) operations, which allow you to manage message acknowledgments in bulk. That is, you can set the acknowledgment state of messages in an existing subscription to the state captured by a snapshot. When the snapshot is deleted, all messages retained in the snapshot are immediately dropped. After a snapshot is deleted, a new one may be created with the same name, but the new one has no association with the old snapshot or its subscription, unless the same subscription is specified.
- Parameters
request (google.pubsub_v1.types.DeleteSnapshotRequest) – The request object. Request for the DeleteSnapshot method.
snapshot (str) –
Required. The name of the snapshot to delete. Format is
projects/{project}/snapshots/{snap}
.This corresponds to the
snapshot
field on therequest
instance; ifrequest
is provided, this should not be set.retry (google.api_core.retry.Retry) – Designation of what errors, if any, should be retried.
timeout (float) – The timeout for this request.
metadata (Sequence[Tuple[str, str]]) – Strings which should be sent along with the request as metadata.
- delete_subscription(request: google.cloud.pubsub_v1.types.DeleteSubscriptionRequest = None, *, subscription: str = None, retry: google.api_core.retry.Retry = <object object>, timeout: float = None, metadata: Sequence[Tuple[str, str]] = ()) → None¶
Deletes an existing subscription. All messages retained in the subscription are immediately dropped. Calls to
Pull
after deletion will returnNOT_FOUND
. After a subscription is deleted, a new one may be created with the same name, but the new one has no association with the old subscription or its topic unless the same topic is specified.- Parameters
request (google.pubsub_v1.types.DeleteSubscriptionRequest) – The request object. Request for the DeleteSubscription method.
subscription (str) –
Required. The subscription to delete. Format is
projects/{project}/subscriptions/{sub}
.This corresponds to the
subscription
field on therequest
instance; ifrequest
is provided, this should not be set.retry (google.api_core.retry.Retry) – Designation of what errors, if any, should be retried.
timeout (float) – The timeout for this request.
metadata (Sequence[Tuple[str, str]]) – Strings which should be sent along with the request as metadata.
- classmethod from_service_account_file(filename, **kwargs)[source]¶
Creates an instance of this client using the provided credentials file.
- static from_service_account_info(info: dict, *args, **kwargs)¶
- Creates an instance of this client using the provided credentials
info.
- Parameters
info (dict) – The service account private key info.
args – Additional arguments to pass to the constructor.
kwargs – Additional arguments to pass to the constructor.
- Returns
The constructed client.
- Return type
SubscriberClient
- classmethod from_service_account_json(filename, **kwargs)¶
Creates an instance of this client using the provided credentials file.
- get_iam_policy(request: google.iam.v1.iam_policy_pb2.GetIamPolicyRequest = None, *, retry: google.api_core.retry.Retry = <object object>, timeout: float = None, metadata: Sequence[Tuple[str, str]] = ()) → google.iam.v1.policy_pb2.Policy¶
Gets the IAM access control policy for a function.
Returns an empty policy if the function exists and does not have a policy set.
- Parameters
request (
GetIamPolicyRequest
) – The request object. Request message for GetIamPolicy method.retry (google.api_core.retry.Retry) – Designation of what errors, if any, should be retried.
timeout (float) – The timeout for this request.
metadata (Sequence[Tuple[str, str]]) – Strings which should be sent along with the request as metadata.
- Returns
Defines an Identity and Access Management (IAM) policy. It is used to specify access control policies for Cloud Platform resources. A
Policy
is a collection ofbindings
. Abinding
binds one or moremembers
to a singlerole
. Members can be user accounts, service accounts, Google groups, and domains (such as G Suite). Arole
is a named list of permissions (defined by IAM or configured by users). Abinding
can optionally specify acondition
, which is a logic expression that further constrains the role binding based on attributes about the request and/or target resource.JSON Example:
{ "bindings": [ { "role": "roles/resourcemanager.organizationAdmin", "members": [ "user:mike@example.com", "group:admins@example.com", "domain:google.com", "serviceAccount:my-project-id@appspot.gserviceaccount.com" ] }, { "role": "roles/resourcemanager.organizationViewer", "members": ["user:eve@example.com"], "condition": { "title": "expirable access", "description": "Does not grant access after Sep 2020", "expression": "request.time < timestamp('2020-10-01T00:00:00.000Z')", } } ] }
YAML Example:
bindings: - members: - user:mike@example.com - group:admins@example.com - domain:google.com - serviceAccount:my-project-id@appspot.gserviceaccount.com role: roles/resourcemanager.organizationAdmin - members: - user:eve@example.com role: roles/resourcemanager.organizationViewer condition: title: expirable access description: Does not grant access after Sep 2020 expression: request.time < timestamp('2020-10-01T00:00:00.000Z')
For a description of IAM and its features, see the IAM developer’s guide.
- Return type
Policy
- get_snapshot(request: google.cloud.pubsub_v1.types.GetSnapshotRequest = None, *, snapshot: str = None, retry: google.api_core.retry.Retry = <object object>, timeout: float = None, metadata: Sequence[Tuple[str, str]] = ()) → google.cloud.pubsub_v1.types.Snapshot¶
Gets the configuration details of a snapshot. Snapshots are used in <a href=”https://cloud.google.com/pubsub/docs/replay- overview”>Seek</a> operations, which allow you to manage message acknowledgments in bulk. That is, you can set the acknowledgment state of messages in an existing subscription to the state captured by a snapshot.
- Parameters
request (google.pubsub_v1.types.GetSnapshotRequest) – The request object. Request for the GetSnapshot method.
snapshot (str) –
Required. The name of the snapshot to get. Format is
projects/{project}/snapshots/{snap}
.This corresponds to the
snapshot
field on therequest
instance; ifrequest
is provided, this should not be set.retry (google.api_core.retry.Retry) – Designation of what errors, if any, should be retried.
timeout (float) – The timeout for this request.
metadata (Sequence[Tuple[str, str]]) – Strings which should be sent along with the request as metadata.
- Returns
- A snapshot resource. Snapshots are used in
[Seek](https://cloud.google.com/pubsub/docs/replay-overview) operations, which allow you to manage message acknowledgments in bulk. That is, you can set the acknowledgment state of messages in an existing subscription to the state captured by a snapshot.
- Return type
google.pubsub_v1.types.Snapshot
- get_subscription(request: google.cloud.pubsub_v1.types.GetSubscriptionRequest = None, *, subscription: str = None, retry: google.api_core.retry.Retry = <object object>, timeout: float = None, metadata: Sequence[Tuple[str, str]] = ()) → google.cloud.pubsub_v1.types.Subscription¶
Gets the configuration details of a subscription.
- Parameters
request (google.pubsub_v1.types.GetSubscriptionRequest) – The request object. Request for the GetSubscription method.
subscription (str) –
Required. The name of the subscription to get. Format is
projects/{project}/subscriptions/{sub}
.This corresponds to the
subscription
field on therequest
instance; ifrequest
is provided, this should not be set.retry (google.api_core.retry.Retry) – Designation of what errors, if any, should be retried.
timeout (float) – The timeout for this request.
metadata (Sequence[Tuple[str, str]]) – Strings which should be sent along with the request as metadata.
- Returns
A subscription resource.
- Return type
google.pubsub_v1.types.Subscription
- list_snapshots(request: google.cloud.pubsub_v1.types.ListSnapshotsRequest = None, *, project: str = None, retry: google.api_core.retry.Retry = <object object>, timeout: float = None, metadata: Sequence[Tuple[str, str]] = ()) → google.pubsub_v1.services.subscriber.pagers.ListSnapshotsPager¶
Lists the existing snapshots. Snapshots are used in Seek operations, which allow you to manage message acknowledgments in bulk. That is, you can set the acknowledgment state of messages in an existing subscription to the state captured by a snapshot.
- Parameters
request (google.pubsub_v1.types.ListSnapshotsRequest) – The request object. Request for the ListSnapshots method.
project (str) –
Required. The name of the project in which to list snapshots. Format is
projects/{project-id}
.This corresponds to the
project
field on therequest
instance; ifrequest
is provided, this should not be set.retry (google.api_core.retry.Retry) – Designation of what errors, if any, should be retried.
timeout (float) – The timeout for this request.
metadata (Sequence[Tuple[str, str]]) – Strings which should be sent along with the request as metadata.
- Returns
Response for the ListSnapshots method.
Iterating over this object will yield results and resolve additional pages automatically.
- Return type
google.pubsub_v1.services.subscriber.pagers.ListSnapshotsPager
- list_subscriptions(request: google.cloud.pubsub_v1.types.ListSubscriptionsRequest = None, *, project: str = None, retry: google.api_core.retry.Retry = <object object>, timeout: float = None, metadata: Sequence[Tuple[str, str]] = ()) → google.pubsub_v1.services.subscriber.pagers.ListSubscriptionsPager¶
Lists matching subscriptions.
- Parameters
request (google.pubsub_v1.types.ListSubscriptionsRequest) – The request object. Request for the ListSubscriptions method.
project (str) –
Required. The name of the project in which to list subscriptions. Format is
projects/{project-id}
.This corresponds to the
project
field on therequest
instance; ifrequest
is provided, this should not be set.retry (google.api_core.retry.Retry) – Designation of what errors, if any, should be retried.
timeout (float) – The timeout for this request.
metadata (Sequence[Tuple[str, str]]) – Strings which should be sent along with the request as metadata.
- Returns
Response for the ListSubscriptions method.
Iterating over this object will yield results and resolve additional pages automatically.
- Return type
google.pubsub_v1.services.subscriber.pagers.ListSubscriptionsPager
- modify_ack_deadline(request: google.cloud.pubsub_v1.types.ModifyAckDeadlineRequest = None, *, subscription: str = None, ack_ids: Sequence[str] = None, ack_deadline_seconds: int = None, retry: google.api_core.retry.Retry = <object object>, timeout: float = None, metadata: Sequence[Tuple[str, str]] = ()) → None¶
Modifies the ack deadline for a specific message. This method is useful to indicate that more time is needed to process a message by the subscriber, or to make the message available for redelivery if the processing was interrupted. Note that this does not modify the subscription-level
ackDeadlineSeconds
used for subsequent messages.- Parameters
request (google.pubsub_v1.types.ModifyAckDeadlineRequest) – The request object. Request for the ModifyAckDeadline method.
subscription (str) –
Required. The name of the subscription. Format is
projects/{project}/subscriptions/{sub}
.This corresponds to the
subscription
field on therequest
instance; ifrequest
is provided, this should not be set.ack_ids (Sequence[str]) – Required. List of acknowledgment IDs. This corresponds to the
ack_ids
field on therequest
instance; ifrequest
is provided, this should not be set.ack_deadline_seconds (int) –
Required. The new ack deadline with respect to the time this request was sent to the Pub/Sub system. For example, if the value is 10, the new ack deadline will expire 10 seconds after the
ModifyAckDeadline
call was made. Specifying zero might immediately make the message available for delivery to another subscriber client. This typically results in an increase in the rate of message redeliveries (that is, duplicates). The minimum deadline you can specify is 0 seconds. The maximum deadline you can specify is 600 seconds (10 minutes).This corresponds to the
ack_deadline_seconds
field on therequest
instance; ifrequest
is provided, this should not be set.retry (google.api_core.retry.Retry) – Designation of what errors, if any, should be retried.
timeout (float) – The timeout for this request.
metadata (Sequence[Tuple[str, str]]) – Strings which should be sent along with the request as metadata.
- modify_push_config(request: google.cloud.pubsub_v1.types.ModifyPushConfigRequest = None, *, subscription: str = None, push_config: google.cloud.pubsub_v1.types.PushConfig = None, retry: google.api_core.retry.Retry = <object object>, timeout: float = None, metadata: Sequence[Tuple[str, str]] = ()) → None¶
Modifies the
PushConfig
for a specified subscription.This may be used to change a push subscription to a pull one (signified by an empty
PushConfig
) or vice versa, or change the endpoint URL and other attributes of a push subscription. Messages will accumulate for delivery continuously through the call regardless of changes to thePushConfig
.- Parameters
request (google.pubsub_v1.types.ModifyPushConfigRequest) – The request object. Request for the ModifyPushConfig method.
subscription (str) –
Required. The name of the subscription. Format is
projects/{project}/subscriptions/{sub}
.This corresponds to the
subscription
field on therequest
instance; ifrequest
is provided, this should not be set.push_config (google.pubsub_v1.types.PushConfig) –
Required. The push configuration for future deliveries.
An empty
pushConfig
indicates that the Pub/Sub system should stop pushing messages from the given subscription and allow messages to be pulled and acknowledged - effectively pausing the subscription ifPull
orStreamingPull
is not called.This corresponds to the
push_config
field on therequest
instance; ifrequest
is provided, this should not be set.retry (google.api_core.retry.Retry) – Designation of what errors, if any, should be retried.
timeout (float) – The timeout for this request.
metadata (Sequence[Tuple[str, str]]) – Strings which should be sent along with the request as metadata.
- static parse_common_billing_account_path(path: str) → Dict[str, str]¶
Parse a billing_account path into its component segments.
- static parse_common_folder_path(path: str) → Dict[str, str]¶
Parse a folder path into its component segments.
- static parse_common_location_path(path: str) → Dict[str, str]¶
Parse a location path into its component segments.
- static parse_common_organization_path(path: str) → Dict[str, str]¶
Parse a organization path into its component segments.
- static parse_common_project_path(path: str) → Dict[str, str]¶
Parse a project path into its component segments.
- static parse_snapshot_path(path: str) → Dict[str, str]¶
Parses a snapshot path into its component segments.
- static parse_subscription_path(path: str) → Dict[str, str]¶
Parses a subscription path into its component segments.
- static parse_topic_path(path: str) → Dict[str, str]¶
Parses a topic path into its component segments.
- pull(request: google.cloud.pubsub_v1.types.PullRequest = None, *, subscription: str = None, return_immediately: bool = None, max_messages: int = None, retry: google.api_core.retry.Retry = <object object>, timeout: float = None, metadata: Sequence[Tuple[str, str]] = ()) → google.cloud.pubsub_v1.types.PullResponse¶
Pulls messages from the server. The server may return
UNAVAILABLE
if there are too many concurrent pull requests pending for the given subscription.- Parameters
request (google.pubsub_v1.types.PullRequest) – The request object. Request for the Pull method.
subscription (str) –
Required. The subscription from which messages should be pulled. Format is
projects/{project}/subscriptions/{sub}
.This corresponds to the
subscription
field on therequest
instance; ifrequest
is provided, this should not be set.return_immediately (bool) –
Optional. If this field set to true, the system will respond immediately even if it there are no messages available to return in the
Pull
response. Otherwise, the system may wait (for a bounded amount of time) until at least one message is available, rather than returning no messages. Warning: setting this field totrue
is discouraged because it adversely impacts the performance ofPull
operations. We recommend that users do not set this field.This corresponds to the
return_immediately
field on therequest
instance; ifrequest
is provided, this should not be set.max_messages (int) –
Required. The maximum number of messages to return for this request. Must be a positive integer. The Pub/Sub system may return fewer than the number specified.
This corresponds to the
max_messages
field on therequest
instance; ifrequest
is provided, this should not be set.retry (google.api_core.retry.Retry) – Designation of what errors, if any, should be retried.
timeout (float) – The timeout for this request.
metadata (Sequence[Tuple[str, str]]) – Strings which should be sent along with the request as metadata.
- Returns
Response for the Pull method.
- Return type
google.pubsub_v1.types.PullResponse
- seek(request: google.cloud.pubsub_v1.types.SeekRequest = None, *, retry: google.api_core.retry.Retry = <object object>, timeout: float = None, metadata: Sequence[Tuple[str, str]] = ()) → google.cloud.pubsub_v1.types.SeekResponse¶
Seeks an existing subscription to a point in time or to a given snapshot, whichever is provided in the request. Snapshots are used in [Seek] (https://cloud.google.com/pubsub/docs/replay-overview) operations, which allow you to manage message acknowledgments in bulk. That is, you can set the acknowledgment state of messages in an existing subscription to the state captured by a snapshot. Note that both the subscription and the snapshot must be on the same topic.
- Parameters
request (google.pubsub_v1.types.SeekRequest) – The request object. Request for the Seek method.
retry (google.api_core.retry.Retry) – Designation of what errors, if any, should be retried.
timeout (float) – The timeout for this request.
metadata (Sequence[Tuple[str, str]]) – Strings which should be sent along with the request as metadata.
- Returns
Response for the Seek method (this response is empty).
- Return type
google.pubsub_v1.types.SeekResponse
- set_iam_policy(request: google.iam.v1.iam_policy_pb2.SetIamPolicyRequest = None, *, retry: google.api_core.retry.Retry = <object object>, timeout: float = None, metadata: Sequence[Tuple[str, str]] = ()) → google.iam.v1.policy_pb2.Policy¶
Sets the IAM access control policy on the specified function.
Replaces any existing policy.
- Parameters
request (
SetIamPolicyRequest
) – The request object. Request message for SetIamPolicy method.retry (google.api_core.retry.Retry) – Designation of what errors, if any, should be retried.
timeout (float) – The timeout for this request.
metadata (Sequence[Tuple[str, str]]) – Strings which should be sent along with the request as metadata.
- Returns
Defines an Identity and Access Management (IAM) policy. It is used to specify access control policies for Cloud Platform resources. A
Policy
is a collection ofbindings
. Abinding
binds one or moremembers
to a singlerole
. Members can be user accounts, service accounts, Google groups, and domains (such as G Suite). Arole
is a named list of permissions (defined by IAM or configured by users). Abinding
can optionally specify acondition
, which is a logic expression that further constrains the role binding based on attributes about the request and/or target resource.JSON Example:
{ "bindings": [ { "role": "roles/resourcemanager.organizationAdmin", "members": [ "user:mike@example.com", "group:admins@example.com", "domain:google.com", "serviceAccount:my-project-id@appspot.gserviceaccount.com" ] }, { "role": "roles/resourcemanager.organizationViewer", "members": ["user:eve@example.com"], "condition": { "title": "expirable access", "description": "Does not grant access after Sep 2020", "expression": "request.time < timestamp('2020-10-01T00:00:00.000Z')", } } ] }
YAML Example:
bindings: - members: - user:mike@example.com - group:admins@example.com - domain:google.com - serviceAccount:my-project-id@appspot.gserviceaccount.com role: roles/resourcemanager.organizationAdmin - members: - user:eve@example.com role: roles/resourcemanager.organizationViewer condition: title: expirable access description: Does not grant access after Sep 2020 expression: request.time < timestamp('2020-10-01T00:00:00.000Z')
For a description of IAM and its features, see the IAM developer’s guide.
- Return type
Policy
- streaming_pull(requests: Iterator[google.cloud.pubsub_v1.types.StreamingPullRequest] = None, *, retry: google.api_core.retry.Retry = <object object>, timeout: float = None, metadata: Sequence[Tuple[str, str]] = ()) → Iterable[google.cloud.pubsub_v1.types.StreamingPullResponse]¶
Establishes a stream with the server, which sends messages down to the client. The client streams acknowledgements and ack deadline modifications back to the server. The server will close the stream and return the status on any error. The server may close the stream with status
UNAVAILABLE
to reassign server-side resources, in which case, the client should re-establish the stream. Flow control can be achieved by configuring the underlying RPC channel.- Parameters
requests (Iterator[google.pubsub_v1.types.StreamingPullRequest]) – The request object iterator. Request for the StreamingPull streaming RPC method. This request is used to establish the initial stream as well as to stream acknowledgements and ack deadline modifications from the client to the server.
retry (google.api_core.retry.Retry) – Designation of what errors, if any, should be retried.
timeout (float) – The timeout for this request.
metadata (Sequence[Tuple[str, str]]) – Strings which should be sent along with the request as metadata.
- Returns
- Response for the StreamingPull method. This response is used to stream
messages from the server to the client.
- Return type
Iterable[google.pubsub_v1.types.StreamingPullResponse]
- subscribe(subscription, callback, flow_control=(), scheduler=None, use_legacy_flow_control=False, await_callbacks_on_shutdown=False)[source]¶
Asynchronously start receiving messages on a given subscription.
This method starts a background thread to begin pulling messages from a Pub/Sub subscription and scheduling them to be processed using the provided
callback
.The
callback
will be called with an individualgoogle.cloud.pubsub_v1.subscriber.message.Message
. It is the responsibility of the callback to either callack()
ornack()
on the message when it finished processing. If an exception occurs in the callback during processing, the exception is logged and the message isnack()
ed.The
flow_control
argument can be used to control the rate of at which messages are pulled. The settings are relatively conservative by default to prevent “message hoarding” - a situation where the client pulls a large number of messages but can not process them fast enough leading it to “starve” other clients of messages. Increasing these settings may lead to faster throughput for messages that do not take a long time to process.The
use_legacy_flow_control
argument disables enforcing flow control settings at the Cloud Pub/Sub server, and only the client side flow control will be enforced.This method starts the receiver in the background and returns a Future representing its execution. Waiting on the future (calling
result()
) will block forever or until a non-recoverable error is encountered (such as loss of network connectivity). Cancelling the future will signal the process to shutdown gracefully and exit.Note
This uses Pub/Sub’s streaming pull feature. This feature properties that may be surprising. Please take a look at https://cloud.google.com/pubsub/docs/pull#streamingpull for more details on how streaming pull behaves compared to the synchronous pull method.
Example:
from google.cloud import pubsub_v1 subscriber_client = pubsub_v1.SubscriberClient() # existing subscription subscription = subscriber_client.subscription_path( 'my-project-id', 'my-subscription') def callback(message): print(message) message.ack() future = subscriber_client.subscribe( subscription, callback) try: future.result() except KeyboardInterrupt: future.cancel() # Trigger the shutdown. future.result() # Block until the shutdown is complete.
- Parameters
subscription (str) – The name of the subscription. The subscription should have already been created (for example, by using
create_subscription()
).callback (Callable[Message]) – The callback function. This function receives the message as its only argument and will be called from a different thread/ process depending on the scheduling strategy.
flow_control (FlowControl) – The flow control settings. Use this to prevent situations where you are inundated with too many messages at once.
scheduler (Scheduler) – An optional scheduler to use when executing the callback. This controls how callbacks are executed concurrently. This object must not be shared across multiple SubscriberClients.
use_legacy_flow_control (bool) – If set to
True
, flow control at the Cloud Pub/Sub server is disabled, though client-side flow control is still enabled. If set toFalse
(default), both server-side and client-side flow control are enabled.await_callbacks_on_shutdown (bool) –
If
True
, after canceling the returned future, the latter’sresult()
method will block until the background stream and its helper threads have been terminated, and all currently executing message callbacks are done processing.If
False
(default), the returned future’sresult()
method will not block after canceling the future. The method will instead return immediately after the background stream and its helper threads have been terminated, but some of the message callback threads might still be running at that point.
- Returns
A
StreamingPullFuture
instance that can be used to manage the background stream.
- static subscription_path(project: str, subscription: str) → str¶
Returns a fully-qualified subscription string.
- property target¶
Return the target (where the API is).
- Returns
The location of the API.
- Return type
- test_iam_permissions(request: google.iam.v1.iam_policy_pb2.TestIamPermissionsRequest = None, *, retry: google.api_core.retry.Retry = <object object>, timeout: float = None, metadata: Sequence[Tuple[str, str]] = ()) → google.iam.v1.iam_policy_pb2.TestIamPermissionsResponse¶
- Tests the specified IAM permissions against the IAM access control
policy for a function.
If the function does not exist, this will return an empty set of permissions, not a NOT_FOUND error.
- Parameters
request (
TestIamPermissionsRequest
) – The request object. Request message for TestIamPermissions method.retry (google.api_core.retry.Retry) – Designation of what errors, if any, should be retried.
timeout (float) – The timeout for this request.
metadata (Sequence[Tuple[str, str]]) – Strings which should be sent along with the request as metadata.
- Returns
Response message for
TestIamPermissions
method.- Return type
TestIamPermissionsResponse
- update_snapshot(request: google.cloud.pubsub_v1.types.UpdateSnapshotRequest = None, *, retry: google.api_core.retry.Retry = <object object>, timeout: float = None, metadata: Sequence[Tuple[str, str]] = ()) → google.cloud.pubsub_v1.types.Snapshot¶
Updates an existing snapshot. Snapshots are used in <a href=”https://cloud.google.com/pubsub/docs/replay- overview”>Seek</a> operations, which allow you to manage message acknowledgments in bulk. That is, you can set the acknowledgment state of messages in an existing subscription to the state captured by a snapshot.
- Parameters
request (google.pubsub_v1.types.UpdateSnapshotRequest) – The request object. Request for the UpdateSnapshot method.
retry (google.api_core.retry.Retry) – Designation of what errors, if any, should be retried.
timeout (float) – The timeout for this request.
metadata (Sequence[Tuple[str, str]]) – Strings which should be sent along with the request as metadata.
- Returns
- A snapshot resource. Snapshots are used in
[Seek](https://cloud.google.com/pubsub/docs/replay-overview) operations, which allow you to manage message acknowledgments in bulk. That is, you can set the acknowledgment state of messages in an existing subscription to the state captured by a snapshot.
- Return type
google.pubsub_v1.types.Snapshot
- update_subscription(request: google.cloud.pubsub_v1.types.UpdateSubscriptionRequest = None, *, retry: google.api_core.retry.Retry = <object object>, timeout: float = None, metadata: Sequence[Tuple[str, str]] = ()) → google.cloud.pubsub_v1.types.Subscription¶
Updates an existing subscription. Note that certain properties of a subscription, such as its topic, are not modifiable.
- Parameters
request (google.pubsub_v1.types.UpdateSubscriptionRequest) – The request object. Request for the UpdateSubscription method.
retry (google.api_core.retry.Retry) – Designation of what errors, if any, should be retried.
timeout (float) – The timeout for this request.
metadata (Sequence[Tuple[str, str]]) – Strings which should be sent along with the request as metadata.
- Returns
A subscription resource.
- Return type
google.pubsub_v1.types.Subscription