You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Azure部署Teams Tab+消息扩展Bot失败:InternalServerError排查求助

Microsoft Teams应用Azure部署后Bot无响应(错误码1008)排查与解决

问题现象

  • 本地运行包含Tab和Message Extension的Teams应用一切正常,部署到Azure开发环境后Bot完全无响应
  • 前端提示:无法连接到应用,请重试,内部错误码1008,后台返回错误信息:<BotError>Agent returned unsuccessful status code InternalServerError

核心错误日志

Azure环境日志中抛出明确语法错误:

SyntaxError: Cannot use import statement outside a module

项目背景

  • Bot模块采用TypeScript编写,编译后输出到/lib目录
  • Bot内部包含api文件夹,其中的JS文件采用ES6语法编写(使用import语句),并被直接导入到teamsBot.ts中使用

排查与解决方案

1. 明确Node.js模块模式

在Bot的package.json中添加"type": "module"字段,告知Node.js当前项目采用ES模块规范:

{
  "name": "your-bot-package-name",
  "type": "module",
  // 其他原有配置...
}

若项目存在CommonJS与ES模块混用情况,需同步调整导入导出语法:将require()替换为import,或对CommonJS模块使用动态导入import()

2. 调整TypeScript编译配置(tsconfig.json)

确保TS编译输出符合ES模块规范,同时覆盖api文件夹的编译:

{
  "compilerOptions": {
    "module": "ESNext", // 或ES2020+,确保输出ES模块格式
    "moduleResolution": "node",
    "target": "ES2020",
    "outDir": "./lib",
    "esModuleInterop": true,
    "allowSyntheticDefaultImports": true
    // 其他原有配置...
  },
  "include": ["src/**/*", "api/**/*"] // 确保api文件夹被纳入编译范围
}

3. 修正teamsapp.yml部署配置

检查部署脚本是否正确处理api文件夹:

  • 确认部署任务包含api目录的同步逻辑,避免仅复制lib目录而遗漏ES语法的JS文件
  • 若使用Azure Functions托管Bot,需确认FUNCTIONS_WORKER_RUNTIME设置为node,且Node.js版本≥16.x

4. 验证Azure环境Node.js版本

在Azure门户的Bot服务/函数应用配置中,确认Node.js运行时版本为16.x及以上——低版本Node.js对ES模块的支持不完善,是导致import语句报错的常见原因


内容的提问来源于stack exchange,提问作者Lucas Domo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.30 20:07:44