我正在寻找一种将标准 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)
到目前为止我已经尝试过:
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