streaming-data-to-analytics/code/main.py (26 lines of code) (raw):

import http import os import logging from wsgiref import validate from flask import Flask, request from google.cloud import pubsub_v1 PROJECT_ID = os.environ.get("PROJECT_ID") TOPIC_ID = os.environ.get("TOPIC_ID") app = Flask(__name__) @app.route("/", methods=['POST']) def publish(): try: # Request validation args = request.args entity = args.get("entity") if not entity: entity = "unknown" # Get the request data data = request.get_data() # TO-DO - If you need to validate the request, add your code here # Pub/sub publisher publisher = pubsub_v1.PublisherClient() topic_path = publisher.topic_path(PROJECT_ID, TOPIC_ID) # Publish the message to Pub/sub publisher.publish(topic_path, data, entity=entity) except Exception as ex: logging.error(ex) return 'error:{}'.format(ex), http.HTTPStatus.INTERNAL_SERVER_ERROR return 'success' if __name__ == "__main__": app.run(debug=False, host="0.0.0.0", port=int(os.environ.get("PORT", 8080)))