В настоящее время я публикую сообщение в служебной шине Azure, используя привязку вывода и IAsyncCollector, например.
[FunctionName(nameof(ReceiveTransaction))]
[OpenApiOperation(nameof(ReceiveTransaction), "Transaction", Description = "Receives a transaction and adds to the Transaction Platform")]
[OpenApiRequestBody("application/json", typeof(string), Description = "Parameters", Required = true)]
[OpenApiResponseWithoutBody(HttpStatusCode.BadRequest, Description = "Request was invalid and could not be processed")]
[OpenApiResponseWithoutBody(HttpStatusCode.OK, Description = "Request was valid - transaction posted to platform")]
public async Task ReceiveTransaction(
[HttpTrigger(AuthorizationLevel.Anonymous, "post", Route = "v1/receiveTransaction")] HttpRequest req,
[ServiceBus("%Transactions:SB:Transactions:IngressQueue%", Connection = "Transactions:SB:Transactions")] IAsyncCollector collector,
ILogger logger)
{
try
{
using var sr = new StreamReader(req.Body);
var rawJson = await sr.ReadToEndAsync();
var tran = JsonConvert.DeserializeObject(rawJson, JsonSerialisationUtils.SerialiserSettings);
tran.UpdateExtendedProperties();
tran.SetPlatformReceived();
logger.LogInformation(StandardEvents.SuccessEvent, "Incoming transaction: {transactionNumber} validated", tran.TransactionNumber);
var queueMessage = JsonConvert.SerializeObject(tran, JsonSerialisationUtils.SerialiserSettings);
await collector.AddAsync(queueMessage);
logger.LogInformation($"Received transaction added to servicebus queue");
return new NoContentResult();
}
catch (Exception ex)
{
logger.LogError(StandardEvents.FailureEvent, ex, "Unhandled exception");
}
throw new ArgumentException("Bad Request");
}
Подробнее здесь: https://stackoverflow.com/questions/786 ... -functions
Как задать MessageId сообщения служебной шины с помощью выходной привязки функций Azure и IAsyncCollector? ⇐ C#
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение