Microsoft宣布支持几天前将数据从Azure Stream Analytics发送到Azure Functions:
我尝试了这个但无法将数据发送到Azure Functions。是否有任何指南如何从IoT-hub发送数据包 - > Azure流分析 - > Azure功能?
输出对其他来源很好。这是我的查询:
WITH rpidata AS
(
SELECT
*,
DATEADD(Hour, 3, timecreated) AS FITimezone
FROM [rpi]
)
SELECT *
INTO [PowerBI]
FROM rpidata
SELECT *
INTO [storageout]
FROM rpidata
SELECT *
INTO [fnout]
FROM rpidata
我得到的错误信息是:
无法成功将空批处理发送到Azure功能。请确保您的功能应用程序名称,功能名称和API密钥正确并且您的Azure功能已编译。如果所有这些参数都正确,则Azure功能此时可能暂时可用。请稍后再试。返回Azure函数,响应代码为500:InternalServerError。它应该以200,202或204响应。
然而,该功能在那里,正在运行,并在我尝试创建连接时自动找到。
我应该使用哪种函数输入来接收数据?我的示例我链接的函数名称是httptriggercsharp ... streamjob是否将数据作为json发送?
答案 0 :(得分:2)
根据您的描述和错误消息,我猜您的天蓝色功能代码有问题(它返回500错误)。
我建议您首先检查azure功能日志以查找详细信息错误消息并更改您的代码。
详情可参考以下图片:
打开azure功能应用程序并找到显示器
我还为azure函数创建了测试流分析。我发现流分析会将json发送到azure函数。
我建议您也可以使用此代码(Http触发器)来测试您的结果:
using System.Net;
public static async Task<HttpResponseMessage> Run(HttpRequestMessage req, TraceWriter log)
{
log.Info("C# HTTP trigger function processed a request.");
var content = req.Content;
string jsonContent = await content.ReadAsStringAsync();
log.Info(jsonContent);
return req.CreateResponse(HttpStatusCode.OK, jsonContent);
}
结果:
答案 1 :(得分:2)
不确定是否仍需要此功能,但供将来参考:ASA作业会将JSON数组中的数据输出到Azure功能。 像这样的ASA查询示例
SELECT
w.col1 as key1,
w.col2 as key2,
System.Timestamp as time
INTO
azfunction
FROM
[input] w;
会像这样到达你的功能
[
{
"key1":"value1",
"key2":"value2",
"time":"2017-09-04T17:51:02.7986986Z"
},
{
"key1":"value3",
"key2":"value4",
"time":"2017-09-04T17:51:02.7986986Z"
}
]
JSON数组将包含多少个元素,具体取决于您在ASA中设置Az函数输出的方式以及事件在ASA中的到达速度。根据您的情况,该数组可能只有一个元素或100个。
答案 2 :(得分:1)
为了补充这个答案,你可以使用mockaroo的模拟数据。
测试上面提到的代码:
{
"DeviceID": 8,
"Temperature": 28,
"Unit": 40,
"TimeStamp": "2018-03-23T17:43:18.0000000Z",
"EventProcessedUtcTime": "2018-03-23T17:44:36.5010819Z",
"PartitionId": 0,
"EventEnqueuedUtcTime": "2018-03-23T17:43:18.5700000Z"
},
{
"DeviceID": 8,
"Temperature": 66,
"Unit": 27,
"TimeStamp": "2018-03-23T17:43:20.0000000Z",
"EventProcessedUtcTime": "2018-03-23T17:44:36.8143642Z",
"PartitionId": 1,
"EventEnqueuedUtcTime": "2018-03-23T17:43:21.0090000Z"
}