【问题标题】:Is Function Filters supported for Azure functions using python?使用 python 的 Azure 函数是否支持函数筛选器?
【发布时间】:2020-10-29 09:54:15
【问题描述】:

我想在调用 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 azure azure-functions azure-webjobssdk


    【解决方案1】:

    不幸的是,python 中没有这样的过滤器概念(asp.net MVC 之类)。即使对于 C#,Function 中的过滤器也在预览中(可能会更改)。

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

    import logging
    
    import azure.functions as func
    from ..FlaskApp.wsgi import application # your flask app
    
    main = func.WsgiMiddleware(application).main
    

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

    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

    【讨论】:

    • 我的前置/后置脚本不是 FlaskApp。这仍然有效吗?此外,我还阅读了一些关于 AZ Durable functions 的内容。像 pre script --> ServerlessFunction1 --> post script 这样的链接函数可以满足我的用例,但我必须为所有无服务器函数编写编排器。并且,它将由 DurableTrigger 函数调用。正如example 中所做的那样
    • 是的,耐用的功能将是您需要的不错选择。
    猜你喜欢
    • 2018-03-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-04-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多