Похоже, вы смешиваете HttpTrigger и QueueTrigger.
Если вы хотите использовать свою собственную логику выше для записи сообщения в очередь, убедитесь, что ваш function.json
соответствует приведенному ниже.
{
"disabled": false,
"bindings": [
{
"authLevel": "anonymous",
"type": "httpTrigger",
"direction": "in",
"name": "req",
"methods": [
"get",
"post"
]
},
{
"type": "http",
"direction": "out",
"name": "res"
}
]
}
Если предпочтительнее использовать outputbinding , предоставляемый функцией Azure, давайте воспользуемся кодом ниже. Не нужно беспокоиться о том, что azurequeue
не существует, внутренняя привязка использует createQueueIfNotExists.
module.exports = async function (context, req) {
context.log('JavaScript HTTP trigger function processed a request.');
context.log('Request Headers = ' + JSON.stringify(req.headers));
if ((req.query.parameter && req.query.func) || (req.body && req.body.parameter && req.body.func)) {
var message = 'Hello world!'
var send = {'ans' : message};
return {
res: {
body: send
},
queueOutput: message
};
}
else {
context.res = {
status: 400,
body: "Please pass a name on the query string or in the request body"
};
return;
}
};
И не забудьте добавить выходные данные очереди в function.json
.
{
"disabled": false,
"bindings": [
{
"authLevel": "anonymous",
"type": "httpTrigger",
"direction": "in",
"name": "req",
"methods": [
"get",
"post"
]
},
{
"type": "http",
"direction": "out",
"name": "res"
},
{
"type": "queue",
"direction": "out",
"name":"queueOutput" ,
"queueName": "azurequeue",
"connection":"AzureWebJobsStorage"
}
]
}
Чтобы избежать других препятствий в будущем, взгляните на Руководство по функциям Azure в javascript .