我正在从 Azure 容器注册表中的容器部署到 Azure Function App。
我最初使用func init
命令(选择 typescript 选项),并使用服务总线主题触发器模板添加了一些代码。当我在npm start
本地运行时,我可以让它工作。在 package.json 中有一个构建 typescript 的“prestart”命令,它看起来像
"prestart": "npm run build && func extensions install",
该构建创建了一个 dist 目录,因此当它启动时,我可以看到:
[8/14/19 8:45:43 PM] 1 functions loaded
一切都很好。当我将此函数部署到我的函数应用时,问题就开始了。我正在从 Azure 容器注册表进行部署。
通过 Kudu,我可以看到容器错误日志:
2019-08-14T20:51:05.870505061Z The following 1 functions are in error:
2019-08-14T20:51:05.870515162Z ehmTopicTrigger: Invalid script file name configuration. The 'scriptFile' property is set to a file that does not exist.
2019-08-14T20:51:05.870540263Z
当我在func start
本地运行并且我的 dist 目录不存在时,我得到完全相同的错误。这让我相信,当 docker 容器在 Function App 中启动时,它并没有运行npm start
(或者出于某种原因,它没有构建和创建dist
)。
我不认为提交和部署dist
目录是答案,因为模板提供的.gitignore 包括/dist。
我在这里做错了什么?