我是Azure的新功能...我已经创建了一个新的计时器功能(将每30分钟触发一次),它必须对网址执行查询,然后在缓冲区上推送数据.
我弄完了
public static void Run(TimerInfo myTimer, TraceWriter log)
{
var s = CloudConfigurationManager.GetSetting("url");
log.Info(s);
}
Run Code Online (Sandbox Code Playgroud)
在我的功能设置中,我已经
我究竟做错了什么?谢谢
在过去的24小时里,我一直在阅读有关如何创建Azure功能的所有内容,并已成功将MVC WebApi转换为具有多个功能的新功能应用程序.我的问题是我没有找到任何关于如何使用它们进行最基本的身份验证的明确文档或教程.
我的情景很简单.在我的AAD中配置用户,然后授予这些用户访问特定功能的权限.网站上的用户将点击UI元素,这些元素又会触发调用我的Azure功能的Javascript.在函数中,我需要能够以某种方式验证它们的身份,因为我将把它传递给与SQL实例交互的其他函数.
有人可以指点我的文档,文章,一个例子,一些东西,这表明我如何实现这一目标?
为了记录,我在门户网站上找到了我的功能应用程序的"身份验证"配置,并选择了AAD作为我的身份验证提供程序.我已经添加了我的功能应用程序并配置了一些用户.然后我编写了以下测试函数:
[FunctionName("GetThings")]
public static HttpResponseMessage Run([HttpTrigger(AuthorizationLevel.User, "GET", Route = null)]HttpRequestMessage req, TraceWriter log)
{
log.Info("Getting all the things");
var identity = ClaimsPrincipal.Current.Identity;
return identity.IsAuthenticated ?
req.CreateResponse(HttpStatusCode.Unauthorized, "Not authenticated!") :
req.CreateResponse(HttpStatusCode.OK, $"Hi {identity.Name}!");
}
Run Code Online (Sandbox Code Playgroud)
目前,当我尝试直接点击端点时,我会被重定向到登录页面......所以我猜这部分是有效的.我如何生成/检索用户令牌,将请求发送到函数或在服务器上处理它们并不清楚.
救命?
我的函数是引用一个引用Microsoft.Extensions.Logging.Abstractions 2.0.0的程序集.如果我将该版本的nuget引用添加到函数的程序集中,则函数执行将失败:
[1/25/2018 11:14:46 PM] Microsoft.Azure.WebJobs.Host:错误索引方法'TrainingFunction.Run'.Microsoft.Azure.WebJobs.Host:无法将参数'log'绑定到类型ILogger.确保绑定支持参数Type.如果您正在使用绑定扩展(例如ServiceBus,Timers等),请确保您已在启动代码中调用扩展的注册方法(例如config.UseServiceBus(),config.UseTimers()等).
是否可以在Azure功能中使用较新的记录器?(SDK 1.0.7)
在Visual Studio 2019中使用.NET5 Azure 函数,我从 Program.cs 中收到以下异常:
System.InvalidOperationException:无法解析 gRPC 通道 URI“http://0”
我Program.cs的如下:
public static void Main()
{
var host = new HostBuilder()
.ConfigureFunctionsWorkerDefaults()
.ConfigureServices(services =>
{
services.AddSingleton<IConfiguration>(data =>
{
var result = new ConfigurationBuilder()
.SetBasePath(Directory.GetCurrentDirectory())
.AddJsonFile("AppSettings.json", false, true)
.AddJsonFile($"AppSettings.{Environment.GetEnvironmentVariable("ASPNETCORE_ENVIRONMENT") ?? "Production"}.json", true)
.AddEnvironmentVariables()
.Build();
return result;
});
services.AddSingleton<IServiceProvider, ServiceProvider>();
})
.UseDefaultServiceProvider(options => options.ValidateScopes = false)
.Build();
host.Run();
}
Run Code Online (Sandbox Code Playgroud)
异常是host.Run()在调试模式下抛出的。有什么线索吗?
我有一个 Azure 函数,它使用 Serilog 通过Serilog AppInsights 接收器 v3.1写入 AppInsights 。
中的代码Startup.cs看起来像这样
Log.Logger = new LoggerConfiguration()
.ReadFrom.Configuration(config)
.CreateLogger();
Run Code Online (Sandbox Code Playgroud)
和appsettings.json
"Serilog": {
"Using": [
"Serilog.Sinks.ApplicationInsights"
],
"WriteTo": [
{
"Name": "ApplicationInsights",
"Args": {
"instrumentationKey": "...",
"restrictedToMinimumLevel": "Verbose",
"telemetryConverter": "Serilog.Sinks.ApplicationInsights.Sinks.ApplicationInsights.TelemetryConverters.TraceTelemetryConverter, Serilog.Sinks.ApplicationInsights"
}
}
],
...
Run Code Online (Sandbox Code Playgroud)
它可以愉快地将应用程序日志写入AppInsights。
最新的 Github文档提到了遥测配置活动的弃用以及仪器密钥的未来删除支持,因此我想将该库升级到版本 4.0。
但是,当我将接收器升级到 v4.0 时,出现以下异常:
请帮忙。
在编写C#函数时,Azure函数之间ICollector<T>和之间的区别是什么IAsyncCollector<T>(也适用于WebJobs)?
我从样本中了解到这些是我可以用来将函数参数绑定到输出绑定的接口.我也理解这两个接口相应地具有非异步和异步方法签名(即ICollector<T>.Add(item)和IAsyncCollector<T>.AddAsync(item)).但他们在封面下做了什么?它们实际上是将数据发布到输出绑定,还是在函数执行结束时进行内部缓冲和刷新(在这种情况下,为什么会有AddAsync方法)?
有没有办法更改在消费计划下运行的Azure功能的当前5分钟超时限制?
对于某些数据分析计算,5分钟还不够.
使用webjobs的替代方法不允许并行执行该功能.
我正在开发Azure函数计时器Job,我需要从appsettings获取cron表达式.请告诉我,如何从Azure功能中的appsettings中获取价值.我希望每隔30分钟从上午9:00到下午12:00运行我的天蓝色功能
{
"disabled": false,
"bindings": [
{
"name": "timerInfo",
"type": "timerTrigger",
"direction": "in",
"schedule": "0 * * * * *"
}
]
}
Run Code Online (Sandbox Code Playgroud) 我知道这似乎很简单但我在网上找不到任何帮助.
当我使用Visual Studio发布它时,我想要包含一个文件(.html)和我的azure函数.然后我希望能够在Azure功能中访问此文件.为什么?我发布时似乎只有.dll被发送到服务器.
此文件将是一个.html文件,它将是一个电子邮件模板.我想在我的功能中阅读它,然后发送电子邮件.
任何帮助深表感谢.
我看到我可以使用[在Azure功能中发送网格] [1],但看起来我只能发送一封电子邮件而不是多封电子邮件,这就是我想要的.
APPINSIGHTS_INSTRUMENTATIONKEY 包含 Application Insights 的检测密钥。
APPLICATIONINSIGHTS_CONNECTION_STRING包含前缀为 的 Application Insights 的检测键InstrumentationKey=。
除非每个值都通过 Application Insights 启用某些功能,否则这似乎毫无意义。