首页 > 解决方案 > 编排多个 Azure 函数(powershell 和 C#)

问题描述

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

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

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

  1. 等待 Powershell 函数,直到 PowerBI Embedded 运行
  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;
}

有什么线索吗?

标签: c#azure-functionsazure-powershellazure-function-app

解决方案


Durable PowerShell Functions 即将推出公共预览版,您现在可以使用这些说明试用它们。您还可以在此处查看进度并留下您的反馈。

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


推荐阅读