Подготовка и публикация бота

ОБЛАСТЬ ПРИМЕНЕНИЯ: ПАКЕТ SDK версии 4

В этой статье описывается, как использовать Azure CLI для создания ресурсов для бота, подготовки бота к развертыванию и развертывания бота в Azure.

В этой статье предполагается, что у вас есть бот, готовый к развертыванию. Сведения о создании простого эхо-бота см. в статье "Создание бота с помощью пакета SDK Bot Framework". Вы также можете использовать один из примеров, приведенных в соответствующем репозитории Bot Framework.

Совет

В этой статье создается ресурс Azure Bot для бота. Существующие боты, использующие ресурс Бота веб-приложения или ресурс регистрации каналов ботов, будут продолжать работать, но вы не можете создавать новые боты, использующие эти типы ресурсов.

Примечание.

Пакеты SDK для JavaScript, C# и Python для Bot Framework по-прежнему будут поддерживаться, однако пакет SDK java отменяется с окончательной долгосрочной поддержкой, заканчивающейся в ноябре 2023 года. В этом репозитории будут выполняться только критически важные исправления безопасности и ошибок.

Существующие боты, созданные с помощью пакета SDK для Java, будут продолжать функционировать.

Для создания нового бота рекомендуется использовать Power Virtual Agent и ознакомиться с выбором подходящего решения чат-бота.

Дополнительные сведения см. в статье "Будущее создания бота".

Необходимые компоненты

  • Для ботов 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.36.0
    Java 2.29.2

Примечание.

Если бот использует дополнительные ресурсы, например службу хранилища или языковые службы, их необходимо развернуть отдельно.

Планирование развертывания

Прежде чем начать, сделайте эти решения.

Decision Примечания.
Управление удостоверениями ресурсов бота в Azure Вы можете использовать управляемое удостоверение, назначаемое пользователем, регистрацию однотенантного приложения или регистрацию приложения-мутли-клиента. Дополнительные сведения см. в разделе "Создание ресурса удостоверения".
В каких группах ресурсов или группах ресурсов вы создадите ресурсы бота Пока вы не знакомы с этим процессом, рекомендуется использовать одну группу ресурсов. Дополнительные сведения см. в статье "Управление ресурсами Azure".
Будет ли бот региональным или глобальным Дополнительные сведения о региональных ботах см. в разделе "Регионизация" в azure AI Служба Bot.

Удостоверение бота можно управлять в Azure несколькими способами.

  • В качестве управляемого удостоверения, назначаемого пользователем, поэтому вам не нужно самостоятельно управлять учетными данными бота.
  • Как однотенантное приложение.
  • В качестве мультитенантного приложения.

Поддержка управляемого удостоверения, назначаемого пользователем, и типов приложений с одним клиентом была добавлена в пакет SDK Bot Framework для C# и JavaScript версии 4.15.0. Эти типы приложений не поддерживаются на других языках или в Bot Framework Composer, эмуляторе Bot Framework или ngrok.

Тип приложения Поддержка
Управляемое удостоверение, назначаемое пользователем Служба Bot ИИ Azure и пакеты SDK для JavaScript и C#
Один клиент Служба Bot ИИ Azure и пакеты SDK для JavaScript и C#
Несколько клиентов Azure AI Служба Bot, все языки пакета SDK Bot Framework, Composer, эмулятор и ngrok

Внимание

Боты 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

Вход и выбор подписки

  1. Откройте командное окно.

  2. войдите в Azure.

    az login
    
    • Откроется окно браузера. Завершите процесс входа в систему.
    • При успешном выполнении команда выводит список подписок, к которой у вашей учетной записи есть доступ.
  3. Чтобы задать используемую подписку, выполните следующую команду:

    az account set --subscription "<subscription>"
    

    Для <подписки> используйте идентификатор или имя используемой подписки.

  4. Если вы создадите управляемое удостоверение, назначаемое пользователем, или бот с одним клиентом, запишите tenantId подписку. Идентификатор клиента будет использоваться в следующих шагах.

Совет

Если вам нужно работать в недоступном облаке, ознакомьтесь с azure Cloud Management с помощью Azure CLI.

Создание групп ресурсов

Если у вас еще нет соответствующей группы ресурсов, используйте az group create команду для создания новых групп ресурсов.

az group create --name "<group>" --location "<region>"
Вариант Description
name Имя создаваемой группы ресурсов.
расположение Регион, в котором создается группа ресурсов.

Дополнительные сведения см. в статье "Управление группами ресурсов Azure" с помощью Azure CLI.

Создание ресурса удостоверения

  1. Для создания управляемого удостоверения, назначаемого пользователем, используйте команду az identity create. При успешном выполнении команда создает выходные данные JSON.

    az identity create --resource-group "<group>" --name "<identity>"
    
    Вариант Описание
    resource-group Имя группы ресурсов, в которой создается удостоверение.
    name Имя создаваемого ресурса удостоверения.

    Дополнительные сведения см. в справочнике по az identity .

  2. Записи значений, которые потребуются в последующих шагах.

    1. Имя группы ресурсов для ресурса удостоверений
    2. Имя ресурса удостоверения
    3. Выходные clientId данные команды

