很大程度上是一个XY问题,但我对底层的答案也很感兴趣.XY上下文见底。
namespace MyProj.Functions
{
internal class CustomStartup : IWebJobsStartup
{
public void Configure(IWebJobsBuilder builder)
{
var isDevelopment = true; //Can I correctly populate this, such that it's true only for local Dev?
if(isDevelopment)
{
// Do stuff I wouldn't want to do in Prod, or on CI...
}
}
}
}
我已经为我的Function设置了SwaggerSwashbuckle,理想情况下,我希望当我在本地启动Function时,它能自动打开Swagger页面。
在API项目中,这在项目属性中是很容易实现的,但是Functions csproj没有 "onDebug "启动网页的选项,整个项目属性页都是灰色的。
以上是我调用的上下文。builder.AddSwashBuckle(Assembly.GetExecutingAssembly());
我已经添加了一个呼叫 Diagnostics.Process
在启动过程中启动一个网页。这对我来说很好用。我目前在一个 [Conditional("DEBUG")]
标志,但如果可能的话,我希望它能更有约束性。绝对欢迎其他的解决方案,但我还没能找到任何解决方案,所以 ...
虽然我不完全确定在 azure functions 中是否可以,但我认为设置 ASPNETCORE_ENVIRONMENT 应用程序设置,如在 https:/docs.microsoft.comen-usazureazure-functionsfunctions-如何使用azure-function-app-settings。 应该允许你通过注入一个IHostEnvironment依赖和检查
.IsDevelopment()
在注入的依赖关系上。