编排多个 Azure 函数(powershell 和 C#)

Orchrestrate multiple Azure Functions (powershell & C#)

我有 2 个 Azure Functions - Powershell。一个将恢复 PowerBI Embedded Capacity,另一个将暂停它。

然后我有 1 个 Azure Function - C#,一旦 PowerBI Embedded Capacity 为 运行ning 就必须 运行。

因此,为了做到这一点,我需要一个执行以下操作的 Orchestrator 函数:

  1. 等待 Powershell 函数,直到 PowerBI Embedded 运行ning
  2. 等待 C# 函数执行一些任务
  3. 等待 Powershell 函数暂停 PowerBI Embedded

我正在研究这段代码,但我想这只有在所有函数都是 C# 并且在同一个函数应用程序中时才有效。因为我有 C# 和 Powershell,所以我有 2 个函数应用程序。

[FunctionName("E1_HelloSequence")]
public static async Task<List<string>> Run(
    [OrchestrationTrigger] IDurableOrchestrationContext context)
{
    var outputs = new List<string>();

    outputs.Add(await context.CallActivityAsync<string>("E1_SayHello", "Tokyo"));
    outputs.Add(await context.CallActivityAsync<string>("E1_SayHello", "Seattle"));
    outputs.Add(await context.CallActivityAsync<string>("E1_SayHello_DirectInput", "London"));

    // returns ["Hello Tokyo!", "Hello Seattle!", "Hello London!"]
    return outputs;
}

有线索吗?

Durable Functions 目前支持以下语言:

C#: both precompiled class libraries and C# script.
JavaScript: supported only for version 2.x of the Azure Functions runtime. Requires version 1.7.0 of the Durable Functions extension, or a later version.
F#: precompiled class libraries and F# script. F# script is only supported for version 1.x of the Azure Functions runtime.

目前不支持powershell功能。如果你想要这个功能,你可以给这个feedback语音提示实现。

Durable PowerShell 函数即将进入 Public 预览版,您现在可以使用这些 instructions. You can also watch the progress and leave your feedback here.

试用它们

但是,您的协调器函数和 activity 函数必须驻留在同一个函数应用程序中,但您不能在同一个应用程序中混合使用 PowerShell 和 C# 函数。我建议将 C# 函数转换为 PowerShell:也许您可以在 PowerShell 中重写此代码,或将 C# 代码包装到 PowerShell 模块中,或使用 Add-Type cmdlet 将 C# 代码注入 PowerShell。或者,将您的 PowerShell 函数转换为 C# 函数。