标签: azure-webjobs

Azure停止触发的Web作业

在Azure中,一旦触发的Web作业开始了吗?我们需要做什么 - 阻止它?

背景:

我们的Web作业填充服务总线队列,然后扩展我们的工作者角色 - 我们的工作者角色正在使用第三方API - 并且正在收到错误.这导致我们的队列变得越来越大 - 并且创建了越来越多的工作者角色.这很贵.

azure azure-webjobs

13
推荐指数
3
解决办法
4609
查看次数

Azure webjobs没有阅读网站appsettings

我有一个天蓝色的webjob,它有api键等的一些appsettings.

我还有一堆PRODUCTION azure应用程序设置(在门户网站中指定),应该覆盖我的webjob配置appsettings ..但他们没有.

对于我的网站,他们按预期工作,一切都很好.但是对于webjobs,它们只是被完全忽略,而是使用配置中的应用程序设置.

这是天蓝色的错误吗?所有文档都表明这应该有效.

编辑

我发现这个博客都是关于使用CloudConfigurationManager.GetSetting所以我已经实现了它仍然无法工作 - 仍然使用web作业的应用程序设置文件中定义的设置:(

谢谢

azure azure-webjobs

13
推荐指数
1
解决办法
6748
查看次数

我可以从Azure网站调用Azure webjob并传递参数吗?

我有一个Azure webjob,我想从Azure网站调用.我想将字符串参数从网站传递到webjob.

我知道我可以将webjob作为REST API调用(https://github.com/projectkudu/kudu/wiki/Web-jobs).
所以我可以在没有任何参数的情况下调用webjob:POST jobs/triggered/myjobname/run

但是在最后添加参数似乎不起作用,即jobs/triggered/myjobname/run?myparam1 = value1

我在使用Microsoft.WindowsAzure.Jobs中的属性进行绑定时看到的信息没有提到我的情况,只是绑定到Azure存储项(http://blogs.msdn.com/b/jmstall/archive/2014/01/28 /trigger-bindings-and-route-parameters-in-azurejobs.aspx).

我想做的是可行的吗?我是否需要执行诸如在Azure存储队列中创建新项目以触发我的webjob?

谢谢.

azure azure-web-sites azure-webjobs

12
推荐指数
2
解决办法
1万
查看次数

Azure Web Job将文件写入网站的目录中

我将一个Web作业附加到我的Azure网站.webjob准备一个文件,我想将它保存在网站上的适当文件夹中.

Environment.CurrentDirectory 在脚本上运行会返回Temp目录下的路径: Temp\jobs\triggered\WEBJOBNAME\q0uwrohv.x5e

我试着在目录树上下载:

string path = Path.Combine(Environment.CurrentDirectory, @"..\..\..\..\..\Data")
Run Code Online (Sandbox Code Playgroud)

但它不起作用:

C:\DWASFiles\Sites\WEBSITENAME\Temp\jobs\triggered\WEBJOBNAME\q0uwrohv.x5e\..\..\..\..\..\Data
Run Code Online (Sandbox Code Playgroud)

如何将文件从WebJob制作并保存到特定路径?

我不想使用blob商店.

azure-webjobs

12
推荐指数
1
解决办法
1万
查看次数

在azure上发布网站时,会删除webjobs

当我在创建多个webjobs的现有站点上发布站点时,这将删除服务器上的所有文件,并删除所有Web作业.

我假设这是因为webjobs存储在App_Data文件夹中.删除APP_Data目录时,将删除作业.

如何在发布时避免删除app_data文件夹?

publish azure azure-webjobs

12
推荐指数
2
解决办法
3410
查看次数

如何拦截Azure WebJob失败/异常

目前在Azure中,当WebJob抛出异常时,异常会被JobHost(某种程度上)捕获并处理,然后将异常记录到可通过托管webjob的Web App刀片提供的仪表板中.有没有办法拦截错误处理或覆盖它,以便我可以插入我的Application Insights实例?

c# azure azure-webjobs azure-application-insights

12
推荐指数
2
解决办法
3614
查看次数

在BotFramework上发布从bot到用户的消息

我有一个基于BotFramework 3.5的机器人,并作为WebApp托管在Azure上.我没有遇到机器人需要响应用户输入的情况的实施问题.但是,有必要教他按一些时间表开始对话.为了达到目标,我创建了一个WebJob,它基本上是一个简单的控制台应用程序.以下是用于启动从bot到用户的消息的代码:

            var botAccount = new ChannelAccount(id: from);
            var userAccount = new ChannelAccount(id: to);
            var conversation = new ConversationAccount(false, conversationId);

            var connector = new ConnectorClient(serviceUrl);

            IMessageActivity message = Activity.CreateMessageActivity();
            message.From = botAccount;
            message.Recipient = userAccount;
            message.Conversation = conversation;
            message.Text = text;
            message.Locale = locale;
            await connector.Conversations.SendToConversationAsync((Activity)message);
Run Code Online (Sandbox Code Playgroud)

from, to, serviceUrl, conversationId - 取自之前的对话,所以我希望它们有效.但是SendToConversationAsync 抛出异常:

System.UnauthorizedAccessException: Authorization for Microsoft App ID 3a26a4d4-f75a-4feb-b3e0-37a7fa24e5fc failed with status code Unauthorized and reason phrase 'Unauthorized' ---> System.Net.Http.HttpRequestException: Response status code does not indicate success: 401 …
Run Code Online (Sandbox Code Playgroud)

.net c# azure-webjobs botframework

12
推荐指数
1
解决办法
2886
查看次数

使用PowerShell创建计划的Azure WebJob

我正在尝试创建一个Azure WebJob来发送BrokeredMessage到Azure ServiceBus主题,创建和发送消息的实际行为是微不足道的,但是我一直无法找到自动创建Scheduled WebJob的方法.

自动化工作流程应如下工作:

  1. 创建一个新的Azure网站[完成]
  2. 创建一个新的触发Azure WebJob上传PS1文件[完成]
  3. 创建新的Azure Scheduler作业集[已验证的概念]
  4. 创建一个触发WebJob的新Azure Scheduler作业

Azure管理门户为此功能提供了一个很好的UI,它在所选的WebSite,Azure Scheduler作业集合和Azure Scheduler作业中创建Azure WebJob:

屏幕截图:Azure管理门户中新计划的Web作业任务的第2步

似乎没有使用Azure Service Management PowerShell模块创建计划的Azure WebJob的类似机制.当然可以创建新的WebJobs,Azure Scheduler集合作业 - 但是我不知道Azure Scheduler发布到哪个URL或存储队列来安排Azure WebJobs.

powershell azure azure-web-sites azure-scheduler azure-webjobs

11
推荐指数
1
解决办法
1万
查看次数

连续WebJob带定时器触发器

我在连续的Web作业中编写了以下函数:

public static void fun1([TimerTrigger("24:00:00", RunOnStartup = true, UseMonitor = true)] TimerInfo timerInfo, TextWriter log)
{//Code}

public static void fun2([TimerTrigger("00:01:00", RunOnStartup = true, UseMonitor = true)] TimerInfo timerInfo, TextWriter log)
{//code}
Run Code Online (Sandbox Code Playgroud)

其中,fun1没有被再次调用(在启动web作业后只调用一次),并且每个进程完成后,fun2将被调用1分钟触发器.

任何人都可以解释为什么?我做错了吗?

azure azure-webjobs

11
推荐指数
1
解决办法
7789
查看次数

如何在Azure功能应用程序中为队列触发器配置队列名称

我正在Azure中创建一个功能应用程序,并希望使用队列触发器.我知道如何在设计时配置队列名称,例如:

[FunctionName("MyTestFunction")]
public static void Run([QueueTrigger("myqueue-items", Connection = "testdelete")]string myQueueItem, TraceWriter log)
Run Code Online (Sandbox Code Playgroud)

但是,我希望能够在配置文件中定义和引用它.我知道function.json(可能是这个),host.json和local.settings.json的存在,但我不知道如何在那里设置队列名称并在函数中引用它.

如果我部署在visual studio中创建的新创建的函数(使用新的15.3更新),我可以在部署后的function.json文件中看到以下内容(即使我在本地开发时该文件不存在):

  "bindings": [
    {
      "type": "queueTrigger",
      "queueName": "myqueue-items",
      "connection": "testdelete",
      "name": "myQueueItem"
    }
Run Code Online (Sandbox Code Playgroud)

我发现,如果我创建该文件,并将"queueName"更改为与实际函数中的值不匹配的内容,则遗憾的是它不会覆盖它(我猜这太容易了).

如何在函数QueueTrigger属性中引用function.json中的绑定?

据推测,无论解决方案是什么,我都可以使用毒物队列处理来做同样的事情吗?

我想这样做的原因是因为我需要部署完全相同函数的多个实例,但是将每个实例指向不同的队列(为了绕过最大内存限制).

谢谢.

azure azure-webjobs azure-functions

11
推荐指数
1
解决办法
3295
查看次数