本地开发的 Azure Functions 扩展包版本问题

2024-05-16

我有一个带有队列触发器的 Java 11 Azure 函数,该函数在部署到 Azure 时按预期工作,并正确从定义的服务总线主题中提取消息。但是,运行相同的功能locally除非我回滚版本,否则不起作用Azure Functions 绑定扩展 https://learn.microsoft.com/en-us/azure/azure-functions/functions-bindings-register。如果我不恢复版本,该函数将在本地启动,但永远不会从服务总线主题中提取消息。

变量是host.json项目中定义扩展包版本的文件。对于部署到 Azure 的函数,如下host.json使用为最新版本的扩展包配置的文件:

{
  "version": "2.0",
  "extensionBundle": {
    "id": "Microsoft.Azure.Functions.ExtensionBundle",
    "version": "[3.3.0, 4.0.0)"
  }
}

本地运行的版本是这样的:

{
  "version": "2.0",
  "extensionBundle": {
    "id": "Microsoft.Azure.Functions.ExtensionBundle",
    "version": "[2.*, 3.0.0)"
  }
}

Azure 函数本身并没有做任何特殊的事情。在函数中设置断点时,如果我不将扩展包版本恢复到 2/3 版本,则永远不会调用它。

 public class QueueTrigger {

  private DatabaseProvider database;

  @FunctionName(Constants.FunctionNames.RUN_CHANGE_HISTORY_TRIGGER)
  public void run(
    @ServiceBusTopicTrigger(name = "msg",
      topicName = "%SERVICE_BUS_TOPIC_NAME%",
      subscriptionName = "%SERVICE_BUS_SUBSCRIPTION_NAME%",
      connection = "ServiceBusConnection") String message,
    final ExecutionContext context) {

    Logger logger = context.getLogger();

    try {
      logger.log(Level.INFO, String.format("Queue Trigger START (%s)", message));

      database = new CosmosDatabaseProvider(logger);

      ChangeHistoryService service = new ChangeHistoryService(database, logger);
      service.processChanges(message);

      this.database.close();

      logger.log(Level.INFO, "Queue Trigger DONE");

    } catch (Exception ex) {
      logger.log(Level.SEVERE, ex.getMessage());
      throw new ServiceResponseException(ex.getMessage(), ex);
    }
  }
}

我有Azure 函数核心工具 https://learn.microsoft.com/en-us/azure/azure-functions/functions-run-local?tabs=v4%2Cwindows%2Ccsharp%2Cportal%2Cbash%2Ckedav4.0.3971(最新版本)安装在我的电脑上,我的其他团队成员也有同样的问题。

我的本地环境中缺少什么,导致最新版本的扩展包无法工作?


我尝试通过以下步骤重现该问题:

  1. 创建了 Azure 函数(堆栈:Java)在带有队列触发器的 VS Code 示例中。
  2. 默认情况下,版本是3.*, 4.0.0 in 主机.json并且消息拉取成功。

降级后版本2.*, 3.0.0azure 函数扩展包的数量主机.json,消息已成功发出。

运行 azure 函数 (java) 时,运行时采用中提到的最新版本host.json当它运行时,可以在输出终端中自动看到它正在运行的版本。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

本地开发的 Azure Functions 扩展包版本问题 的相关文章

