问题描述

在中国区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的源码和参考文档中寻找)

参考资料

在由世纪互联运营的 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

 
 

【Azure Bot Service】在中国区Azure上部署机器人的 Python 版配置的更多相关文章

  1. How to Build a Chat Bot Using Azure Bot Service and Train It with LUIS

    Introduction If you haven’t had much programming experience before, building a conversational bot an ...

  2. Windows Azure Cloud Service (43) 使用Azure In-Role Cache缓存(2)Dedicated Role

    <Windows Azure Platform 系列文章目录> Update 2016-01-12 https://azure.microsoft.com/zh-cn/documentat ...

  3. 【Azure 云服务】如何从Azure Cloud Service中获取项目的部署文件

    问题描述 在历史已经部署的云服务(Azure Cloud Service)中,如何获取到项目在很久以前的部署包文件呢? 解决办法 1)如果部署云服务是通过门户上传部署包到存储账号中,则可以直接从存储账 ...

  4. Windows Azure Cloud Service (36) 在Azure Cloud Service配置SSL证书

    <Windows Azure Platform 系列文章目录> 在某些时候,我们需要在Azure PaaS Cloud Service配置HTTPS连接.本章将介绍如何在本地创建证书,然后 ...

  5. Windows Azure Cloud Service (42) 使用Azure In-Role Cache缓存(1)Co-located Role

    <Windows Azure Platform 系列文章目录> Update 2016-01-12 https://azure.microsoft.com/zh-cn/documentat ...

  6. 通过Azure bot framework composer 设计一个AI对话机器人bot(查询天气)

    本文介绍通过机器人框架设计器 (Bot framework composer)接近拖拉拽的方式设计一个聊天机器人,该聊天机器人的主要功能是发起http请求查询天气.当然,稍微变通下,可以用来查询几乎任 ...

  7. windows server服务器上部署java+tomcat网站域名配置

    如果只是部署java项目的话,可以把IIS删除,然后在服务器上安装jdk tomcat 配置好环境变量,就和你在自己计算机上开发一样,把你的项目war包拷到tomcat下的webapps里(任意目录都 ...

  8. centos上部署flask项目之环境配置-MySQL的安装

    1.添加mysql 的yum源 wget 'https://dev.mysql.com/get/mysql57-community-release-el7-11.noarch.rpm'    rpm ...

  9. 同一台服务器上部署多个Tomcat的配置修改方法

    同一服务器部署多个tomcat时,存在端口号冲突的问题,所以需要修改tomcat配置文件server.xml,以tomcat7为例. 首先了解下tomcat的几个主要端口: <Server po ...

  10. ASP.NET Core在Azure Kubernetes Service中的部署和管理

    目录 ASP.NET Core在Azure Kubernetes Service中的部署和管理 目标 准备工作 注册 Azure 账户 AKS文档 进入Azure门户(控制台) 安装 Azure Cl ...

随机推荐

  1. python ast模块使用

    ast(Abstract Syntax Trees)是python中非常有用的一个模块,我们可以通过分析python的抽象语法树来对python的代码进行分析和修改. ast作用在python代码的语 ...

  2. WPF的Image控件图片不能显示出来

    在Visual studio中,将图片的属性的"生成操作"从"无"改为"资源". 最终解决问题:

  3. slf4j、logback、log4j、log4j2的区别

    区别 slf4j是一个日志接口,自己没有具体实现日志系统,只提供了一组标准的调用api,这样将调用和具体的日志实现分离,使用slf4j后有利于根据自己实际的需求更换具体的日志系统,比如,之前使用的具体 ...

  4. Golang实现RPC

    RPC 一.简介 远程过程调用(Remote Procedure Call,RPC)是一个计算机通信协议 : 该协议允许运行于一台计算机的程序调用另一台计算机的子程序,而程序员无需额 外地为这个交互作 ...

  5. Docker安装运行报错wsl问题排查方案

    Docker运行报错wsl问题排查方案 在window中安装运行Docker Desktop时容易遇到有关wsl的报错问题,这里给出几个排查解决的方法用于记录. 排查步骤如下: 一.开启虚拟化问题 1 ...

  6. MinHook 对.NET底层的 SendMessage 拦截真实案例反思

    一:背景 1. 讲故事 上一篇我们说到了 minhook 的一个简单使用,这一篇给大家分享一个 minhook 在 dump 分析中的实战,先看下面的线程栈. 0:044> ~~[138c]s ...

  7. SonarQube的使用

    一.简单介绍 SonarQube是一种自动代码审查工具,用于检测代码中的错误,漏洞和代码异味.它可以与您现有的工作流程集成,以便在项目分支和拉取请求之间进行连续的代码检查,在很多企业中都会使用到,进行 ...

  8. 详解鸿蒙Next仓颉开发语言中的全屏模式

    大家好,今天跟大家分享一下仓颉开发语言中的全屏模式. 和ArkTS一样,仓颉的新建项目默认是非全屏模式的,如果你的应用颜色比较丰富,就会发现屏幕上方和底部的留白,这是应用自动避让了屏幕上方摄像头区域和 ...

  9. 开源技术交流丨ChengYing部署Hadoop集群实战

    一.直播介绍 上期雅泽同学对ChengYing是什么.有什么样的功能特性,如何快速入门做了介绍,本期海洋同学将会为大家分享ChengYing部署Hadoop集群实战的相关内容,欢迎大家积极参与. 二. ...

  10. 我的第一个 WinUI 3 程序,遇到了 5 次碰壁

    为什么要学习 WinUI 3呢? Winform 程序,简单.直接.快速: Wpf 程序,丰富.多样.好看: WinUI3 呢?据说它是前两者的升级版,比它们更酷炫,性能更好,而且跨平台,是技术的前沿 ...