我们正在使用Azure函数构建http触发器。
import logging
import azure.functions as func
def main(req: func.HttpRequest) -> func.HttpResponse:
logging.info('Python HTTP trigger function processed a request.')
name = req.params.get('name')
if not name:
try:
req_body = req.get_json()
except ValueError:
pass
else:
name = req_body.get('name')
if name:
return func.HttpResponse(f"Hello, {name}. This HTTP triggered function executed successfully.")
else:
return func.HttpResponse(
"This HTTP triggered function executed successfully. Pass a name in the query string or in the request body for a personalized response.",
status_code=200
)
从线上平台,我们可以通过添加参数来触发它,并在屏幕上打印出来。
一旦我们尝试从src文件夹导入文件,该文件夹与HttpTrigger1
处于同一级别,
import src.main
我们有以下错误:
load_function. Sys路径出错:【'C:\用户\阿里迈迪\应用数据\漫游\npm\节点模块\Azure功能核心工具\bin\worker\python\3.10\WINDOWS\X64',
它指出main.py
,我们已经加载了一个名为load_toml
的库。同样,在www.example.com中main.py从src文件夹导入。
所以它在每个模块上抛出相同的错误。
我们确实检查了文件,特别是以下部分:
当使用绝对导入语法时,shared_code/文件夹需要包含一个init.py文件,以将其标记为Python包。
我们仍然不知道该怎么做。你知道如何将其他模块导入到Azure http触发器函数中吗?
1条答案
按热度按时间qaxu7uf21#
在我之前的一个workarounds中,我在srclike文件夹中创建了一个Python文件,该文件夹与Azure Functions Python项目中的HttpTriggerFunction Folder级别处于同一级别。
这是我在Http触发器函数中使用的绝对路径:
绝对路径很适合用于上述场景,例如将模块作为Python包导入到其他文件中。
请参考用户@HassanAbbas 提供的SO #58318794上的类似场景。