我有一个Azure函数,用于侦听Azure Servicebus队列中的消息.当它收到消息时,它将它们标记为已完成,并且它们不再在队列中.有没有办法只在长过程完成时将它们标记为?如果失败,还是将它们标记为完整?
我的函数调用Api,我希望消息不被标记为完成,直到Api用成功代码回复.
有没有办法让Azure功能从远程Web套接字侦听事件并处理消息过来?
我查看了当前的文档和示例,但没有找到答案.
我在VS 2017中创建了一个azure函数应用程序。我包含了一个proxies.json文件并发布了该应用程序。但是,我在Azure门户中看不到代理。
它只说: 代理(预览)(只读)
我已经进入功能设置,并且没有启用代理的设置。我认为这是旧方法,(不是用于在Visual Studio中开发功能)
proxies.json看起来像这样:
{
"$schema": "http://json.schemastore.org/proxies",
"proxies": {
"user": {
"matchCondition": {
"methods": [ "GET" ],
"route": "/user/{user}"
},
"backendUri": "https://<mycontainer>.blob.core.windows.net/html/test.html/{user}"
}
}
}
Run Code Online (Sandbox Code Playgroud) 我正在尝试将外部程序集的依赖项添加到从Visual Studio 2017开发和发布的Azure函数中.在Portal上开发的Azure函数上,我可以使用#r正常添加依赖项,并在函数中引用.dll目录.在Visual Studio中,如果我尝试在本地计算机上引用相同的.dll(这很有意义),我会得到"引用无效或不受支持",并且它不允许我引用本地计算机上不存在的程序集但存在在Function目录中(这也很有意义).所以问题是,如何将程序集引用添加到Visual Studio上开发的Azure函数?我错过了一些明显的东西吗
(注意,还有其他原因禁止仅仅复制功能并在Portal上完全开发它,所以这不是一个选项)
使用 ARM 模板将 Azure 函数部署到 USGov Arizona 时出错。模板适用于 Azure 商业版。错误是:
12:34:11 - 12:33:27 PM - Resource Microsoft.Web/sites/config 'SFGovAppService/appsettings' failed with message '{
12:34:11 - "Code": "BadRequest",
12:34:11 - "Message": "There was a conflict. The remote name could not be resolved: 'sftestgovstorage.file.core.windows.net'",
12:34:11 - "Target": null,
12:34:11 - "Details": [
12:34:11 - {
12:34:11 - "Message": "There was a conflict. The remote name could not be resolved: 'sftestgovstorage.file.core.windows.net'"
12:34:11 - },
12:34:11 - {
12:34:11 - "Code": "BadRequest"
12:34:11 - }, …Run Code Online (Sandbox Code Playgroud) 我有以下功能应用程序
[FunctionName("SendEmail")]
public static async Task Run([ServiceBusTrigger("%EmailSendMessageQueueName%", AccessRights.Listen, Connection = AzureFunctions.Connection)] EmailMessageDetails messageToSend,
[ServiceBus("%EmailUpdateQueueName%", AccessRights.Send, Connection = AzureFunctions.Connection)]IAsyncCollector<EmailMessageUpdate> messageResponse,
//TraceWriter log,
ILogger log,
CancellationToken token)
{
log.LogInformation($"C# ServiceBus queue trigger function processed message: {messageToSend}");
/* Validate input and initialise Mandrill */
try
{
if (!ValidateMessage(messageToSend, log)) // TODO: finish validation
{
log.LogError("Invalid or Unknown Message Content");
throw new Exception("Invalid message content.");
}
}
catch (Exception ex)
{
log.LogError($"Failed to Validate Message data: {ex.Message} => {ex.ReportAllProperties()}");
throw;
}
DateTime utcTimeToSend;
try …Run Code Online (Sandbox Code Playgroud) 有没有办法只将修改过的文件复制到Service Fabric.我有一个包含ASP的Service Fabric应用程序.Net 5应用程序作为服务.每当我在ASP中对JavaScript文件进行更改时.Net 5服务,每次我需要复制整个服务架构应用程序包.是否有一个允许只复制修改过的文件的命令?
我正在寻找一个简单的调度程序来在我的部署在Azure云中的Java Web应用程序中执行任务.我正在根据我的要求使用TimerTrigger评估Azure函数.在这里,我计划使用回调API URL定义Azure函数,以调用我的应用程序在我的应用程序中执行任务.
我对这种方法有一些疑问.任何人都可以帮助我如果你熟悉Azure功能吗?
1)是否可以在运行时通过API从Java应用程序启动/重新安排/取消Azure TimerTrigger功能?
2)如果是,是否可以将回拨URL传递给定时器触发器?
3)使用Azure功能有任何已知的缺点吗?
谢谢!
我计划创建一个始终运行的函数项目,但根据azure函数响应多个触发器.
我知道这可以通过webjobs来完成,但可以通过功能完成吗?如果是这样,我如何将启动文件挂钩作为longrunning(阻塞)后台任务的入口点?
我正在尝试运行一系列任务,然后一旦完成,就运行一个单独的任务集合.实质上,第一个任务集合负责写入某些数据库表,最终的任务集合将这些表中的数据整理到报告表中.
我正在使用的代码示例如下:
var dbWriteTasks = clients.Select(c => DoSomeWorkAsync(c)).ToArray();
var dbCollateTasks = clients.Select(c => DoSomeOtherWorkAsync(c));
Task.Factory.ContinueWhenAll(dbWriteTasks, t => dbCollateTasks.ToArray());
Run Code Online (Sandbox Code Playgroud)
这是成功运行第一组任务,但没有运行任何第二组任务,所以我显然做错了.
我也试过这个无济于事:
var dbWriteTasks = clients.Select(c => DoSomeWorkAsync(c)).ToArray();
var dbCollateTasks = clients.Select(c => DoSomeOtherWorkAsync(c)).ToArray();
Task.Factory.ContinueWhenAll(dbWriteTasks, t => dbCollateTasks);
Run Code Online (Sandbox Code Playgroud)
这会运行两组任务,但第二组在第一组任务完成插入之前开始运行并处理数据...
我还应该提一下,我已经尝试同步运行这两组任务,Task.WaitAll但这也没有用.我试图在Azure功能中执行所有这些操作,Task.WaitAll只是让它停止.
我对TPL比较陌生,所以任何建议都将不胜感激!
c# multithreading azure task-parallel-library azure-functions