Создание ресурсов с помощью шаблонов ARM

Создайте Служба приложений и ресурсы Azure Bot для бота. Оба шага используют шаблон ARM и az deployment group create команду Azure CLI для создания ресурса или ресурсов.

  1. Создайте ресурс Служба приложений для бота. Служба приложений может находиться в новом или существующем плане Служба приложений.

    Подробные инструкции см. в статье "Использование Azure CLI для создания Служба приложений".

  2. Создайте ресурс Azure Bot для бота.

    Подробные инструкции см. в статье "Использование Azure CLI для создания или обновления Azure Bot".

Внимание

Эти действия можно выполнить в любом порядке. Однако при первом создании Azure Bot необходимо обновить конечную точку обмена сообщениями после создания ресурса Служба приложений.

Обновление параметров конфигурации проекта

Сведения об удостоверениях бота

Выполните следующие действия, чтобы добавить сведения об удостоверениях в файл конфигурации бота. Файл отличается в зависимости от языка программирования, используемого для создания бота.

Внимание

Версии пакета SDK Bot Framework для Java и Python поддерживают только многотенантные боты. Версии C# и JavaScript поддерживают все три типа приложений для управления удостоверением бота.

Язык Имя файла Примечания.
C# appsettings.json Поддерживает все три типа приложений для управления удостоверениями бота.
JavaScript env. Поддерживает все три типа приложений для управления удостоверениями бота.
Java application.properties Поддерживает только многотенантные боты.
Python config.py Поддерживает только многотенантные боты. Укажите свойства удостоверения в качестве аргументов для вызовов os.environ.get метода.

Сведения об удостоверениях, которые необходимо добавить, зависят от типа приложения бота. Укажите следующие значения в файле конфигурации.

Доступно только для ботов C# и JavaScript.

Свойство Значение
MicrosoftAppType UserAssignedMSI
MicrosoftAppId Идентификатор клиента управляемого удостоверения, назначаемого пользователем.
MicrosoftAppPassword Неприменимо. Оставьте это пустым для бота управляемого удостоверения, назначаемого пользователем.
MicrosoftAppTenantId Идентификатор клиента управляемого удостоверения, назначаемого пользователем.

Подготовка файлов проекта

Подготовьте файлы проекта перед развертыванием бота.

  1. Переключитесь в корневую папку проекта. Для C#корневой каталог — это папка, содержащая CSPROJ-файл.

  2. Выполните чистую перестроение в режиме выпуска.

  3. Если вы этого еще не сделали, выполните команду 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 относительно параметра.
  4. В корневой папке проекта создайте ZIP-файл, содержащий все файлы и вложенные папки.

Публикация бота в Azure

На этом этапе вы готовы развернуть код для бота в Служба приложений ресурсе.

Примечание.

Этот шаг может занять несколько минут. Кроме того, после завершения развертывания бот станет доступным для тестирования через несколько минут.

Выполните следующую команду из командной строки, чтобы выполнить развертывание с помощью zip-развертывания Kudu zip-отправки для службы приложений (веб-приложения).

az webapp deployment source config-zip --resource-group "<resource-group-name>" --name "<name-of-app-service>" --src "<project-zip-path>"
Вариант Описание
resource-group Имя группы ресурсов Azure, которая содержит бота.
name Имя службы приложений, которую вы использовали ранее.
src Абсолютный или относительный путь к созданному файлу проекта.

Совет

По умолчанию эта команда развертывается в рабочем слоте. Используйте необязательный --slot параметр, чтобы указать другой слот. Дополнительные сведения см. в справочнике по команде az webapp deployment source config-zip .

Тест в веб-чате

  1. В браузере перейдите на портал Azure.
  2. Перейдите к ресурсу бота.
  3. Откройте панель Test in Web Chat (Тестирование в веб-чате).
  4. Взаимодействуйте с развернутыми ботами.

Дополнительные сведения о регистрации бота см. в разделе "Регистрация бота с помощью Служба Bot".

Очистка ресурсов

Если вы не собираетесь публиковать это приложение, удалите связанные ресурсы, выполнив следующие действия.

  1. На портале Azure откройте группу ресурсов бота.
    1. Выберите "Удалить группу ресурсов", чтобы удалить группу и все содержащиеся в ней ресурсы.
    2. Введите имя группы ресурсов в области подтверждения, а затем нажмите кнопку "Удалить".
  2. Если вы создали однотенантное или мультитенантное приложение:
    1. Перейдите в колонку идентификатора Microsoft Entra ID.
    2. Найдите регистрацию приложения, используемую для бота, и удалите ее.

Дополнительные ресурсы

Дополнительные сведения о приложениях и ресурсах 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 по развертыванию файлов в Служба приложений.

Следующие шаги