У меня есть долговременная функция, которая запускается один раз в день по триггеру таймера:
[FunctionName("MyDurableFunction")]
public static async Task Run(
[TimerTrigger("0 0 23 * * *", RunOnStartup = false)] TimerInfo myTimer,
[OrchestrationClient] DurableOrchestrationClient starter,
ILogger log)
{
await starter.StartNewAsync("OrchestrationFunction", null);
}
[FunctionName("OrchestrationFunction")]
public static async Task OrchestrationFunction(
[OrchestrationTrigger]DurableOrchestrationContext context,
ILogger log)
{
// do stuff
}
Это прекрасно работает.В целях тестирования я также хотел бы иметь возможность запускать долговременную функцию через Http Trigger, поэтому я добавил это:
[FunctionName("MyDurableFunctionHttpTrigger")]
public static async Task<IActionResult> Run(
[HttpTrigger(AuthorizationLevel.Anonymous, "get", "post", Route = "demo")]HttpRequest req,
[OrchestrationClient] DurableOrchestrationClient starter,
ILogger log)
{
await starter.StartNewAsync("OrchestrationFunction", null);
return new OkObjectResult("blah");
}
Запуск этих локально, включая либо HTTP-триггер, либо таймер-триггер вызоветФункция, но включение обоих в класс означает, что ни одно из событий триггера не произойдет.Можно ли иметь несколько типов триггеров для запуска триггера оркестровки?