gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-02 23:56:59 24 4
gpt4 key购买 nike

我有一个带有队列触发器的 Java 11 Azure 函数,该函数在部署到 Azure 时按预期工作,并正确从定义的服务总线主题中提取消息。但是,本地运行相同的函数不起作用,除非我回滚 Azure Functions binding extensions 的版本。 。如果我不恢复版本,该函数将在本地启动,但永远不会从服务总线主题中提取消息。

该变量是项目中定义扩展包版本的 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 Function Core Tools我的电脑上安装了 v4.0.3971(最新版本),我的其他团队成员也有同样的问题。

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

最佳答案

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

  1. 使用队列触发器示例在 VS Code 中创建了 Azure Functions(堆栈:Java)。
  2. 默认情况下,host.json 中的版本为 3.*, 4.0.0,并且消息已成功拉取。

enter image description here

host.json 中的 azure 函数扩展包降级到版本 2.*、3.0.0 后,消息正在消失成功。

enter image description here

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

关于java - 本地开发的 Azure Functions 扩展包版本问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70452834/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com