#azure-functions #azureservicebus
#azure-функции #azureservicebus
Вопрос:
Я реализую шаблон проверки утверждений с помощью функций Azure и служебной шины Azure.
Моя функция Azure имеет ServiceBusTrigger
, которая работает корректно сама по себе.
public async Task Run(
[ServiceBusTrigger("worker", Connection = "SERVICE_BUS_CONNECTION")] string json,
ILogger log)
{
var notificationCommand = JsonConvert.DeserializeObject<NotificationCommand>(json, new JsonNotificationCommandConverter());
Сериализованные сообщения проверки утверждений из шины выглядят примерно так:
{
"type": "claim-check",
"product": "XYZ",
"payloadRef": "https://{storage-account}/{container}/{blob_id}"
}
Я хотел бы иметь возможность просто использовать Blob
привязку ввода для получения ссылки на полезную нагрузку из хранилища больших двоичных объектов без необходимости делать это вручную, но у меня возникли некоторые проблемы с выражениями привязки — я даже не уверен, возможно ли сделать то, что я пытаюсь…
В принципе, я хочу сделать следующее:
public async Task Run(
[ServiceBusTrigger("worker", Connection = "SERVICE_BUS_CONNECTION")] string json,
[Blob("{PayloadReference}", FileAccess.Read, Connection = "BLOB_STORAGE_CONNECTION")] Stream myBlob,
ILogger log)
{
var notificationCommand = JsonConvert.DeserializeObject<NotificationCommand>(json, new JsonNotificationCommandConverter());
где Blob("{PayloadReference}"
ссылается на свойство в сообщении json из шины.
Возможно ли это? и если да, то как мне это сделать…
Комментарии:
1. В примерах атрибутов больших двоичных объектов отображается только «{контейнер} / {blob_id}». Они не показывают примеры, в которых предоставляется полный uri.
2. Не уверен, что это опечатка или даже уместно, но я заметил, что привязка имеет «PayloadReference», но поле полезной нагрузки короче «payloadRef» и отличается регистром.
Ответ №1:
C # использует шаблон императивной привязки, в отличие от декларативных привязок в function.json. Таким образом, вы не можете ввести json и сообщить вашей выходной привязке или входной привязке значение формата json.
Вы можете вручную считывать значение из очереди служебной шины или темы (из вашего триггера служебной шины) и использовать C # SDK для azure для отправки выходных данных по нужному пути к большим двоичным объектам.