我创建了一些使用触发器的Azure Webjobs,我刚刚学习了Azure Functions.
根据我的理解,Azure Functions似乎与Azure Webjobs功能重叠,我有一些难以理解何时在Function和Webjob之间进行选择:
与Webjobs不同,函数只能被触发,它不是为了运行连续过程而设计的(但您可以编写代码来创建连续函数).
您可以使用多种语言编写Webjobs和函数(C#,node.js,python ...),但您可以从Azure门户编写函数,以便更容易,更快地开发测试和部署函数.
Webjobs在App Service Web应用程序,API应用程序或移动应用程序的上下文中作为后台进程运行,而Function则使用Classic/Dynamic App Service Plan运行.
关于缩放,函数似乎提供了更多的可能性,因为您可以使用动态应用程序服务计划,并且您可以扩展单个函数,而对于webjob,您必须扩展整个Web应用程序.
因此,确定存在价格差异,如果您运行现有的Web应用程序,您可以使用它来运行webjob而无需任何额外费用但是如果我没有现有的Web应用程序而且我必须编写代码来触发队列我应该使用webjob还是函数?
您需要选择时还需要记住其他注意事项吗?
根据我的理解,在云中运行小的可重复任务.
我可以选择哪种原因以及在什么情况下选择其中一种?
尝试更新我的Service Bus应用程序以使用新的RTM,我需要这些信息.
<add name="AzureWebJobsDashboard" connectionString="DefaultEndpointsProtocol=https;AccountName=;AccountKey=" />
<add name="AzureWebJobsStorage" connectionString="DefaultEndpointsProtocol=https;AccountName=;AccountKey=" />
Run Code Online (Sandbox Code Playgroud)
以前我只使用了与每个队列关联的连接字符串.我已尝试过与我的帐户关联的用户名和密钥的每个组合,但没有运气.
问题是Azure WebJobs SDK仅支持公共静态方法作为作业入口点,这意味着无法实现构造函数/属性注入.
我无法在官方WebJobs SDK文档/资源中找到有关此主题的任何内容.我遇到的唯一的解决方案是基于对这个职位描述的服务定位器(反)模式在这里.
是否有一种很好的方法可以为基于Azure WebJobs SDK的项目使用"正确的"依赖注入?
我知道这似乎是一个愚蠢的问题,但"待重启"是什么意思?我已多次停止并重新启动我的WebJob,这似乎无法修复它.这是否意味着我必须重启我的网站?是什么导致我的工作首先进入这个状态?有什么办法可以防止将来发生这种情况吗?
如何重命名Azure功能?
我想将默认的'HttpTriggerCSharp1'名称替换为我自己的名称.目前遗憾的是,此名称包含在函数URL中,并且没有更改它的选项:
https://functions-xxx.azurewebsites.net/api/HttpTriggerCSharp1
azure azure-webjobs serverless-framework azure-functions serverless-architecture
我正在测试Azure Webjobs.我编写了一个控制台应用程序,它轮询SQL数据库以获取新工作并对其进行处理.我没有使用WebJobs SDK,因为它只支持Azure存储.
我上传作业,它运行,然后失败,但有一个例外,说它无法连接到SQL数据库实例.我想知道正在使用什么连接字符串; 是从Azure网站获取连接字符串.日志给我这个:
[03/14/2014 22:24:25 > 512206: SYS INFO] Status changed to Running
[03/14/2014 22:24:40 > 512206: ERR ]
[03/14/2014 22:24:40 > 512206: ERR ] Unhandled Exception: System.AggregateException: One or more errors occurred. ---> System.Data.SqlClient.SqlException: A network-related or instance-specific error occurred while establishing a connection to SQL Server. The server was not found or was not accessible. Verify that the instance name is correct and that SQL Server is configured to allow remote connections. (provider: SQL Network Interfaces, …Run Code Online (Sandbox Code Playgroud) 当我使用Visual Studio 2013/update 4使用"发布为Azure WebJob"部署项目时,我在标题中收到错误.
我正在开发一个Azure WebJobs可执行文件,我想与多个Azure网站一起使用.每个网站都需要自己的Azure存储队列.
我看到的问题是ProcessQueueMessage需要将队列名称静态地定义为第一个参数的属性inputText.我宁愿让队列名称成为正在运行的Azure网站实例的配置属性,并且在启动时在运行时读取作业可执行文件.
有没有办法做到这一点?
我试图发布我的网站以及一些WebJobs,但在Azure网站上创建网站和作业后,我看到VS.NET 2013上的一个错误:
Error 948 An error occurred while creating the WebJob schedule: No website could be found which matches the WebSiteName [mysitename] and WebSiteUrl [http://mysitename.azurewebsites.net] supplied
Run Code Online (Sandbox Code Playgroud)
我的网站有2个WebJobs,1个连续运行并且已经创建并运行,但需要按计划触发的那个就是这个问题.
关于这里可能出错的任何想法?
编辑1
只想添加计划作业创建为"按需"
这是我正在使用的发布设置:
{
"$schema": "http://schemastore.org/schemas/json/webjob-publish-settings.json",
"webJobName": "ArchiveShipments",
"startTime": "2015-01-11T00:00:00+05:30",
"endTime": null,
"jobRecurrenceFrequency": "Day",
"interval": 1,
"runMode": "Scheduled"
}
Run Code Online (Sandbox Code Playgroud)
我应用AzureSDK后BTW.2.5我发布时没有看到任何错误,但是没有创建预定的WebJob.