Skip to content

使用 Python 自动化管理 Azure Bot Service 资源

解决手动配置 Azure 机器人的低效问题:利用 Python SDK 实现 Azure Bot Service 资源的编程化管理,包括机器人的生命周期维护、多渠道集成及安全连接配置。

为什么需要这个技能

在构建企业级对话机器人时,通过 Azure 门户手动创建 Bot、配置 Teams 或 Web Chat 频道以及设置 OAuth 连接既耗时又容易出错。尤其是在需要快速部署多个测试环境或进行 CI/CD 自动化部署时,手动操作无法满足需求。

通过 azure-mgmt-botservice 库,开发者可以将基础设施即代码(IaC)的理念引入机器人管理,实现一键创建、快速更新和批量查询,极大地提升了云资源的运维效率。

适用场景

  • 自动化部署:在流水线中自动创建和配置 Azure Bot 实例及其关联频道。
  • 多环境管理:快速在开发、测试和生产环境中复制相同的机器人配置。
  • 动态频道切换:根据需求通过代码动态启用或禁用 Ms Teams、Direct Line 等通信渠道。
  • 凭证管理:自动化提取 Direct Line 密钥或管理 OAuth 连接设置。

核心工作流

  1. 环境准备与鉴权:安装 azure-mgmt-botserviceazure-identity,使用 DefaultAzureCredential 实现无密钥的安全认证。
  2. 资源实例化:配置订阅 ID 和资源组,初始化 AzureBotService 客户端。
  3. 机器人生命周期管理
    • 使用 client.bots.create 创建机器人,并指定 SKU(如 F0 免费层或 S1 标准层)。
    • 通过 client.bots.update 修改显示名称或描述。
  4. 频道配置:调用 client.channels.create,根据具体需求选择 MsTeamsChannelWebChatChannelDirectLineChannel
  5. 连接与安全:利用 client.bot_connection 配置 OAuth 客户端 ID 和密钥,实现机器人与第三方服务的安全连接。

代码示例

安装依赖

bash
pip install azure-mgmt-botservice
pip install azure-identity

创建机器人实例

python
from azure.mgmt.botservice import AzureBotService
from azure.mgmt.botservice.models import Bot, BotProperties, Sku
from azure.identity import DefaultAzureCredential
import os

credential = DefaultAzureCredential()
client = AzureBotService(
    credential=credential,
    subscription_id=os.environ["AZURE_SUBSCRIPTION_ID"]
)

resource_group = os.environ["AZURE_RESOURCE_GROUP"]
bot_name = "my-chat-bot"

bot = client.bots.create(
    resource_group_name=resource_group,
    resource_name=bot_name,
    parameters=Bot(
        location="global",
        sku=Sku(name="F0"), 
        kind="azurebot",
        properties=BotProperties(
            display_name="My Chat Bot",
            endpoint="https://my-bot-app.azurewebsites.net/api/messages",
            msa_app_id="<your-app-id>",
            msa_app_type="MultiTenant"
        )
    )
)

下载和安装

下载 azure-mgmt-botservice-py 中文版 Skill ZIP

解压后将目录放入你的 AI 工具 skills 文件夹,重启工具后即可使用。具体路径参考内附的 USAGE.zh.md

你可能还需要

暂无推荐