You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Azure Durable Functions如何将活动函数输出作为另一活动的输入

Azure Durable Functions 活动函数顺序执行与参数传递解决方案

1. 顺序执行的实现逻辑

你当前使用yield context.call_activity的写法已经天然保证了执行顺序。yield关键字会让编排器暂停执行,直到对应的活动函数运行完成并返回结果后,才会继续执行后续代码,因此Goodbye活动必然会在第一个Hello活动执行完成后才启动,无需额外配置。

2. 将Hello活动输出传递给Goodbye活动

根据你使用src_client的不同需求,分为两种实现方式:

方式1:仅传递src_client的字符串标识

你当前Hello活动返回的是字符串格式的src_client,直接修改编排函数中Goodbye活动的入参为第一个Hello活动的返回值即可:

import logging
import json

import azure.functions as func
import azure.durable_functions as df


def orchestrator_function(context: df.DurableOrchestrationContext):
    # 第一个Hello执行完成后才会继续向下执行
    result1 = yield context.call_activity('Hello', "bestday-demo")
    # 直接将Hello的返回值作为入参传给Goodbye
    result2 = yield context.call_activity('Goodbye', result1)
    result3 = yield context.call_activity('Hello', "London")
    return [result1, result2, result3]

main = df.Orchestrator.create(orchestrator_function) 

Goodbye活动代码无需修改,运行后会直接返回GoodBye <src_client字符串内容>!

方式2:在Goodbye中使用src_client实例的方法

你当前Hello活动中将src_client转为了字符串返回,会丢失实例的可调用方法,需要调整返回内容为可序列化的配置结构:

  • 调整Hello活动代码:
import logging
from myownsdk import myClient


def main(projectname: str) -> dict:
    SRC_PROJECT_DAY = projectname
    src_client = myClient(
        api_key= "Myapikey",
        client_name= "Proj-DEMO_CLIENT",
        project = SRC_PROJECT_DAY,
        debug=False
        )
    # 返回可序列化的客户端配置,也可直接返回myClient实例(需确保实例支持JSON序列化)
    return {
        "api_key": "Myapikey",
        "client_name": "Proj-DEMO_CLIENT",
        "project": SRC_PROJECT_DAY,
        "debug": False
    }
  • 调整Goodbye活动代码,初始化客户端后调用对应方法:
import logging
from myownsdk import myClient


def main(client_config: dict) -> str:    
    src_client = myClient(**client_config)
    # 此处可调用src_client的方法获取业务数据
    return f"GoodBye {src_client.project}!"

注意事项

  • Durable Functions所有活动的输入、输出都必须是JSON可序列化的,不可直接传递无法序列化的自定义对象,否则会出现运行时报错。
  • 编排函数需要保证确定性执行,不要在编排函数中编写随机数生成、实时时间获取等非确定性逻辑,这类逻辑需要放到活动函数中执行。

内容的提问来源于stack exchange,提问作者ZZZSharePoint

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.27 18:36:00