普通Azure Function与Durable Azure Function能否共存及函数文件拆分问题
关于Azure Functions的两个常见问题解答
1. 普通Azure Function与Durable Azure Function是否可以共存于同一个Function App中?
完全可以共存。Durable Functions是Azure Functions的扩展能力,只要在Function App中安装了对应语言的Durable扩展包(Python环境下为azure-functions-durable),就能同时部署普通触发型函数(如HTTP、Timer、Blob触发)和Durable编排器、活动函数。实际开发中很常见这种组合,比如用普通HTTP函数作为Durable工作流的入口,或者用Timer触发函数定时启动Durable编排,同时保留其他独立的普通处理函数。
2. Function App中的所有函数是否必须放在同一个function_app.py文件内?若可以拆分,项目结构应如何设计?
不需要集中在单个文件里,完全可以按功能拆分到不同目录和文件中,推荐的Python Azure Functions项目结构如下:
MyFunctionApp/ ├── host.json # 全局配置文件 ├── local.settings.json # 本地开发配置 ├── requirements.txt # 依赖包声明 ├── shared/ # 共享代码模块(可选) │ └── utils.py ├── HttpTriggerDemo/ # 普通HTTP触发函数目录 │ ├── function.json # 函数绑定配置 │ └── http_handler.py # 函数业务代码 ├── DurableOrchestrator/ # Durable编排器函数目录 │ ├── function.json │ └── orchestrator_logic.py ├── DurableActivityTask/ # Durable活动函数目录 │ ├── function.json │ └── activity_task.py └── TimerTriggerCleanup/ # 普通Timer触发函数目录 ├── function.json └── timer_handler.py
- 每个函数对应独立目录,目录内包含
function.json(配置触发规则、输入输出绑定)和业务代码文件; - 共享代码可放在根目录的
shared文件夹中,在各函数代码里通过相对路径导入; - 部署时直接打包整个项目目录,Azure Functions运行时会自动扫描所有子目录中的
function.json来识别并加载所有函数。
内容的提问来源于stack exchange,提问作者Rafael
相关产品推荐
相关产品推荐

