您现在访问的是微软AZURE全球版技术文档网站,若需要访问由世纪互联运营的MICROSOFT AZURE中国区技术文档网站,请访问 https://docs.azure.cn.

管理机器人资源

适用于: SDK v4

机器人往往使用不同的服务,例如 LUIS.aiQnaMaker.ai。 开发机器人时,需要能够跟踪所有这些服务。 可以使用各种方法,例如 appsettings.json、web.config 或 .env。

重要

在 Bot Framework SDK 4.3 版本之前,我们提供了 .bot 文件作为一种资源管理机制。 但是,在今后,建议你使用 appsettings.json 或 .env 文件来管理这些资源。 虽然 .bot 文件已 弃用 ,但使用 .bot 文件的机器人目前仍可继续正常运行。 如果你一直在使用 .bot 文件管理资源,请按照适用的步骤来迁移设置。

从 .bot 文件迁移设置

以下部分介绍如何从 .bot 文件迁移设置。 请根据相应的场景进行操作。

场景 1:本地机器人有一个 .bot 文件

在此场景中,你有一个使用 .bot 文件的本地机器人,但该机器人尚未迁移 到 Azure 门户。 请按以下步骤将设置从 .bot 文件迁移到 appsettings.json 或 .env 文件。

  • 如果 .bot 文件已加密,则需使用以下命令将其解密:
msbot secret --bot <name-of-bot-file> --secret "<bot-file-secret>" --clear
  • 打开解密的 .bot 文件,复制值并将其添加到 appsettings.json 或 .env 文件。
  • 更新从 appsettings.json 或 .env 文件读取设置的代码。

ConfigureServices 方法中,使用 ASP.NET Core 提供的配置对象,例如:

Startup.cs

var appId = Configuration.GetSection("MicrosoftAppId").Value;
var appPassword = Configuration.GetSection("MicrosoftAppPassword").Value;
options.CredentialProvider = new SimpleCredentialProvider(appId, appPassword);

根据需要使用 appsettings.json 或 .env 文件预配资源并将其连接到机器人。

场景 2:已使用 .bot 文件将机器人部署到 Azure

在此场景中,你已使用 .bot 文件将机器人部署到 Azure 门户,现在需将设置从 .bot 文件迁移到 appsettings.json 或 .env 文件。

  • 从 Azure 门户下载机器人代码。 下载代码时,系统会提示你包括 appsettings.json 或 .env 文件,其中会有你的 MicrosoftAppId 和 MicrosoftAppPassword 以及任何其他的设置。
  • 打开下载的 appsettings.json 或 .env 文件,将设置从其中复制到本地 appsettings.json 或 .env 文件中。 请勿忘记从本地 appsettings.json 或 .env 文件中删除 botSecret 和 botFilePath 条目。
  • 更新从 appsettings.json 或 .env 文件读取设置的代码。

ConfigureServices 方法中,使用 ASP.NET Core 提供的配置对象,例如:

Startup.cs

var appId = Configuration.GetSection("MicrosoftAppId").Value;
var appPassword = Configuration.GetSection("MicrosoftAppPassword").Value;
options.CredentialProvider = new SimpleCredentialProvider(appId, appPassword);

还需要从 "应用程序设置" 部分中删除 和 botFilePath botFileSecret Azure 门户。

根据需要使用 appsettings.json 或 .env 文件预配资源并将其连接到机器人。

场景 3:机器人使用 appsettings.json 或 .env 文件

此场景涵盖这样的情况:你从头开始使用 SDK 4.3 来开发机器人,没有可供迁移的现有 .bot 文件。 需要在机器人中使用的所有设置均位于 appsettings.json 或 .env 文件中,如下所示:

{
  "MicrosoftAppId": "<your-AppId>",
  "MicrosoftAppPassword": "<your-AppPwd>"
}

若要在 C# 代码中读取上述设置,需使用 ASP.NET Core 提供的配置对象,例如:Startup.cs

var appId = Configuration.GetSection("MicrosoftAppId").Value;
var appPassword = Configuration.GetSection("MicrosoftAppPassword").Value;
options.CredentialProvider = new SimpleCredentialProvider(appId, appPassword);

根据需要使用 appsettings.json 或 .env 文件预配资源并将其连接到机器人。

其他资源

  • 若要了解机器人部署步骤,请参阅部署主题。
  • 了解如何使用 Azure Key Vault 来保护及管理云应用程序与服务使用的加密密钥和机密。