无法将 Azure 函数添加为流分析作业输出

Posted

技术标签:

【中文标题】无法将 Azure 函数添加为流分析作业输出【英文标题】:Unable to add Azure Function as Stream Analytics Job output 【发布时间】:2020-10-20 14:09:13 【问题描述】:

我正在尝试将函数作为输出添加到 ASA 作业。我已经阅读了我能找到的所有帖子和建议。尝试以下:

添加了值为“Files”的 AzureWebJobsSecretStorageType(也尝试使用小写“files”) 将 TLS 版本降低到 1.0 将函数 AuthorizationLevel 设置为匿名 已尝试应用级别和功能级别键 通过 Postman 测试 - 使用 POST 方法始终可以正常工作

但在作业输出 ui 中仍然出现此错误(手动和自动输出设置):

System.InvalidOperationException:运行时密钥存储在 Blob 存储中。此 API 不支持此配置。请将环境变量 AzureWebJobsSecretStorageType 值更改为“文件”。欲了解更多信息,请访问 Kudu.Core.Functions.FunctionManager 上的https://aka.ms/funcsecrets。

使用自动设置(从订阅中选择 Azure 功能)我在功能日志中收到 404:

传出响应,类型:response,statusCode:404,statusText:NotFound

我的功能码:

public static class AsaRequestRouter 
        [FunctionName ("AsaRequestRouter")]
        public static async Task<IActionResult> Run (
            [HttpTrigger (AuthorizationLevel.Function, "get", "post", Route = null)] 
            HttpRequest req,
            ILogger log)                 
            log.LogInformation ("C# HTTP trigger function processed a request.");
            string requestBody = await new StreamReader (req.Body).ReadToEndAsync ();
            log.LogInformation(requestBody);
            return new OkObjectResult (@"""response"":""OK""");
        
    

【问题讨论】:

这很奇怪。我知道 Azure Function 需要附加一个 Blob 存储来处理队列和其他内容。部署 Azure 功能时,可能出现了问题。看看这篇文章,或许有帮助docs.microsoft.com/en-us/azure/stream-analytics/…它基于Azure Function csx(cshap脚本),不过和你的差不多。 我从这篇文章开始。也许不同之处在于我的函数应用托管在应用服务计划上 【参考方案1】:

我遇到了类似的情况,最终为我的流分析作业创建了一个函数应用,它只有天蓝色函数和应用程序设置AzureWebJobsSecretStorageType with value 'Files'

创建新的函数应用后,我回到流分析作业 -> 输出并尝试添加 Azure 函数作为输出接收器并提供详细信息,当 Azure 尝试在您的订阅。但是一旦我选择了我的新函数应用,错误就消失了。

【讨论】:

以上是关于无法将 Azure 函数添加为流分析作业输出的主要内容,如果未能解决你的问题,请参考以下文章

无法使用输出 Azure 函数获得流分析工作

使用 Azure Function 作为流分析的输出:连接测试失败

将流分析作业中的输出数据流式传输到 Azure Synapse Analytics sql 池表?

Grafana 作为 Azure 流分析输出

Azure 流分析的自定义输出路径

Azure 流分析作业在使用静态引用数据时不生成输出