Azure Functions Node.js自定义入口点



我正在编写一个云函数并尝试添加对多个提供程序的支持。目前对于 Google Cloud 和 AWS Lambda 来说,这已经非常简单了,因为两者都允许我指定给定文件(根文件夹中的索引.js(的命名导出作为函数执行的入口点。

我认为一切都很好,但现在我想添加 Azure 支持,但它似乎坚持拥有一个带有函数名称的文件夹及其自己的索引.js这是执行的入口点。不幸的是,这破坏了我现有的架构(已使它通用为允许多个提供程序的一个入口点,并对执行环境进行一些运行时检测,以便为该提供程序返回正确的函数类型(。

Azure是否有可能做一些类似于GCF或Lambda的事情,简单地说"我想要一个HTTPS触发的函数,从这个文件的导出开始",它信任你做剩下的工作?

Azure文档没有太大帮助,我也没能在谷歌上找到太多有用的东西。

每个函数都需要一个文件夹,以将入口点映射到正确的脚本文件。但是此文件夹只需要 function.json 文件来配置它。代码可以位于不同的位置,例如,所有函数都捆绑在一个文件中 - 这就是 Azure 函数包正在执行的操作。

在 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"
}

我自己也遇到了类似的问题。 但是我使用的是 TS,所以这可能不完全相同,但嘿,这是我的 5c。

不确定您的具体情况,但我不得不使用function.json上的"entryPoint"键来指示该功能。

构建dist文件夹后,检查给定的名称是什么(很可能是其exports.default = httpTriggerhttpTrigger 是 Azure 函数的名称

在这种情况下,请添加导出

{
"entryPoint": "default"
}

到您的function.json

最新更新