有没有办法更改在消费计划下运行的Azure功能的当前5分钟超时限制?
对于某些数据分析计算,5分钟还不够.
使用webjobs的替代方法不允许并行执行该功能.
是否可以在Azure Functions中使用appsettings.json文件?
这里有环境变量的文档..
..但是我们使用Octopus进行部署,并且真的希望控制appsettings版本.
我们尝试过使用
{
"frameworks": {
"net46": {
"dependencies": {
"Microsoft.Extensions.Configuration": "1.0.0",
"Microsoft.Extensions.Configuration.Json": "1.0.0"
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
但不断得到
2016-11-23T15:27:03.811(12,16):错误CS0012:类型"对象"在未引用的程序集中定义.您必须添加对程序集'System.Runtime,Version = 4.0.0.0的引用
即使能够通过Octopus提供/更新环境变量也足以满足我们的需求.
请指教.
我想在我的Azure功能上使用一些共享类来不重复代码.
我试图创建一个空的C#函数并在函数内创建类,然后导入到其他函数:
#r "../Shared/Class.cs"
我的天蓝色储存中有大约800k的斑点.当我用blobTrigger创建azure函数时,它开始处理我在存储中的所有blob.如何将我的功能配置为仅针对新的和更新的blob触发?
我使用VS 2017 Publish机制在消费计划中部署了VS 2017 C#开发的Azure功能应用程序.所有功能都是定时器或服务总线触发.我看到在Azure门户中运行的状态,并且功能似乎正在工作,例如将行写入SQL Azure数据库,但是,在尝试检查或监视功能时,我经常遇到Azure门户中的错误,例如红色错误框弹出错误:
The function runtime is unable to start.
Session Id : xxxxxxxx
Timestamp : xxxxxxx
Run Code Online (Sandbox Code Playgroud)
我查看了日志,在日志文件中看不到任何明显的东西,我尝试部署到新的App Service并解决了一段时间的问题,但它已经回来了.我已将异常处理程序和异常消息中的所有函数包装到TraceWriter中,所有函数执行起来都非常快〜最多30-40秒.偶尔我也看到错误说"你没有权限xxx".
任何帮助非常感谢.
我在Azure中创建了一个虚拟机,然后将其删除.但是,关联的存储帐户仍然存在.我无法删除存储帐户,因为它包含一个容器,其中包含一个具有无限期租约的blob.
没有其他人使用此存储帐户.
我该如何删除这个blob?
使用Azure功能的绑定选项,可以根据从触发器派生的参数(例如,触发该功能的队列消息)指定要写入的Blob的名称; 文档显示了一个例子.
我的问题是:处理blob名称事先不知道的情况的最佳方法是什么,但实际上是作为函数执行的一部分计算的?
并且相关:如果函数可能会或可能不会产生输出blob(或多个输出blob!),根据其计算结果怎么办?
据我所知,Azure Function的绑定机制在这些情况下没有多大帮助,最简单的方法是引用一个用azure blob编写"经典方式"的程序集.但是有更惯用的方式吗?
我正在使用Azure Functions CLI工具在本地测试Azure Functions应用程序.有什么办法可以为本地主机配置CORS设置吗?
我有一个Azure功能应用程序,它创建一个预编译的DLL(因此它使用普通的.cs文件,而不是旧的.csx方法,VS2017之前).以前,它的目标是.Net Framework 4.5.2.我将其更新为4.7,以便使用一些新的C#7功能.我通过"Update-Package -Reinstall"更新了我的NuGet包,并验证它们都在packages.config文件中设置了"net47"目标.
一切都很好.但是当我调用一个使用2 HttpRequestMessageExtensions种方法中的任何一种的函数时,我得到一个异常.例外的一个例子是:
Method not found: 'System.Net.Http.HttpResponseMessage
System.Net.Http.HttpRequestMessageExtensions.CreateResponse(
System.Net.Http.HttpRequestMessage, System.Net.HttpStatusCode)'.
Run Code Online (Sandbox Code Playgroud)
这是一个导致错误的微小测试函数的示例:
using System.Net;
using System.Net.Http;
public static HttpResponseMessage Run(HttpRequestMessage req)
{
return req.CreateResponse(HttpStatusCode.Accepted, "");
}
Run Code Online (Sandbox Code Playgroud)
一旦用Postman调用此函数,我将收到上述异常.我也得到了类似的方法,未发现异常,当我打电话GetQueryNameValuePairs()的HttpRequestMessage.
我已经尝试将我的NuGet包更新到最新,没有区别.我已经清理并重建并重新启动了很多次,确保核对我的bin和obj目录.
我不确定可能是什么问题.我想我可以降级回.Net 4.5.2,但我宁愿不.首先,我想使用C#7,而对于两个,我想了解问题是什么而不是避免它.
更新:有趣.问题似乎与System.Net.Http.如果我把它降低到4.0.0一切正常.如果我把它提升到任何更高版本,我会得到上面列出的问题.我尝试将我的每个软件包逐个降低到之前的版本号,以便找到它.然后我将所有这些更新到最新版本,它修复了问题.
我使用 ILogger 的注入实例而不是 TraceWritter。该实例是从 Azure Function Runtime 注入的。我想记录捕获的异常。LogError 唯一可以接受异常的重载是 LoggerExtensions 类的扩展方法:
void LogError(this ILogger logger, EventId eventId, Exception exception, string message, params object[] args)
Run Code Online (Sandbox Code Playgroud)
问题是:这个方法接收一个 EventId 作为第二个参数,我可以从哪里获取当前的 EventId 在这里使用?(我想每个 AF 执行都有他唯一的 EventId)。