使用python的Azure函数是否支持函数过滤器?

问题描述

我想在调用azure函数时运行预处理/后处理逻辑。目前,我有4-5个Azure函数,应该使用相同的前后处理逻辑运行(仅参数会更改)。

本文介绍了在C#中执行此操作的一种方法:https://www.c-sharpcorner.com/article/do-you-know-azure-function-have-function-filters/

Comparison says no support for python language

我应该如何在python函数中实现它?

解决方法

不幸的是,在python中没有这样的Filter概念(像asp.net MVC一样)。即使对于C#,“功能”中的过滤器也处于预览状态(可能会更改)。

或者,您可以使用Python Function App现在支持的wsgi app。您可以使用wsgi应用程序覆盖函数的主要入口点。

import logging

import azure.functions as func
from ..FlaskApp.wsgi import application # your flask app

main = func.WsgiMiddleware(application).main

或者,通过更明确地维护Function入口点。

import logging

import azure.functions as func
from ..FlaskApp.wsgi import application # your flask app

def main(req: func.HttpRequest,context: func.Context) -> func.HttpResponse:
    return func.WsgiMiddleware(application).handle(req,context)

有关更多详细信息,请参见this

一旦连接了wsgi集成,就可以将包装器应用程序(例如Flask)用于中间件(如过滤器)中常见的前后处理逻辑。请参阅Hooking in WSGI Middleware

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...