我希望特定的JavaScript文件由多个JavaScript Azure函数引用,这些JavaScript Azure函数由不同Azure订阅中的不同用户管理。所有订阅都在企业订阅中。我还希望这些多个用户能够更改此单源文件。
关于如何完成此操作,我最好的猜测是将文件存储在公共GitHub存储库中,并让每个Function引用它。
在JavaScript Azure函数中实施时,以标准方式(据我所知)引用外部脚本(在我的情况下为GitHub上托管的脚本)似乎不起作用。
结构:
var abc = require('<external reference>');
示例外部JS文件:
https://github.com/<username>/<repo>/blob/master/file.js
SO上似乎记录了许多过时的方法(例如rawgit),但我正在查看上次编辑于2018年的答案。
https://github.com/<username>/<repo>/blob/master/file.js
https://raw.githubusercontent.com/<username>/<repo>/master/file.js
http://cdn.jsdelivr.net/gh/<username>/<repo>/file.js
我知道,在单个Azure函数中(因此在同一个Azure订阅中)多个函数可以通过以下方式引用集中管理的文件:
Shared
文件夹中,将"watchDirectories": [ "Shared" ]
添加到host.json
,然后用require('../Shared/file.js')
引用它require('../Function-1/file.js')
)但是,除非我误解,否则都不符合功能可以驻留在不同Azure订阅中的不同功能中的要求。
我是JS新手。感谢您的指导。可能还有其他我没有想到的满足这些要求的方法。
答案 0 :(得分:1)
您通常无法从函数内部require
来require
,因为Function
使用文件系统来解析文件,而该文件实际上并不存在于函数内部。如果要运行的js在github上可用,则可以从github下载源代码。并使用JS let myfunc;
fetchCodeToRun().then(codeString=>myfunc=new Function(codeString)); //untested
构造函数来运行创建可以调用的函数。大致来说,它可能类似于:
{{1}}
请注意,我对Azure并不是特别熟悉,并且我对无服务器基础架构的经验很少,因此很有可能会有更好的方法来实现这一目标。
函数构造函数文档:https://www.dojrp.com/