MartinSahlen / cloud-functions-python

Get some python in google cloud functions
203 stars 29 forks source link

functions can't finish execute when its response "Content-Type" is "text/plain" or "text/html" #16

Open karheng opened 7 years ago

karheng commented 7 years ago

@MartinSahlen Based on the logs, there is response payload. However, the function seems continue running, can't finish execute until encounter "connection error". Thus, can't get the response from the functions URL.

image

from cloudfn.flask_handler import handle_http_event
from flask import Flask, request, Response

app = Flask('the-function')

@app.route('/run', methods=['GET'])
def testrun():
    return Response(str(123456), mimetype='text/plain')

handle_http_event(app)
MartinSahlen commented 7 years ago

@karheng Thanks for submitting issue. Are you able to run this with a json response body and string just to see if we can zone in on where the issue might be?

karheng commented 7 years ago

@MartinSahlen Yes, when is json response body, function will finish execute immediately once the response returned.

image

MartinSahlen commented 7 years ago

@karheng , I'll have a a look! Thanks for providing the info! Wondering if this is related to the fact that the body in the first request you posted that failed seems to be an integer and not a string, and if I'm doing something wrong in the parsing / unparsing.

karheng commented 7 years ago

@MartinSahlen You're right! I tested with string, it's working fine. However, I did convert the integer to string, still can't work (above python code). image

MartinSahlen commented 7 years ago

Yes! I was just trying to locate where the error might be. You did convert the number correctly, however my code does not seem to handle serialization correctly. So I just needed to see that, makes it a lot easier for me to fix the issue. It should be a fast fix, thanks for helping debug.

MartinSahlen commented 7 years ago

I'll have a look at this during the weekend!