【发布时间】:2018-05-03 11:55:21
【问题描述】:
我是新的天蓝色函数。我在 azure 门户中创建了一个 azure http 触发功能。我想将消息输出到服务总线主题。
这是我在门户中的 httptrigger 函数:
#load "..\sharedcode\DeleteCommandRequest.csx"
#r "Newtonsoft.Json"
#r "Microsoft.ServiceBus"
using System.Net;
using Newtonsoft.Json;
using Microsoft.ServiceBus
using Microsoft.ServiceBus.Messaging;
public static async Task<HttpResponseMessage> Run(HttpRequestMessage req,
TraceWriter log,
ServiceBus outputSbMsg)
{
log.Info("C# HTTP trigger function processed a request.");
DeleteCommandRequest request = await req.Content.ReadAsAsync<DeleteCommandRequest>();
log.Info($"Delete command recevied: {request.SagaId} {request.Action} {request.RequestId}");
var message = new BrokeredMessage(JsonConvert.SerializeObject(request));
outputSbMsg.send(message);
return request == null
? req.CreateResponse(HttpStatusCode.BadRequest, "Please pass the correct request body")
: req.CreateResponse(HttpStatusCode.OK, "Hello " + JsonConvert.SerializeObject(request));
}
我收到以下错误:
error CS0246: The type or namespace name 'ServiceBus' could not be found (are you missing a using directive or an assembly reference?)
谁能帮助如何从 httptrigger 将 brokeredmessage 输出到 servicebus 主题?
我也试过从VS2017预编译的azure函数:
[FunctionName("DeleteCase")]
public static async Task<HttpResponseMessage> Run(
[HttpTrigger(AuthorizationLevel.Anonymous, "post", Route = null)]
HttpRequestMessage req,
[ServiceBus("cqrs-commands", EntityType = EntityType.Topic)]
IAsyncCollector<BrokeredMessage> messageTopic,
TraceWriter log)
{
log.Info("C# HTTP trigger function processed a request.");
DeleteCommandRequest delRequest = await req.Content.ReadAsAsync<DeleteCommandRequest>();
log.Info($"Delete request received: {delRequest.SagaId} {delRequest.Action} {delRequest.RequestId}");
var brokeredMessage = new BrokeredMessage(delRequest);
await messageTopic.AddAsync(brokeredMessage);
return req.CreateResponse(HttpStatusCode.OK, JsonConvert.SerializeObject(delRequest));
}
但是使用上面的代码,http 触发函数没有向主题发送代理消息。谁能告诉我我在这里做错了什么?
谢谢
【问题讨论】:
-
你能分享你的function.json文件吗?我怀疑您的连接字符串设置不正确?
-
您能否详细说明“http 触发功能未向主题发送代理消息”?这是您面临的错误还是 ServiceBus 中看不到消息?
标签: c# azure-functions