Durable Functions Python v2活动函数读取Azure Blob CSV数据问题
解决Durable Functions Python v2读取Blob Storage CSV的问题
你的代码存在两个核心问题,导致无法读取Blob中的CSV数据:
- 没有使用Blob绑定注入的
inputblob参数,而是直接尝试读取本地不存在的housing.csv文件 - 缺少
pandas库的导入语句
以下是修正后的完整代码:
import azure.functions as func import azure.durable_functions as df # 新增pandas导入 import pandas as pd app = df.DFApp(http_auth_level=func.AuthLevel.ANONYMOUS) @app.route(route="orchestrators/client_function") @app.durable_client_input(client_name="client") async def client_function(req: func.HttpRequest, client: df.DurableOrchestrationClient) -> func.HttpResponse: instance_id = await client.start_new("orchestrator", None, {}) await client.wait_for_completion_or_create_check_status_response(req, instance_id) return client.create_check_status_response(req, instance_id) @app.orchestration_trigger(context_name="context") def orchestrator(context: df.DurableOrchestrationContext) -> str: result = yield context.call_activity("origin_analysis", '') return "finished" @app.blob_input(arg_name="inputblob", path="dataset/housing.csv", connection="BlobStorageConnection") @app.activity_trigger(input_name="blank") # 将绑定的inputblob参数加入函数参数列表 def origin_analysis(blank: str, inputblob: func.InputStream): # 通过inputblob直接读取CSV,它是一个流式文件对象 housing = pd.read_csv(inputblob) # 可以添加打印或返回逻辑验证数据 print(housing.sample(5)) return "Data loaded successfully"
关键修改说明:
- 添加
import pandas as pd语句,确保能使用pandas的CSV读取功能 - 在活动函数
origin_analysis的参数中加入inputblob: func.InputStream,这是Blob绑定注入的对象,对应你配置的arg_name="inputblob" - 调用
pd.read_csv(inputblob)直接读取流式对象,不需要本地文件路径
另外需要确保:
- 你的函数应用配置中已经正确设置了
BlobStorageConnection连接字符串,指向目标存储账户 - Blob容器
dataset中确实存在housing.csv文件
内容的提问来源于stack exchange,提问作者TY00
相关产品推荐
相关产品推荐