随机推荐

  • 托管 Bean 作为 Facelet 参数可让复合组件阻止解析

    在给定的情况下 我想使用具有不同 ManagedBeans 的 Facelet 因此相关的操作 bean 作为参数给出
  • 从 Handler.obtainMessage() 获取什么参数

    我正在使用线程来执行一些 BT 任务 我正在尝试向 UI 线程发送消息 以便我可以基于我的 BT 线程执行 UI 工作 为此 我使用处理程序 但我不知道如何检索发送到处理程序的数据 要发送数据 我使用 handler obtainMessa
  • 比较批处理文件中的两个数字

    我在这个网站上搜索了我的问题 但没有找到解决我问题的方法 系统为玩家和计算机提供一个从 2 到 12 的随机数 这有 3 部分 X 大于 Y 如果 X 小于 Y 以及当 X 与 Y 相同 当我开始 bat 效果很好 我选择Play Game
  • 如何在C++中生成高精度的随机双数?

    我正在尝试生成一系列高精度的双随机数 例如 0 856365621 小数点后有 9 位数字 我从网上找到了一些方法 但是 它们确实生成了双随机数 但精度没有我要求的那么好 只有小数点后6位 那么 我可以知道如何实现我的目标吗 在 C 11
  • jQuery UI Datepicker 奇怪的行为

    我在使用 jqueryUI 使用简单的日期选择器时遇到了一个奇怪的问题 我只想显示两个月的日历 包括上个月和当前月份 我使用了这段代码 function picker datepicker numberOfMonths 2 showCurr
  • 无法在 Chrome 中获取对象的真实高度/宽度

    我有一个问题 如果我在 css 中设置图像高度并尝试获取高度 宽度 我会在不同的浏览器中得到不同的结果 有没有办法在所有浏览器中获得相同的尺寸 你可以找到一个活生生的例子here http web cinaird se pdf tester
  • C++ 强制转换运算符重载 [重复]

    这个问题在这里已经有答案了 我有一个只有一个 int 成员的类 例如 class NewInt int data public NewInt int val 0 constructor data val int operator int N
  • 使用 Python 3 动态插入到 sqlite

    我想使用 sqlite 写入多个表 但我不想提前手动指定查询 有数十种可能的排列 例如 def insert sqlite tablename data list global dbc dbc execute insert into tab
  • removeItemAtPath 完成

    我正在以这种方式删除路径上的文件 UIPanGestureRecognizer gesture UIPanGestureRecognizer sender UIButton button UIButton gesture view UIPa
  • SQL 选择 n 到 m 关系

    我有一个n to m之间的关系Author and Book 表作者 ID Name 1 Follett 2 Rowling 3 Martin 桌书 ID Title Category 1 A Dance with Dragons Fant
  • Dialogflow Fulfillment Webhook 调用失败

    I am new to dialogflow fulfillment and I am trying to retrieve news from news API based on user questions I followed doc
  • 需要参数的addEventListener(和removeEventListener)函数

    我需要向 8 个对象 手掌 添加一些侦听器 这些对象是相同的 但行为必须根据它们的位置而改变 我有以下 丑陋的 代码 root palmsStatus B B B B B B B B if root palmsStatus 0 N root
  • Spring中的ProxyFactoryBean

    有人可以解释一下吗代理工厂Bean http static springsource org spring docs current javadoc api org springframework aop framework ProxyFa
  • Visual Studio 改变 Ctrl-K-D 的工作方式

    In Visual Studio I m using 2012 is there any way of editing the way that Ctrl K D combinations handles its Auto Formatti
  • SCP 权限被拒绝(公钥)。仅当在目录上使用 -r 标志时才在 EC2 上

    scp r Applications XAMPP htdocs keypairfile pem uploads ec2 user publicdns var www html 其中 uploads 是目录 返回权限被拒绝 公钥 Howeve
  • Haskell:Data.Numbers.Primes 库在哪里?

    我尝试导入 Data Numbers Primes import Data Numbers Primes 伦哈斯克尔给了我 5 hs 1 8 Could not find module Data Numbers Primes Use v t
  • R参考类问题

    我正在尝试在 R 中创建一个简单的参考类 这是我的代码 R 初学者 MyClass lt setRefClass MyClass fields list a numeric b numeric methods list initialize
  • Onejar,使用maven,不会将资源复制到jar中

    我正在使用 one jar 来打包我的程序 我在 src main resources 中有资源 maven resources plugin正确地将资源复制到jar中 但是onejar生成的jar不包含我的资源 这是我的 pom
  • 过程式编程与 OOP 的开发成本?

    我有相当深厚的 OO 背景 OOD 和 OOP 的好处对我来说是第二天性 但最近我发现自己在一家与过程编程习惯相关的开发商店 实现语言具有一些 OOP 功能 但它们没有以最佳方式使用 更新 每个人似乎对这个话题都有自己的看法 我也是如此 但
  • 本地开发的 Azure Functions 扩展包版本问题

    我有一个带有队列触发器的 Java 11 Azure 函数 该函数在部署到 Azure 时按预期工作 并正确从定义的服务总线主题中提取消息 但是 运行相同的功能locally除非我回滚版本 否则不起作用Azure Functions 绑定扩