Javascript Azure函数传出存储队列绑定在上下文上不可用
我有一个非常简单的Azure函数,其唯一目的是获取blob中包含的所有消息,并将这些消息放在存储队列中 我正在运行Functions 2.x,该函数是用JavaScript编写的,我已经为存储队列注册了blob触发器和输出绑定 我遇到的问题是,输出绑定在我的函数中的Javascript Azure函数传出存储队列绑定在上下文上不可用,javascript,azure,azure-functions,Javascript,Azure,Azure Functions,我有一个非常简单的Azure函数,其唯一目的是获取blob中包含的所有消息,并将这些消息放在存储队列中 我正在运行Functions 2.x,该函数是用JavaScript编写的,我已经为存储队列注册了blob触发器和输出绑定 我遇到的问题是,输出绑定在我的函数中的ctx.bindings中不可用。我正在使用命名的输出绑定,因为我将有多个输出绑定。当我将输出绑定名称更改为$return并返回数据时,消息会按预期写入队列,但当我设置其他名称时,绑定不会显示在上下文中。但是,我可以在ctx.bind
ctx.bindings
中不可用。我正在使用命名的输出绑定,因为我将有多个输出绑定。当我将输出绑定名称更改为$return
并返回数据时,消息会按预期写入队列,但当我设置其他名称时,绑定不会显示在上下文中。但是,我可以在ctx.bindingDefinitions
中看到绑定定义
let flag:boolean = false;
for (let bindingDefinition of ctx.bindingDefinitions) {
if(bindingDefinition.name == data.queue) {
flag = true;
break;
}
}
if(!flag){
throw new Error(`No output binding defined for queue '${data.queue}'`)
}
我正在使用Azure Function Host本地运行代码,并安装了适当的扩展
我的代码是这样的:
import { Context } from '@azure/functions'
export async function run(ctx: Context , content: string): Promise<void> {
try {
const data = JSON.parse(content)
if (!ctx.bindings[data.queue]) {
throw new Error(`No output binding defined for queue '${data.queue}'`)
}
ctx.bindings[data.queue] = [...data.messages]
} catch (e) {
return Promise.reject(e)
}
}
我传入的
内容
绑定可作为ctx.bindings.content
使用。我想我可能在这里遗漏了一些琐碎的东西,但是绑定没有显示在ctx.bindings
下的原因是什么?在运行时填充内容之前,输出绑定在上下文.bindings
中不可用
如果要检查是否存在输出定义,请转到Context.bindingDefinitions
let flag:boolean = false;
for (let bindingDefinition of ctx.bindingDefinitions) {
if(bindingDefinition.name == data.queue) {
flag = true;
break;
}
}
if(!flag){
throw new Error(`No output binding defined for queue '${data.queue}'`)
}
输出绑定在
上下文中不可用。在运行时使用内容填充它之前,绑定
如果要检查是否存在输出定义,请转到Context.bindingDefinitions
let flag:boolean = false;
for (let bindingDefinition of ctx.bindingDefinitions) {
if(bindingDefinition.name == data.queue) {
flag = true;
break;
}
}
if(!flag){
throw new Error(`No output binding defined for queue '${data.queue}'`)
}
哇,谢谢,我只是假设bindings对象从一开始就用每个绑定填充。这很好用!哇,谢谢,我只是假设bindings对象从一开始就用每个绑定填充。这很好用!