我有一个 Azure Function App,其中有两个函数在本地(Mac OS / Visual Studio Code / Node 20 / V4)上运行,在本地环境中测试时运行良好。
但是,只有在将 package.json 上的 main 属性专门指向一个特定函数(“main”:/path/to/function/indexfunction1.js)时,将 Once 部署到 Azure 才能正常工作。
如果我在 package.json ( "main": /path/to/function/*.js ) 中指定多个函数,它在本地环境中运行良好,但无法在 Azure 中正确部署函数。
关于当地环境: [2024-09-19T04:53:13.808Z]工作进程启动并初始化。
功能:
function1: [POST] http://localhost:7071/api/function1
function2: [PUT] http://localhost:7071/api/function2/{userId}
在蔚蓝上: 尽管文件存在于应用程序文件部分中,但 Azure Function App 不显示任何可用的函数。
我希望在 Azure 中部署包含这两个函数的函数应用程序,就像在我的本地环境中一样。
我有一个默认的http触发函数和一个像你一样接受userId的http触发函数。我的第二个函数的代码如下。
const { app } = require('@azure/functions');
app.http('httpTrigger2', {
methods: ['GET', 'POST'],
authLevel: 'anonymous',
route: 'httpTrigger2/{userId}',
handler: async (request, context) => {
context.log(`Http function processed request for url "${request.url}"`);
const userId = request.params.userId;
const name = request.query.get('name') || await request.text() || 'world';
return { body: `Hello, ${name}! Your user ID is ${userId}` };
}
});
下面给出了这两个功能的package.json文件。
{
"name": "79005420",
"version": "1.0.0",
"description": "",
"scripts": {
"start": "func start",
"test": "echo \"No tests yet...\""
},
"dependencies": {
"@azure/functions": "^4.0.0"
},
"devDependencies": {},
"main": "src/{index.js,functions/*.js}"
}
我已成功将函数部署到函数应用程序。
如果默认情况下不存在,请尝试更改
package.json中的
"main": "src/{index.js,functions/*.js}"
以获得预期的响应。