我看到Azure现在在功能应用程序中支持Python(预览版)。我有一个现有的Flask应用程序,想知道是否可以在不进行重大更改的情况下将该功能部署为功能应用程序?
我已经通读了在函数应用程序中使用Python的Azure教程(https://docs.microsoft.com/zh-cn/azure/azure-functions/functions-reference-python),但是未使用flask框架...
我尝试了不同的方法来将Azure Python功能与Flask框架集成在一起。最后,我做到了,我叫HttpTrigger功能成功TryFlask通过app.test_client()。
这是我的示例代码,如下所示。
import logging
import azure.functions as func
from flask import Flask, request
app = Flask(__name__)
@app.route('/')
def hello_world():
return 'Hello World!'
@app.route('/hi')
def hi():
return 'Hi World!'
@app.route('/hello')
@app.route('/hello/<name>', methods=['POST', 'GET'])
def hello(name=None):
return name != None and 'Hello, '+name or 'Hello, '+request.args.get('name')
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')
为了测试在本地和天青,访问的URL /,“/ HI”和/hello通过URL http(s)://<localhost:7071 or azurefunchost>/api/TryFlask查询字符串?uri=/,?uri=/hi并?uri=/hello/peter-pan在浏览器中,并做POST了相同的URL方法上面的查询字符串?uri=/hello/peter-pan,这些都是工作。请在下面的本地图中查看结果,在云上也是如此。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。