eventarc-advanced-quickstart/server.py (41 lines of code) (raw):

#!/usr/bin/env python3 import logging from logging.config import dictConfig from flask import Flask, request from markupsafe import escape dictConfig({ 'version': 1, 'formatters': {'default': { 'format': '[%(asctime)s] %(levelname)s in %(module)s: %(message)s', }}, 'handlers': {'wsgi': { 'class': 'logging.StreamHandler', 'stream': 'ext://flask.logging.wsgi_errors_stream', 'formatter': 'default' }}, 'root': { 'level': 'INFO', 'handlers': ['wsgi'] } }) app = Flask(__name__) @app.route('/subpath/<subpath>', methods=['POST']) def dump_request_data(subpath): app.logger.info("%s request,\nPath: %s\nHeaders:\n%s\n", request.method, str(request.path), str(request.headers)) app.logger.info("Body: %s", request.get_data()) return 'Subpath %s' % escape(subpath) @app.route('/', methods=['POST']) def basic(): app.logger.info("basic paths\n") app.logger.info("%s request,\nPath: %s\nHeaders:\n%s\n", request.method, str(request.path), str(request.headers)) app.logger.info("Body: %s", request.get_data()) return 'pong' @app.after_request def print_header(response): app.logger.info("Headers: %s", response.headers) return response if __name__ == '__main__': from sys import argv if len(argv) == 2: app.run(port=int(argv[1]), host="0.0.0.0") else: app.run(host="0.0.0.0")