有没有一种方法可以检查GCP(HTTP)云函数中的请求/响应标头而不显式记录它们



我尝试了Logging和Traces,但没有找到查看请求标头的方法。有没有比显式记录req.headers更好的方法?

Google Cloud会自动记录服务的技术信息(您可以在审核日志配置中增加日志的详细程度(。标准用法,对您的服务(云功能、云运行、应用程序引擎(执行的请求没有其内容(车斗和收割台(已记录。只有系统事件:";已经从该IP接收到一个post请求,HTTP响应为200,处理持续时间为500ms";。

您可以解析HTTP请求。但请确保您的HTTP触发函数具有公共访问权限[1]。然后您可以轻松地处理HTTP请求标头[2]。这里有一个例子:

from flask import escape
def hello_content(request):
""" Responds to an HTTP request using data from the request body parsed
according to the "content-type" header.
Args:
request (flask.Request): The request object.
<https://flask.palletsprojects.com/en/1.1.x/api/#incoming-request-data>
Returns:
The response text, or any set of values that can be turned into a
Response object using `make_response`
<https://flask.palletsprojects.com/en/1.1.x/api/#flask.make_response>.
"""
content_type = request.headers['content-type']
if content_type == 'application/json':
request_json = request.get_json(silent=True)
if request_json and 'name' in request_json:
name = request_json['name']
else:
raise ValueError("JSON is invalid, or missing a 'name' property")
elif content_type == 'application/octet-stream':
name = request.data
elif content_type == 'text/plain':
name = request.data
elif content_type == 'application/x-www-form-urlencoded':
name = request.form.get('name')
else:
raise ValueError("Unknown content type: {}".format(content_type))
return 'Hello {}!'.format(escape(name))

您还可以处理HTTP方法,如GET、POST等[3]。

相关内容

  • 没有找到相关文章

最新更新