def publish(self, topic, messages, options=None): """ Adds one or more messages to the topic. Returns ``NOT_FOUND`` if the topic does not exist. The message payload must not be empty; it must contain either a non-empty data field, or at least one attribute. Example: >>> from google.cloud.gapic.pubsub.v1.publisher_api import PublisherApi >>> from google.pubsub.v1 import pubsub_pb2 >>> api = PublisherApi() >>> topic = api.topic_path('[PROJECT]', '[TOPIC]') >>> data = '' >>> messages_element = pubsub_pb2.PubsubMessage(data) >>> messages = [messages_element] >>> response = api.publish(topic, messages) Args: topic (string): The messages in the request will be published on this topic. messages (list[:class:`google.pubsub.v1.pubsub_pb2.PubsubMessage`]): The messages to publish. options (:class:`google.gax.CallOptions`): Overrides the default settings for this call, e.g, timeout, retries etc. Returns: A :class:`google.pubsub.v1.pubsub_pb2.PublishResponse` instance. Raises: :exc:`google.gax.errors.GaxError` if the RPC is aborted. """ request = pubsub_pb2.PublishRequest(topic=topic, messages=messages) return self._publish(request, options)
def publish(stub, topic, message): message_payload = [] message_payload.append(pubsub_pb2.PubsubMessage(data=message)) req = pubsub_pb2.PublishRequest(topic=topic, messages=message_payload) try: resp = stub.Publish(req, TIMEOUT) for t in resp.message_ids: print("Message ID: {}".format(t)) except NetworkError, e: logging.warning('Failed to list topics: {}'.format(e)) sys.exit(1)