从类库或 nuget 引用共享 Azure Function

kid*_*haw 5 azure-functions

我正在寻找一种将标准 azure 函数添加到每个 azure 函数项目的方法。我们的环境要求所有 API 都有一个运行状况端点,因此为了保持一致,我想编写一次并多次使用它。

我的想法是将该函数放在类库中,然后在我的azure函数项目中引用它,但它似乎不起作用。对于我尝试过的每件事,仅显示我的 azure 函数项目中的函数。

这是我的共享函数类,写在单独的引用类库中:

    public class HealthEndpointFunctions
    {
        [FunctionName("Health")]
        public async Task<IActionResult> Health(
            [HttpTrigger(AuthorizationLevel.Anonymous, "get", Route = "health")] HttpRequest req)
        {
            return new OkResult();
        }
    }
Run Code Online (Sandbox Code Playgroud)

到目前为止我已经尝试过:

  1. 只是添加一个项目引用,希望它能被识别,但该功能未列出。
  2. 将函数类添加到使用此函数作为基类的 azure 函数项目
public class Function1 : HealthEndpointFunctions
    {
        [FunctionName("Function1")]
        public  async Task<IActionResult> Run(
            [HttpTrigger(AuthorizationLevel.Anonymous, "get", "post", Route = null)] HttpRequest req)
        {
            return new OkObjectResult("OKely dokely");
        }
    }
Run Code Online (Sandbox Code Playgroud)

...在这种情况下,仅Function1在派生类中可用

我觉得天蓝色功能项目中必须有一些配置才能启用此功能(如果确实可能的话)。

也欢迎建议其他方法。

小智 8

如果您将<FunctionsInDependencies>true</FunctionsInDependencies>csproj 添加到函数中,它将拉取任何依赖程序集中找到的任何函数。

需要注意的是,必须加载程序集才能使其工作。在下面的示例中,我使用启动来进行无操作调用,该调用加载带有该函数的程序集。

https://github.com/lukesharmansmith/FuncFromDependency