azure - 在本地运行 Azure Functions 时使用存根
问题描述
我有一个 Azure Functions (.NET Core) 项目,我想根据环境为某些类选择一个实现。类似于以下内容:
public class Startup : FunctionsStartup
{
public override void Configure(IFunctionsHostBuilder builder)
{
builder.Services.AddLogging();
#if azure environment
builder.Services.AddSingleton<IAzureApi, AzureApi>();
#else
builder.Services.AddSingleton<IAzureApi, AzureApiStub>();
#endif
}
}
最好的方法是什么?是否可以配置这种行为 local.settings.json?
解决方案
通过在配置文件中使用自定义属性来实现此目的的简单方法。
[FunctionName("CustomSettings")]
public static Task<HttpResponseMessage> Run([HttpTrigger(AuthorizationLevel.Anonymous, "GET")]HttpRequestMessage req, TraceWriter log)
{
var customSetting = Environment.GetEnvironmentVariable("AzureEnvironment", EnvironmentVariableTarget.Process);
if(customSetting == "Development")
{
//dosomething
}
}
在 Azure 门户中手动添加此属性 (AppSettings)。
更多信息-> https://docs.microsoft.com/en-us/sandbox/functions-recipes/environment-variables?tabs=csharp
https://docs.microsoft.com/en-us/azure/azure-函数/函数-dotnet-class-library#environment-variables
推荐阅读
- python - 可以在python中将复数解压缩为x和y吗?
- python - python的@property装饰器不起作用
- vue.js - 无法读取 VueJS 的环境变量
- wpf - 如何设置垂直 WPF WrapPanel 以使用尽可能多的列
- swift - 如何从 string.data 中获取 nil(使用:.utf8)
- css - 如何为没有边框的图标添加渐变色
- sql - 如何在 Snowflake 上的暂存文件中获取特定字段名称的列索引号?
- c++ - 用 C++ 构建一个不需要类实例化的库
- vue.js - Vue 3 中的可挂起组件是什么?
- react-native - 如何在 React Native 中重置 Picker 的选定值