javascript - Azure Functions Node.js 自定义入口点
问题描述
我正在编写一个云功能并尝试添加对多个提供商的支持。目前,对于 Google Cloud 和 AWS Lambda,这已经足够简单了,因为它们都允许我指定给定文件(根文件夹中的 index.js)的命名导出作为函数执行的入口点。
我认为一切都很好,但现在我想添加 Azure 支持,但它似乎坚持有一个带有函数名称的文件夹,它有自己的 index.js,这是执行的入口点。不幸的是,这破坏了我现有的体系结构(使其成为通用的,以允许多个提供者的一个入口点通过对执行环境的一些运行时检测来为该提供者返回正确的函数类型)。
Azure 有没有可能做一些类似于 GCF 或 Lambda 的事情,然后简单地说“我想要一个 HTTPS 触发的函数,从这个文件的导出开始”,然后它相信你会做剩下的事情?
Azure 文档没有太大帮助,我也无法在 Google 上找到很多用处。
解决方案
您确实需要为每个函数创建一个文件夹,以将入口点映射到正确的脚本文件。但是这个文件夹只需要function.json文件来配置它。您的代码可以位于不同的位置,例如捆绑在一个文件中的所有函数 - 这就是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"
}
推荐阅读
- php - 如何在没有键的情况下使用 PHP 获取内部数组值
- api - 调用涂鸦智能API,调用接口报错码:1106,权限被拒绝,如何解决?
- python-sphinx - 如何链接 reStructuredText 中的重复目标?
- python - Locust-重复用户列表
- python - amazon iam 在 boto3 中获得内联政策声明
- sql - 如何计算所有行的中位数?
- django - 使用本地包在 Microsoft Azure 上部署 Django 应用
- c++ - github操作中的cpplinter
- javascript - 如何在 Javascript 中不显示 URL 的情况下创建链接?
- javascript - 我的 NativeBase 结果的标题组件是空的并且不在顶部