【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
當在復雜的環境中面臨問題,格物之道需:濁而靜之徐清,安以動之徐生。 云中,恰是如此!

浙公網安備 33010602011771號