首页 > 解决方案 > 在 Azure Function App 上的 Flask 中从 POST 请求传递 JSON 数据

问题描述

我正在尝试将 JSON 请求传递给 Flask 并将其部署在 Azure 函数应用中。我按照这个线程将我的 Python Flask 应用程序部署到 Azure。我通过在 URL 中传递参数并使用 GET 请求测试了代码,它正在工作。

我的要求是通过传递 JSON POST 请求来触发代码。但是当我测试它时,我收到一个“500 Internal Server Error”,上面写着“服务器遇到内部错误,无法完成您的请求。服务器过载或应用程序出错”

import logging
import azure.functions as func
import request
from flask import Flask, request, make_response, jsonify

app = Flask(__name__)

@app.route('/')
def hello_world():
    return 'Hello World!'

# function for responses (POST Request)
def results():
    # build a request object
    req = request.get_json(silent=True, force=True)

    # fetch action from json
    action = req.get('queryResult').get('action')

    # return a fulfillment response
    return {'fulfillmentText': 'This is a response from webhook.'}

# create a route for webhook
@app.route('/webhook', methods=['GET', 'POST'])
def webhook():
    # return response
    return make_response(jsonify(results()))

def main(req: func.HttpRequest) -> func.HttpResponse:
    logging.info('Python HTTP trigger function processed a request.')
    uri=req.params['uri']
    with app.test_client() as c:
        doAction = {
            "GET": c.get(uri).data,
            "POST": c.post(uri).data
        }
        resp = doAction.get(req.method).decode()
        return func.HttpResponse(resp, mimetype='text/html')

我的 requirements.txt 文件看起来像这样。

在此处输入图像描述

标签: pythonflaskazure-function-app

解决方案


推荐阅读