相关疑难解决方法(0)

异步编程和Azure功能

在Azure功能性能注意事项部分,https://docs.microsoft.com/en-us/azure/azure-functions/functions-best-practices 在使用异步代码但避免阻止调用异步编程是性能改进的建议做法无论什么是使用它的最佳方式.例如,在我的观点中,我有一个服务总线触发器

public static void Run([ServiceBusTrigger("topicname", "subname", 
     AccessRights.Manage, Connection = "TopicConnection")]string message, 
      TraceWriter log)
     {
     try {
        log.Info($"C# ServiceBus topic trigger function processed message: 
           {message}");

    Task.Run(() => PushToDb(message, log));
    }
    catch(Exception ex)
    {
        log.Info($"Exception found {ex.Message}");
    }
}
Run Code Online (Sandbox Code Playgroud)

在上面的代码中,我调用了PushToDb方法异步,但由于它在后台运行,因此Function运行时假定消息已成功使用并完成它.如果PushToDb方法抛出异常怎么办?如何确保运行时知道它不完整,而应该放弃.

希望尽可能多地使用异步来提高性能.

c# azure azure-functions

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

在Async方法中绑定到输出Blob时,将Blob绑定到IAsyncCollector时出错

我在这篇文章之后尝试在Async方法中绑定到Blob输出:如何将输出值绑定到我的异步Azure Function?

我有多个输出绑定,所以仅返回不是一种选择

public static async Task<HttpResponseMessage> Run(HttpRequestMessage req, IAsyncCollector<string> collection, TraceWriter log)
{
    if (req.Method == HttpMethod.Post) 
    {
        string jsonContent = await req.Content.ReadAsStringAsync();

        // Save to blob 
        await collection.AddAsync(jsonContent);

        return req.CreateResponse(HttpStatusCode.OK);
    }
    else 
    {
        return req.CreateResponse(HttpStatusCode.BadRequest);

    }
}
Run Code Online (Sandbox Code Playgroud)

我对Blob的绑定是:

{
  "bindings": [
    {
      "authLevel": "function",
      "name": "req",
      "type": "httpTrigger",
      "direction": "in"
    },
    {
      "name": "$return",
      "type": "http",
      "direction": "out"
    },
    {
      "type": "blob",
      "name": "collection",
      "path": "testdata/{rand-guid}.txt",
      "connection": "test_STORAGE",
      "direction": "out"
    }
  ],
  "disabled": false
}
Run Code Online (Sandbox Code Playgroud)

但是每当我这样做时,我都会得到以下信息:

错误:函数($ …

c# asynchronous azure azure-storage-blobs azure-functions

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

流程完成后,从azure函数发送电子邮件

我有一台将文本形式的数据发送到AZURE上的Blob的设备,一旦Blob接收到数据,它就会触发azure函数中的一个函数,该函数基本上是由c ++代码制成的可执行文件,完成后会生成另一个文本文件,存储在其他斑点

这是一个非常简单的操作。但是,现在我希望每次功能顺利通过时都收到一封电子邮件,我已经在网上搜索过,但是本教程非常混乱,或者无法解决此简单任务。

我确实使用c ++开发了可执行文件,但是我从其他人那里继承了azure函数,并且我对azure的使用经验为零(我是电气工程师而不是计算机科学)。Azure函数是用C#编写的,我只需要一个指南。

先感谢您!!

c# azure azure-functions

0
推荐指数
1
解决办法
7201
查看次数