如何将本地Bot Framework开发的Bot注册并部署到Azure?
把本地Bot注册到Azure并集成微软服务的分步方案
我完全懂你的困扰——Bot Framework的入口确实全转到Azure了,旧教程里的dev.botframework.com注册入口早就没了。别担心,下面是一步步把你本地现有Bot注册到Azure并集成Cortana的方案:
第一步:在Azure创建Bot资源(核心关联载体)
现在所有Bot的管理都在Azure平台,我们需要创建一个Azure Bot资源来关联你本地的Bot代码,而不是新建Bot应用:
- 登录Azure门户,搜索「Azure Bot」并点击「创建」
- 填写基础配置:
- 选择你的订阅和资源组(没有的话新建一个)
- 输入全局唯一的Bot名称(会作为Bot的标识前缀)
- 定价层选「F0」(免费层足够测试,后续可升级)
- 关键:在「Bot template」下拉框里选择Create an empty bot——这一步是为了关联你现有的本地Bot,而非用Azure模板新建
- 配置身份验证:选择「Microsoft App ID and password」,点击「Create new」,Azure会自动生成App ID和密码,务必把密码保存好(后续本地配置要用)
- 完成配置后点击「创建」,等待Azure部署完成Bot资源
第二步:关联本地Bot到Azure资源
现在要把你本地的Bot代码和Azure的Bot资源绑定:
- 打开你本地Bot项目的配置文件:
- 如果是C#项目,找到
appsettings.json - 如果是Node.js项目,找到
.env文件
- 如果是C#项目,找到
- 更新配置项:
- 将
MicrosoftAppId替换为Azure生成的App ID - 将
MicrosoftAppPassword替换为你保存的密码 - 如果用的是Bot Framework SDK v4+,确保
BotEndpoint设置为本地Bot的消息端点(通常是http://localhost:3978/api/messages)
- 将
第三步:让Azure能访问到你的本地Bot
本地Bot是内网地址,Azure没法直接访问,需要用工具把本地端口暴露到公网:
- 下载并启动内网穿透工具(比如ngrok),执行命令:
ngrok http 3978(3978是Bot默认的本地端口,如果你改了就换成对应的端口) - 启动后工具会生成一个HTTPS的公网地址,比如
https://abc123.xxx.io,把这个地址加上Bot的消息路径,得到完整端点:https://abc123.xxx.io/api/messages - 回到Azure门户的Bot资源,进入「Configuration」选项卡,把刚才生成的完整端点填到「Messaging endpoint」里,保存配置
第四步:测试关联是否成功
- 在Azure Bot资源里找到「Test in Web Chat」选项卡,发送一条消息
- 如果你的本地Bot能收到消息并正常回复,说明关联成功了
第五步:集成Cortana等微软服务
关联完成后,就可以添加微软生态的渠道了:
- 在Azure Bot资源的「Channels」选项卡,找到「Cortana」并点击「Configure」
- 按照提示配置Cortana技能:设置技能名称、描述,添加触发短语(用户通过Cortana调用Bot的关键词)
- 保存配置后,你的Bot就可以通过Cortana被用户访问了
额外注意事项
- 确保你的本地Bot使用的是最新版本的Bot Framework SDK,避免兼容性问题
- 内网穿透工具只是临时测试用的,正式上线需要把Bot部署到Azure App Service或者其他云端托管服务,部署后记得把Azure的Messaging endpoint更新为线上的公网地址
- 务必妥善保管Microsoft App ID和密码,不要泄露给第三方
内容的提问来源于stack exchange,提问作者Bruno Alves
相关产品推荐
相关产品推荐

