Как мы привязываем вывод к служебной шине?
Я установил привязку out
внутри своей лазурной функции:
{
"queueName": "testqueue",
"connection": "MyServiceBusConnection",
"name": "myQueueItem",
"type": "serviceBus",
"direction": "out"
}
Я начал со стандартного шаблона javascript/typescript для функции:
export function run(context: any, req: any): void {
context.log("TypeScript HTTP trigger function processed a request.");
context.log(req.query);
context.bindings.outputSbQueue = req.query; //should bind here
if (req.query.name || (req.body && req.body.name)) {
context.res = {
// status: 200, /* Defaults to 200 */
body: {
message: `Hello ${(req.query.name || req.body.name)}`
}
};
} else {
context.res = {
status: 400,
body: "Please pass a name on the query string or in the request body"
};
}
context.done();
};
Я получаю ответ от функции, но в служебную шину ничего не поступает.
У меня есть настройки приложения для MyServiceBusConnection
, как показано на портале:
Что я делаю неправильно? Как мы привязываем вывод к служебной шине?
Вот полный function.json
файл:
{
"disabled": false,
"bindings": [
{
"authLevel": "anonymous",
"type": "httpTrigger",
"direction": "in",
"name": "req"
},
{
"type": "http",
"direction": "out",
"name": "res"
},
{
"queueName": "testqueue",
"connection": "MyServiceBusConnection",
"name": "myQueueItem",
"type": "serviceBus",
"direction": "out"
}
],
"scriptFile": "../dist/HttpTriggerTS/index.js"
}
почему имя вашей привязки (myQueueItem) отличается от того, как вы его называете в коде (context.bindings.outputSbQueue)?
@FarrukhNormuradov это была проблема !!!!!! сделай это ответом
переместите комментарий в раздел ответов.
В следующем примере показана выходная привязка служебной шины в файле function.json и функция JavaScript, использующая эту привязку. Функция использует триггер таймера для отправки сообщения очереди каждые 15 секунд.
Вот данные привязки в файле function.json
:
{
"bindings": [
{
"schedule": "0/15 * * * * *",
"name": "myTimer",
"runsOnStartup": true,
"type": "timerTrigger",
"direction": "in"
},
{
"name": "outputSbQueue",
"type": "serviceBus",
"queueName": "testqueue",
"connection": "MyServiceBusConnection",
"direction": "out"
}
],
"disabled": false
}
а вот пример кода JS
module.exports = function (context, myTimer) {
var message = 'Service Bus queue message created at ' + timeStamp;
context.log(message);
context.bindings.outputSbQueue = message;
Как указал Фаррух, убедитесь, что вы используете правильное имя в привязке и в коде. (outputSbQueue)
Надеюсь, поможет.
Почему имя вашей привязки (myQueueItem) отличается от того, как вы называете ее в коде (context.bindings.outputSbQueue)?
вы напрямую создаете функцию из пользовательского интерфейса портала?