Подготовка и публикация бота
ОБЛАСТЬ ПРИМЕНЕНИЯ: ПАКЕТ SDK версии 4
В этой статье описывается, как использовать Azure CLI для создания ресурсов для бота, подготовки бота к развертыванию и развертывания бота в Azure.
В этой статье предполагается, что у вас есть бот, готовый к развертыванию. Сведения о создании простого эхо-бота см. в статье "Создание бота с помощью пакета SDK Bot Framework". Вы также можете использовать один из примеров, приведенных в соответствующем репозитории Bot Framework.
Совет
В этой статье создается ресурс Azure Bot для бота. Существующие боты, использующие ресурс Бота веб-приложения или ресурс регистрации каналов ботов, будут продолжать работать, но вы не можете создавать новые боты, использующие эти типы ресурсов.
Примечание.
Пакеты SDK для JavaScript, C# и Python для Bot Framework по-прежнему будут поддерживаться, однако пакет SDK java отменяется с окончательной долгосрочной поддержкой, заканчивающейся в ноябре 2023 года.
Существующие боты, созданные с помощью пакета SDK для Java, будут продолжать функционировать.
Для создания нового бота рекомендуется использовать Microsoft Copilot Studio и ознакомиться с выбором подходящего решения copilot.
Дополнительные сведения см. в статье "Будущее создания бота".
Необходимые компоненты
Для ботов Java установите Maven.
Этот процесс использует два шаблона Azure Resource Manager (шаблоны ARM) для создания ресурсов для бота.
Если у вас нет текущих шаблонов, создайте копию в проекте бота папки deploymentTemplates: C#, JavaScript, Python или Java.
Чтобы использовать Azure CLI для подготовки и публикации ботов, вам потребуется:
Учетная запись Azure с активной подпиской. Создайте бесплатную учетную запись.
Установка Azure CLI.
Для языка программирования используйте следующую версию Azure CLI. Некоторые шаги не будут работать с более поздними версиями интерфейса командной строки.
Язык Версия интерфейса командной строки C# и JavaScript 2.39.0 или более поздней версии Python 2.55.0 или более поздней версии Java 2.29.2
Примечание.
Если бот использует дополнительные ресурсы, например службу хранилища или языковые службы, их необходимо развернуть отдельно.
Планирование развертывания
Прежде чем начать, сделайте эти решения.
Decision | Примечания. |
---|---|
Управление удостоверениями ресурсов бота в Azure | Вы можете использовать управляемое удостоверение, назначаемое пользователем, регистрацию однотенантного приложения или регистрацию приложения-мутли-клиента. Дополнительные сведения см. в разделе "Создание ресурса удостоверения". |
В каких группах ресурсов или группах ресурсов вы создадите ресурсы бота | Пока вы не знакомы с этим процессом, рекомендуется использовать одну группу ресурсов. Дополнительные сведения см. в статье "Управление ресурсами Azure". |
Будет ли бот региональным или глобальным | Дополнительные сведения о региональных ботах см. в разделе "Регионизация" в azure AI Служба Bot. |
Удостоверение бота можно управлять в Azure несколькими способами.
- В качестве управляемого удостоверения, назначаемого пользователем, поэтому вам не нужно самостоятельно управлять учетными данными бота.
- Как однотенантное приложение.
- В качестве мультитенантного приложения.
Поддержка управляемых удостоверений, назначаемых пользователем, и типов приложений с одним клиентом была добавлена в пакет SDK Bot Framework для C#, JavaScript и Python. Эти типы приложений не поддерживаются на других языках или в Bot Framework Composer, эмуляторе Bot Framework или в туннелях разработки.
Тип приложения | Поддержка |
---|---|
Управляемое удостоверение, назначаемое пользователем | Пакеты SDK для JavaScript и Python для Azure Служба Bot и C#, JavaScript и Python |
Один клиент | Пакеты SDK для JavaScript и Python для Azure Служба Bot и C#, JavaScript и Python |
Несколько клиентов | Azure AI Служба Bot, все языки пакета SDK Bot Framework, Composer, эмулятор и туннели разработки |
Внимание
Боты Python нельзя развернуть в группе ресурсов, содержащей службы Или боты Windows. Однако несколько ботов Python можно развернуть в одной группе ресурсов. Создайте другие службы, такие как службы ИИ Azure, в другой группе ресурсов.
Ресурсы Azure
Перед развертыванием бота необходимо создать (или подготовить) необходимые ресурсы Azure. Для некоторых действий можно использовать существующий ресурс или создать новый.
Возможно, вам будет полезно заранее решить имена новых ресурсов, которые вы создадите, и имена существующих ресурсов, которые вы будете использовать. Бот будет использовать эти типы ресурсов.
- Подписка Azure, используемая для подготовки, публикации и управления ботом
- Одна или несколько групп ресурсов
- Управляемое удостоверение , назначаемое пользователем, или регистрация приложения идентификатора Microsoft Entra
- Ресурс плана Служба приложений
- Ресурс Служба приложений
- Ресурс Azure Bot
Сведения, используемые в ресурсах
При создании ресурсов в Azure Azure будут создаваться или запрашиваться идентификаторы, пароли и другие сведения, необходимые в последующих шагах. В следующей таблице перечислены сведения, выходящие за рамки имен ресурсов, которые необходимо записать, на котором он создан, и в каких шагах он используется.
Внимание
Многие из этих идентификаторов и паролей являются конфиденциальной информацией. Сведения об общих рекомендациях по безопасности см . в рекомендациях по безопасности Bot Framework.
Информация | Место создания или обнаружения | Где используется |
---|---|---|
Идентификатор клиента | Вход и выбор подписки | Создание ресурса Служба приложений с помощью Azure CLI, создание или обновление ресурса Azure Bot, обновление параметров конфигурации проекта с помощью Azure CLI |
Тип приложения | Создание ресурса удостоверения | Создание ресурса Служба приложений с помощью Azure CLI, создание или обновление ресурса Azure Bot, обновление параметров конфигурации проекта с помощью Azure CLI |
Client ID | Создание ресурса удостоверения | Создание ресурса Служба приложений с помощью Azure CLI, создание или обновление ресурса Azure Bot, обновление параметров конфигурации проекта с помощью Azure CLI |
URL-адрес службы базовых приложений | Создание ресурса Служба приложений с помощью Azure CLI | Создание или обновление ресурса Azure Bot с помощью Azure CLI |
Имя службы приложений | Создание ресурса Служба приложений с помощью Azure CLI | Публикация бота в Azure |
Вход и выбор подписки
Откройте командное окно.
войдите в Azure.
az login
- Откроется окно браузера. Завершите процесс входа в систему.
- При успешном выполнении команда выводит список подписок, к которой у вашей учетной записи есть доступ.
Чтобы задать используемую подписку, выполните следующую команду:
az account set --subscription "<subscription>"
Для <подписки> используйте идентификатор или имя используемой подписки.
Если вы создадите управляемое удостоверение, назначаемое пользователем, или бот с одним клиентом, запишите
tenantId
подписку. Идентификатор клиента будет использоваться в следующих шагах.
Совет
Если вам нужно работать в недоступном облаке, ознакомьтесь с azure Cloud Management с помощью Azure CLI.
Создание групп ресурсов
Если у вас еще нет соответствующей группы ресурсов, используйте az group create
команду для создания новых групп ресурсов.
az group create --name "<group>" --location "<region>"
Вариант | Description |
---|---|
name | Имя создаваемой группы ресурсов. |
расположение | Регион, в котором создается группа ресурсов. |
Дополнительные сведения см. в статье "Управление группами ресурсов Azure" с помощью Azure CLI.
Создание ресурса удостоверения
Для создания управляемого удостоверения, назначаемого пользователем, используйте команду
az identity create
. При успешном выполнении команда создает выходные данные JSON.az identity create --resource-group "<group>" --name "<identity>"
Вариант Описание resource-group Имя группы ресурсов, в которой создается удостоверение. name Имя создаваемого ресурса удостоверения. Дополнительные сведения см. в справочнике по az identity .
Записи значений, которые потребуются в последующих шагах.
- Имя группы ресурсов для ресурса удостоверений
- Имя ресурса удостоверения
- Выходные
clientId
данные команды
Создание ресурсов с помощью шаблонов ARM
Создайте Служба приложений и ресурсы Azure Bot для бота.
Оба шага используют шаблон ARM и az deployment group create
команду Azure CLI для создания ресурса или ресурсов.
Создайте ресурс Служба приложений для бота. Служба приложений может находиться в новом или существующем плане Служба приложений.
Подробные инструкции см. в статье "Использование Azure CLI для создания Служба приложений".
Создайте ресурс Azure Bot для бота.
Подробные инструкции см. в статье "Использование Azure CLI для создания или обновления Azure Bot".
Внимание
Эти действия можно выполнить в любом порядке. Однако при первом создании Azure Bot необходимо обновить конечную точку обмена сообщениями после создания ресурса Служба приложений.
Обновление параметров конфигурации проекта
Сведения об удостоверениях бота
Выполните следующие действия, чтобы добавить сведения об удостоверениях в файл конфигурации бота. Файл отличается в зависимости от языка программирования, используемого для создания бота.
Внимание
Версия пакета SDK Bot Framework для Java поддерживает только многотенантные боты. Версии C#, JavaScript и Python поддерживают все три типа приложений для управления удостоверением бота.
Язык | Имя файла | Примечания. |
---|---|---|
C# | appsettings.json | Поддерживает все три типа приложений для управления удостоверениями бота. |
JavaScript | env. | Поддерживает все три типа приложений для управления удостоверениями бота. |
Java | application.properties | Поддерживает только многотенантные боты. |
Python | config.py | Поддерживает все три типа приложений для управления удостоверениями бота. |
Сведения об удостоверениях, которые необходимо добавить, зависят от типа приложения бота. Укажите следующие значения в файле конфигурации.
Доступно для ботов C#, JavaScript и Python.
Свойство | Значение |
---|---|
MicrosoftAppType |
UserAssignedMSI |
MicrosoftAppId |
Идентификатор клиента управляемого удостоверения, назначаемого пользователем. |
MicrosoftAppPassword |
Неприменимо. Оставьте это пустым для бота управляемого удостоверения, назначаемого пользователем. |
MicrosoftAppTenantId |
Идентификатор клиента управляемого удостоверения, назначаемого пользователем. |
Подготовка файлов проекта
Подготовьте файлы проекта перед развертыванием бота.
Переключитесь в корневую папку проекта. Для C#корневой каталог — это папка, содержащая CSPROJ-файл.
Выполните чистую перестроение в режиме выпуска.
Если вы этого еще не сделали, выполните команду
az bot prepare-deploy
, чтобы добавить необходимые файлы в корневой каталог локального исходного кода. Эта команда создаст файл.deployment
в папке проекта бота.az bot prepare-deploy --lang Csharp --code-dir "." --proj-file-path "<my-cs-proj>"
Вариант Описание lang Язык или среда выполнения бота. Используйте Csharp
.code-dir Каталог для размещения созданных файлов развертывания. Используйте корневую папку проекта. По умолчанию используется текущий каталог. proj-file-path Путь к CSPROJ-файлу для бота code-dir
относительно параметра.В корневой папке проекта создайте ZIP-файл, содержащий все файлы и вложенные папки.
Публикация бота в Azure
На этом этапе вы готовы развернуть код для бота в Служба приложений ресурсе.
Примечание.
Этот шаг может занять несколько минут. Кроме того, после завершения развертывания бот станет доступным для тестирования через несколько минут.
az webapp deploy
Выполните команду из командной строки, чтобы выполнить развертывание с помощью zip-развертывания Kudu zip-отправки для службы приложений (веб-приложение).
Вариант | Описание |
---|---|
resource-group | Имя группы ресурсов Azure, которая содержит бота. |
name | Имя службы приложений, которую вы использовали ранее. |
src | Абсолютный или относительный путь к созданному файлу проекта. |
Совет
По умолчанию эта команда развертывается в рабочем слоте. Используйте необязательный --slot
параметр, чтобы указать другой слот.
Дополнительные сведения см. в справочной документации по командамaz webapp deploy
.
Тест в веб-чате
- В браузере перейдите на портал Azure.
- Перейдите к ресурсу бота.
- Откройте панель Test in Web Chat (Тестирование в веб-чате).
- Взаимодействуйте с развернутыми ботами.
Дополнительные сведения о регистрации бота см. в разделе "Регистрация бота с помощью Служба Bot".
Очистка ресурсов
Если вы не собираетесь публиковать это приложение, удалите связанные ресурсы, выполнив следующие действия.
- На портале Azure откройте группу ресурсов бота.
- Выберите "Удалить группу ресурсов", чтобы удалить группу и все содержащиеся в ней ресурсы.
- Введите имя группы ресурсов в области подтверждения, а затем нажмите кнопку "Удалить".
- Если вы создали однотенантное или мультитенантное приложение:
- Перейдите в колонку идентификатора Microsoft Entra ID.
- Найдите регистрацию приложения, используемую для бота, и удалите ее.
Дополнительные ресурсы
Дополнительные сведения о приложениях и ресурсах Azure, используемых для размещения бота, см. в этих статьях.
Тема | Статья |
---|---|
Azure CLI | Что такое Azure CLI? |
Управление подписками Azure | Управление подписками Azure с помощью Azure CLI |
Регионы Azure | Регионы и зоны доступности |
Группы ресурсов и управление ресурсами | Getting Started with Resources - Manage Resource - in Java (Приступая к работе с ресурсами: управление ресурсами в Java) |
Управляемые удостоверения | Что такое управляемые удостоверения для ресурсов Azure? |
Однотенантные и мультитенантные приложения | Арендочность в идентификаторе Microsoft Entra |
Веб-приложения | Служба приложений |
Вычислительные ресурсы для веб-приложений | Планы службы приложений |
шаблоны Azure Resource Manager (шаблоны ARM); | Что такое шаблоны ARM? Использование шаблонов развертывания Azure Resource Manager (ARM) с Azure CLI |
Выставление счетов в Azure | Управление выставлением счетов и затратами |
Файлы Kudu
Команда развертывания веб-приложения использует Kudu для развертывания ботов C#, JavaScript и Python. При использовании не настроенного API zip-развертывания для развертывания кода бота поведение выглядит следующим образом:
Kudu предполагает, что развертывания из .zip файлов готовы к выполнению и не требуют дополнительных шагов сборки во время развертывания, таких как npm install или dotnet restore/dotnet publish.
Важно включить встроенный код со всеми необходимыми зависимостями в развернутый ZIP-файл; в противном случае бот не будет работать должным образом. Дополнительные сведения см. в документации Azure по развертыванию файлов в Служба приложений.