我正在尝试在 Python 中使用持久函数,并且我想将状态存储在持久实体中。关于如何使用持久实体的文档很少,尤其是在 Python 中。我什至尝试阅读一些 C# 代码,但没有多大帮助。他们提供的唯一示例是从客户端函数调用的简单“计数器”函数,但我想从 Orchestrator 函数调用它。我能找到的唯一文档在这里:
本指南说我可以从协调器中做到这一点,这是他们提供的示例:
def orchestrator_function(context: df.DurableOrchestrationContext):
entityId = df.EntityId("Counter", "myCounter")
current_value = yield context.call_entity(entityId, "get")
if current_value < 10:
context.signal_entity(entityId, "add", 1)
return state
因此,遵循该文档会给我以下错误:
Exception: RuntimeError: function 'DurableFunctionsEntityPy' without a $return binding returned a non-None value
我曾尝试在 function.json 中为实体函数使用各种输出,但没有任何效果。大多数时候我收到一个错误,上面写着:
@durablefunctionsentitypy@myCounter: Function 'durablefunctionsentitypy (Entity)' failed with an error. Reason: Internal error: System.ArgumentNullException: Value cannot be null. (Parameter 'name')
这里需要做什么?
我对代码的“返回状态”部分也很困惑?“状态”在哪里定义?似乎他们把它扔在那里而没有显示任何方法让某人弄清楚。我希望微软多花一点时间来研究这些指南,这样它们才有意义!
请帮忙,我正在拔头发!