运行 个子目录中的函数

Running functions from a child directory

所以我有一个部署过程,可以将我的 Web 作业复制到像 \app_data\jobs\triggered|continuous\jobname 这样的文件夹结构中。我目前正在考虑为自托管和 运行 非 azure 进程外的工作保留现有文件夹结构,并希望能够 运行 azure 功能。我希望只是在现有的文件夹结构中放置一个 function.json 并提取功能,但我对此有多个问题。

  1. 我有一个 run.bat 需要将依赖项从 bin 文件夹复制到 运行 上的作业文件夹。我在 java 中看到了有关如何执行此操作的文档,但没有更多关于如何配置 运行 的文档。基本上,我想做一个副本,然后使用定义的参数调用我的特定编译函数,而不是一些 Main() 静态方法
  2. 我不明白你是如何告诉 host.json 文件以递归方式查看子文件夹甚至子文件夹的。除了可能创建一个新作业之外,似乎没有关于此的文档托管并在代码中指定它(我不知道该怎么做)。我不想对 azure libs 有任何依赖。

所以我的下一个想法是我也可以将作业 exe 复制到 bin 文件夹,然后 run.bat 的问题就消失了(上面的#1)并将所有函数放在(\app_data\functions\jobname).但是后来我想知道如何指定包含我的函数的子文件夹..

请帮忙。

如果您好奇的话,可以在这里找到我项目的源代码(https://github.com/exceptionless/Exceptionless/tree/feature/azure-functions). I'm working on getting the following job working first (https://github.com/exceptionless/Exceptionless/blob/feature/azure-functions/src/Jobs/EventPost/Program.cs) Here is how my artifacts are created as part of the git deploy process (https://github.com/exceptionless/Exceptionless/blob/feature/azure-functions/build/Push-Artifacts.ps1#L41)

ITypeLocator 可能对您有帮助,它使您可以控制索引的类型。您可以在 JobHostConfiguration.

中设置自己的 ITypeLocator

另一个是 WebHostSettings,它允许您设置 ScriptsPath - 发现函数的位置。目前无法配置,运行 天蓝色,我建议您提交问题并提交 PR 来更改它。