我正在编写云功能,并尝试添加对多个提供程序的支持。目前对于Google Cloud和AWS Lambda而言,这已经足够简单了,因为它们都允许我指定给定文件(根文件夹中的index.js)的命名导出作为函数执行的入口点。

我以为一切都很好,但是现在我想添加Azure支持,但是它似乎坚持要使用功能名称带有自己的index.js的文件夹,该文件夹是执行的入口点。不幸的是,这破坏了我现有的体系结构(已使其通用,从而允许多个提供程序的一个入口点具有对执行环境的某些运行时检测以返​​回该提供程序的正确函数类型)。

使用Azure可以完全执行类似于GCF或Lambda的操作,并简单地说“我想要从此文件的导出开始的HTTPS触发功能”,并且它会信任您进行其余操作吗?

Azure文档没有太大帮助,我也无法在Google上找到很多使用方法。

最佳答案

每个功能确实需要一个文件夹,以将入口点映射到正确的脚本文件。但是此文件夹仅需要function.json文件进行配置。您的代码可以位于不同的位置,例如,所有功能 bundle 在一个文件中-这就是Azure Functions Pack所做的。

在function.json内部,您可以这样设置脚本文件:

{
 "disabled": false,
 "bindings": [
  {
   "authLevel": "anonymous",
   "type": "httpTrigger",
   "direction": "in",
   "name": "req",
   "methods": [
    "get"
   ]
  },
  {
   "type": "http",
   "direction": "out",
   "name": "res"
  }
 ],
 "scriptFile": "../.funcpack/index.js",
 "entryPoint": "HttpTrigger1"
}

关于javascript - Azure Functions Node.js自定义入口点,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/52870584/

10-12 02:30