在 Azure 持久函数中,如何将一个 activity 函数的输出作为另一个函数的输入
In Azure durable functions ,How can I get the output of one activity function as an input for another function
我正在使用 Azure Durable 函数启动新功能,并且我按照教程进行操作并且能够 运行 它没有任何错误。如我所见,我的要求是从 activity 函数之一获取输出并将其用作其他 activity 函数的输入,并且另一个 activity 函数不应该启动,除非前一个activity 功能已经完成。我该怎么做?
这是 运行s 的代码:我想将“Hello”activity 函数 return 的值 src_client 用作 activity函数“再见”
import logging
import json
import azure.functions as func
import azure.durable_functions as df
def orchestrator_function(context: df.DurableOrchestrationContext):
result1 = yield context.call_activity('Hello', "bestday-demo")
result2 = yield context.call_activity('Goodbye', "Seattle")
result3 = yield context.call_activity('Hello', "London")
return [result1, result2, result3]
main = df.Orchestrator.create(orchestrator_function)
这是我的 activity 函数“你好”
import logging
from myownsdk import myClient
def main(projectname: str) -> str:
SRC_PROJECT_DAY = projectname
src_client = myClient(
api_key= "Myapikey",
client_name= "Proj-DEMO_CLIENT",
project = SRC_PROJECT_DAY,
debug=False
)
return f"{src_client}"
这是我的 activity 功能“再见”。这个 return 的“再见西雅图”,但我想通过 Hello activity 函数传递我的 src_client 并使用它来获得更多结果。
import logging
from myownsdk import myClient
def main(name: str) -> str:
return f"GoodBye {name}!"
此外,我如何才能确定,只有当 Hello 已被执行并完成时,再见 运行s。感谢您的帮助。
这是因为您正在调用 goodbye 函数和 result2 中的字符串 Seattle 并且无法进行编排。
我观察到您的协调器功能与 original document 相比并不相同,因此请确保您以正确的方式调用它,按照以下代码尝试更改您的代码。
import azure.functions as func
import azure.durable_functions as df
def orchestrator_function(context: df.DurableOrchestrationContext):
result1 = yield context.call_activity('Hello', "bestday-demo")
result2 = yield context.call_activity('Goodbye', result1)
result3 = yield context.call_activity('Hello', result2)
return result3
main = df.Orchestrator.create(orchestrator_function)
另外,尝试改变你的再见Activity功能。
import logging
from myownsdk import myClient
def main(name: str) -> str:
return f"GoodBye seattle {name}!"
我正在使用 Azure Durable 函数启动新功能,并且我按照教程进行操作并且能够 运行 它没有任何错误。如我所见,我的要求是从 activity 函数之一获取输出并将其用作其他 activity 函数的输入,并且另一个 activity 函数不应该启动,除非前一个activity 功能已经完成。我该怎么做?
这是 运行s 的代码:我想将“Hello”activity 函数 return 的值 src_client 用作 activity函数“再见”
import logging
import json
import azure.functions as func
import azure.durable_functions as df
def orchestrator_function(context: df.DurableOrchestrationContext):
result1 = yield context.call_activity('Hello', "bestday-demo")
result2 = yield context.call_activity('Goodbye', "Seattle")
result3 = yield context.call_activity('Hello', "London")
return [result1, result2, result3]
main = df.Orchestrator.create(orchestrator_function)
这是我的 activity 函数“你好”
import logging
from myownsdk import myClient
def main(projectname: str) -> str:
SRC_PROJECT_DAY = projectname
src_client = myClient(
api_key= "Myapikey",
client_name= "Proj-DEMO_CLIENT",
project = SRC_PROJECT_DAY,
debug=False
)
return f"{src_client}"
这是我的 activity 功能“再见”。这个 return 的“再见西雅图”,但我想通过 Hello activity 函数传递我的 src_client 并使用它来获得更多结果。
import logging
from myownsdk import myClient
def main(name: str) -> str:
return f"GoodBye {name}!"
此外,我如何才能确定,只有当 Hello 已被执行并完成时,再见 运行s。感谢您的帮助。
这是因为您正在调用 goodbye 函数和 result2 中的字符串 Seattle 并且无法进行编排。
我观察到您的协调器功能与 original document 相比并不相同,因此请确保您以正确的方式调用它,按照以下代码尝试更改您的代码。
import azure.functions as func
import azure.durable_functions as df
def orchestrator_function(context: df.DurableOrchestrationContext):
result1 = yield context.call_activity('Hello', "bestday-demo")
result2 = yield context.call_activity('Goodbye', result1)
result3 = yield context.call_activity('Hello', result2)
return result3
main = df.Orchestrator.create(orchestrator_function)
另外,尝试改变你的再见Activity功能。
import logging
from myownsdk import myClient
def main(name: str) -> str:
return f"GoodBye seattle {name}!"