无法确定函数入口点
Unable to determine function entry point
几个月来一直在使用 MS botframework。在节点中使用模拟器进行开发,并使用持续集成推送到 Azure。
上周三推送,测试没有问题。做了两个非常无关紧要的代码更改并在周五推送,不,我得到:
执行函数时出现异常:Functions.messages。 mscorlib:无法确定函数入口点。我尝试重新部署旧版本,同样的事情。
想法?
1) 尝试停止 Azure 中的服务:
2) 然后去 Kudu
: https://[YourAzureSiteName].scm.azurewebsites.net/DebugConsole
和运行 npm install
:
3) 然后在Azure中重启服务
函数入口点根据this logic确定。可以看到,流程是:
- 如果在
function.json
中定义了显式入口点,请使用该入口点
- 否则;如果只有一个导出函数,使用那个
- 否则;尝试使用名为
run
或 index
的函数(按此顺序)
我怀疑您在分支 #2 中,并且您的小改动引入了新函数,因此运行时现在正在尝试查找名为 run
或 index
的函数,但该函数不存在.
您能否确保您的主要入口点函数被命名为 run
或 index
然后重试?
原来 Azure git 集成中存在一个短暂的错误,我在 window 期间部署了这个错误。它修改了 function.json 并使其处于无效状态。感谢 MS 支持坚持解决问题并确定根本原因。
您可以使用 module.exports
例如:
module.exports = async function queryDatabase() {
const pg = require('pg');
//...
//...
}
就我而言,根本原因是有 1 个命名导出和 1 个默认导出。
要解决此问题,仅导出入口点文件中的默认 1 项(在我的例子中为 index.js)
离开这里作为线索,以防有人遇到同样的事情
如果您要导出多个函数
例如 function1,function2 然后
通过将此行添加到文件末尾,我们可以解决此问题。
exports.index = function1
几个月来一直在使用 MS botframework。在节点中使用模拟器进行开发,并使用持续集成推送到 Azure。
上周三推送,测试没有问题。做了两个非常无关紧要的代码更改并在周五推送,不,我得到:
执行函数时出现异常:Functions.messages。 mscorlib:无法确定函数入口点。我尝试重新部署旧版本,同样的事情。
想法?
1) 尝试停止 Azure 中的服务:
2) 然后去 Kudu
: https://[YourAzureSiteName].scm.azurewebsites.net/DebugConsole
和运行 npm install
:
3) 然后在Azure中重启服务
函数入口点根据this logic确定。可以看到,流程是:
- 如果在
function.json
中定义了显式入口点,请使用该入口点 - 否则;如果只有一个导出函数,使用那个
- 否则;尝试使用名为
run
或index
的函数(按此顺序)
我怀疑您在分支 #2 中,并且您的小改动引入了新函数,因此运行时现在正在尝试查找名为 run
或 index
的函数,但该函数不存在.
您能否确保您的主要入口点函数被命名为 run
或 index
然后重试?
原来 Azure git 集成中存在一个短暂的错误,我在 window 期间部署了这个错误。它修改了 function.json 并使其处于无效状态。感谢 MS 支持坚持解决问题并确定根本原因。
您可以使用 module.exports
例如:
module.exports = async function queryDatabase() {
const pg = require('pg');
//...
//...
}
就我而言,根本原因是有 1 个命名导出和 1 个默认导出。 要解决此问题,仅导出入口点文件中的默认 1 项(在我的例子中为 index.js) 离开这里作为线索,以防有人遇到同样的事情
如果您要导出多个函数 例如 function1,function2 然后 通过将此行添加到文件末尾,我们可以解决此问题。
exports.index = function1