我刚刚使用this migration guide将我现有的项目切换到新的编程模型v4。我喜欢这样的想法,我可以根据我的需要构建我的目录和文件,但它似乎不起作用。我的文件夹结构(src位于函数项目的根目录中,与dist一起):
src
+---functions
| +---criteria
| | | create.ts
| | | getall.ts
| | | getone.ts
| | |
| | \---types
| | createCriteria.dto.ts
| |
| +---events
| | getall.ts
| |
| \---ratings
| | create.ts
| | getcriteria.ts
| | rateone.ts
| |
| \---types
| createRating.dto.ts
|
\---lib ...
package.json
中的主要属性(是的,dist中有一个src目录):
"main": "dist/src/functions/**/*.js"
但是,当我在本地启动应用程序时,我会收到以下警告:
"No job functions found. Try making your job classes and methods public. If you're using binding extensions (e.g. Azure Storage, ServiceBus, Timers, etc.) make sure you've called the registration method for the extension(s) in your startup code (e.g. builder.AddAzureStorage(), builder.AddServiceBus(), builder.AddTimers(), etc.)."
我的函数文件看起来都像这样...
import { HttpRequest, HttpResponseInit, InvocationContext, app } from '@azure/functions'
export const getCriteria = async (req: HttpRequest, context: InvocationContext): Promise<HttpResponseInit> => {
...
return { body: ... }
}
app.http('ratings-getcriteria', {
methods: ['GET'],
route: 'ratings/{id}',
handler: getCriteria
})
我错过了什么?
我还尝试在src/functions
中创建一个函数,并使用与教程中相同的glob模式(dist/src/functions/*.js
),但这也不起作用。
1条答案
按热度按时间mrphzbgm1#
问题是Azure Functions Core Tools在我的机器上太旧了。编程模型v4需要v4.0.5095或更高版本。