【Azure Bot Service】在中国区Azure上部署机器人的 Python 版配置

简介: 本文介绍了在中国区Azure上使用Python SDK配置Azure Bot Service时遇到的问题及解决方案,涵盖参数设置与适配器配置,适用于希望在Azure中国区部署Python机器人的开发者。

问题描述

在中国区Azure上使用Azure Bot Service服务,入门教程中创建机器人由四种语言的SDK可以选择(C#, Java, JavaScript 和 Python , 并且Java SDK也已经停用),所以可选的只有三种。

当选择使用Python SDK后,根据入门文档(使用 Bot Framework SDK 创建机器人:https://docs.azure.cn/zh-cn/bot-service/bot-service-quickstart-create-bot?view=azure-bot-service-4.0&tabs=python%2Cvs)本地测试通过,当需要把配置到中国区的Azure时候,却发现没有Python的配置介绍。

不用怕,本文就是来弥补Python SDK需要设置的参数!

 

问题解答

根据配置Azure Bot Service的文档步骤,也是需要配置云适配器来构建 Adapter对象

 

第一部分:使用 CloudAdapter 并加载配置文件config.py


from botbuilder.core import (
    TurnContext,
)
from botbuilder.core.integration import aiohttp_error_middleware
from botbuilder.integration.aiohttp import CloudAdapter, ConfigurationBotFrameworkAuthentication
from botbuilder.schema import Activity, ActivityTypes
from config import DefaultConfig
....
CONFIG = DefaultConfig()
ADAPTER = CloudAdapter(ConfigurationBotFrameworkAuthentication(CONFIG))


第二部分:在 config.py 中添加如下配置项


import os
""" Bot Configuration """
class DefaultConfig:
    """ Bot Configuration """
    PORT = 3978
    
    APP_ID = os.environ.get("MicrosoftAppId", "your application id")    
    APP_PASSWORD = os.environ.get("MicrosoftAppPassword", "application secret value")
    APP_TYPE = os.environ.get("MicrosoftAppType", "MultiTenant")
    # APP_TYPE = os.environ.get("MicrosoftAppType", "SingleTenant")
    APP_TENANTID = os.environ.get("MicrosoftAppTenantId", "")
    OAUTH_URL = os.environ.get("OAuthUrl", "https://token.botframework.azure.cn/")
    TO_BOT_FROM_CHANNEL_TOKEN_ISSUER = os.environ.get("ToBotFromChannelTokenIssuer", "https://api.botframework.azure.cn")
    TO_BOT_FROM_CHANNEL_OPENID_METADATA_URL = os.environ.get("ToBotFromChannelOpenIdMetadataUrl", "https://login.botframework.azure.cn/v1/.well-known/openidconfiguration")
    TO_BOT_FROM_EMULATOR_OPENID_METADATA_URL = os.environ.get("ToBotFromEmulatorOpenIdMetadataUrl", "https://login.partner.microsoftonline.cn/<your tenant id>/v2.0/.well-known/openid-configuration")
    TO_CHANNEL_FROM_BOT_LOGIN_URL = os.environ.get("ToChannelFromBotLoginUrl","https://login.partner.microsoftonline.cn/<your tenant id>")
    #TO_CHANNEL_FROM_BOT_LOGIN_URL = os.environ.get("ToChannelFromBotLoginUrl","https://login.partner.microsoftonline.cn/microsoftservices.partner.onmschina.cn") #For Multi Tenant
    TO_CHANNEL_FROM_BOT_OAUTH_SCOPE = os.environ.get("ToChannelFromBotOAuthScope", "https://api.botframework.azure.cn")
    
    VALIDATE_AUTHORITY = os.environ.get("ValidateAuthority", "true")

以上参数的值与C#和JavaScript一样,主要的问题是需要找到正确的参数名称  (上面的参数名称均是根据SDK的源码和参考文档中寻找)

 


参考资料

使用 Bot Framework SDK 创建机器人:https://docs.azure.cn/zh-cn/bot-service/bot-service-quickstart-create-bot?view=azure-bot-service-4.0&tabs=python%2Cvs

在由世纪互联运营的 Microsoft Azure 中配置机器人:https://learn.microsoft.com/zh-cn/azure/bot-service/how-to-deploy-china-cloud?view=azure-bot-service-4.0&tabs=javascript#configure-multitenant-bot

BotFrameworkAuthenticationFactory 类:https://learn.microsoft.com/zh-cn/python/api/botframework-connector/botframework.connector.auth.bot_framework_authentication_factory.botframeworkauthenticationfactory?view=botbuilder-py-latest

 

 



当在复杂的环境中面临问题,格物之道需:浊而静之徐清,安以动之徐生。 云中,恰是如此!

相关文章
|
4月前
|
监控 安全 程序员
Python日志模块配置:从print到logging的优雅升级指南
从 `print` 到 `logging` 是 Python 开发的必经之路。`print` 调试简单却难维护,日志混乱、无法分级、缺乏上下文;而 `logging` 支持级别控制、多输出、结构化记录,助力项目可维护性升级。本文详解痛点、优势、迁移方案与最佳实践,助你构建专业日志系统,让程序“有记忆”。
410 0
|
5月前
|
JSON 缓存 开发者
淘宝商品详情接口(item_get)企业级全解析:参数配置、签名机制与 Python 代码实战
本文详解淘宝开放平台taobao.item_get接口对接全流程,涵盖参数配置、MD5签名生成、Python企业级代码实现及高频问题排查,提供可落地的实战方案,助你高效稳定获取商品数据。
|
9月前
|
人工智能 安全 Shell
Jupyter MCP服务器部署实战:AI模型与Python环境无缝集成教程
Jupyter MCP服务器基于模型上下文协议(MCP),实现大型语言模型与Jupyter环境的无缝集成。它通过标准化接口,让AI模型安全访问和操作Jupyter核心组件,如内核、文件系统和终端。本文深入解析其技术架构、功能特性及部署方法。MCP服务器解决了传统AI模型缺乏实时上下文感知的问题,支持代码执行、变量状态获取、文件管理等功能,提升编程效率。同时,严格的权限控制确保了安全性。作为智能化交互工具,Jupyter MCP为动态计算环境与AI模型之间搭建了高效桥梁。
652 2
Jupyter MCP服务器部署实战:AI模型与Python环境无缝集成教程
|
NoSQL Python
python 部署mongodb脚本
image.png image.png image.png
1086 0
|
5月前
|
数据采集 机器学习/深度学习 人工智能
Python:现代编程的首选语言
Python:现代编程的首选语言
618 102
|
5月前
|
数据采集 机器学习/深度学习 算法框架/工具
Python:现代编程的瑞士军刀
Python:现代编程的瑞士军刀
405 104
|
5月前
|
人工智能 自然语言处理 算法框架/工具
Python:现代编程的首选语言
Python:现代编程的首选语言
315 103
|
5月前
|
机器学习/深度学习 人工智能 数据挖掘
Python:现代编程的首选语言
Python:现代编程的首选语言
257 82
|
4月前
|
Python
Python编程:运算符详解
本文全面详解Python各类运算符,涵盖算术、比较、逻辑、赋值、位、身份、成员运算符及优先级规则,结合实例代码与运行结果,助你深入掌握Python运算符的使用方法与应用场景。
359 3

推荐镜像

更多