Azure函数门户“代码+测试”修改代码后不生效求助
Azure函数代码修改后测试不生效的原因分析
以下是几种常见的导致修改代码后测试仍运行旧版本的原因:
未触发编译构建流程:你使用的TypeScript是编译型语言,在“代码+测试”编辑器保存源码后,需要触发构建步骤将TS编译为JS文件。如果仅保存了TS源码但未执行构建,函数运行的还是之前编译好的旧JS文件。
运行实例缓存未刷新:函数应用的运行实例可能缓存了旧代码。尤其是在消耗计划下,热启动的实例会复用之前的代码缓存,新修改的代码需要等到实例重启或缓存过期才会生效。
前端保存未同步到实际文件系统:界面显示保存成功,但实际函数应用的服务器文件系统并未同步到最新代码。可能是平台内部同步延迟或临时故障导致的。
函数入口配置错误:检查
function.json里的scriptFile配置,确认它指向的是编译后的正确文件路径(比如dist/sealWorkerFunction.js)。如果编译后的文件未更新,或者入口路径配置错误,就会一直运行旧代码。部署槽位不匹配:如果你的函数应用使用了部署槽,可能你在编辑的是测试槽的代码,但测试运行的是生产槽的实例,自然看不到修改效果。
附你提供的示例代码:
import { AzureFunction, Context, HttpRequest } from "@azure/functions"; import { workerExec } from "./worker"; const sealWorkerFunction: AzureFunction = async function ( context: Context, req: HttpRequest ): Promise<void> { const name = req.query.name || (req.body && req.body.name); const responseMessage = name ? "Hello, " + name + ". This HTTP triggered function executed successfully." : "This HTTP triggered function executed successfully. Pass a name in the query string or in the req body for a personalized response."; context.log(`Http function processed req for url "${req.url}"`); const message = req.body; context.log("type of message: ", typeof message); context.log("Test123 my message: ", message); context.res = { // status: 200, /* Defaults to 200 */ body: responseMessage, }; }; export default sealWorkerFunction;
内容的提问来源于stack exchange,提问作者Kid_Learning_C
相关产品推荐
相关产品推荐

