Javascript Azure函数传出存储队列绑定在上下文上不可用

Javascript Azure函数传出存储队列绑定在上下文上不可用,javascript,azure,azure-functions,Javascript,Azure,Azure Functions,我有一个非常简单的Azure函数,其唯一目的是获取blob中包含的所有消息,并将这些消息放在存储队列中 我正在运行Functions 2.x,该函数是用JavaScript编写的,我已经为存储队列注册了blob触发器和输出绑定 我遇到的问题是,输出绑定在我的函数中的ctx.bindings中不可用。我正在使用命名的输出绑定,因为我将有多个输出绑定。当我将输出绑定名称更改为$return并返回数据时,消息会按预期写入队列,但当我设置其他名称时,绑定不会显示在上下文中。但是,我可以在ctx.bind

我有一个非常简单的Azure函数,其唯一目的是获取blob中包含的所有消息,并将这些消息放在存储队列中

我正在运行Functions 2.x,该函数是用JavaScript编写的,我已经为存储队列注册了blob触发器和输出绑定

我遇到的问题是,输出绑定在我的函数中的
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对象从一开始就用每个绑定填充。这很好用!