Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
В этой статье приведены практические шаги по включению и настройке сайдкаров в вашем приложении App Service.
Это важно
Поскольку сайдкары используют то же сетевое пространство имен и среду, что и ваше основное приложение, запускайте только проверенный код и образы контейнеров в качестве сайдкаров.
Создание сайдкара на портале Azure
- Перейдите к ресурсу службы приложений на портале Azure.
- Выберите Центр развертывания и перейдите на вкладку "Контейнеры ".
- Нажмите "Добавить контейнер", чтобы добавить sidecar.
- Укажите имя образа, проверку подлинности реестра (при необходимости) и переменные среды.
- Сохраните ваши изменения. Сайдкар будет развернут вместе с основным контейнером приложения.
Включить поддержку сайдкар для пользовательских контейнеров Linux
Для пользовательского контейнера необходимо явно включить поддержку сайдкаров. На портале можно выбрать мастер создания службы приложений. Вы также можете включить его для существующего приложения на странице Центра развертывания>, как показано на следующем снимке экрана.
С помощью Azure CLI преобразуйте веб-приложение в конфигурацию sitecontainers. Рассмотрим пример.
az webapp sitecontainers convert --mode sitecontainers --name <YourWebAppName> --resource-group <YourResourceGroup>
Это обновляет LinuxFxVersion на sitecontainers и включает поддержку шаблона сайдкара.
Вернуться к классическому настраиваемому контейнеру (Docker)
Если вам нужно вернуться с конфигурации с поддержкой сайдкаров на классическую настройку на основе Docker, выполните следующую команду.
az webapp sitecontainers convert \
--mode docker \
--name <app-name> \
--resource-group <resource-group>
Эта команда удаляет все сайдкар-контейнеры и возвращает ваше приложение к использованию конфигурации классического DOCKER|<image> стиля. Полные сведения см. в документации Azure CLI для az webapp sitecontainers convert.
Для получения дополнительной информации см. Какие различия у пользовательских контейнеров с поддержкой sidecar?
Каковы различия для пользовательских контейнеров с поддержкой бокового автомобиля?
Приложения с поддержкой сайдкара настраиваются иначе, чем приложения без поддержки сайдкара.
- Приложения с функцией
LinuxFxVersion=sitecontainersSidecar назначаются и конфигурируются с помощью ресурсовsitecontainers. - Приложения, которые не поддерживают функцию sidecar, настраивают имя и тип контейнера напрямую с помощью
LinuxFxVersion=DOCKER|<image-details>.
Дополнительные сведения см. в az webapp config set --linux-fx-version.
Приложения, которые не поддерживают функцию сайдкар, настраивают основной контейнер с помощью параметров приложения, таких как:
DOCKER_REGISTRY_SERVER_URLDOCKER_REGISTRY_SERVER_USERNAMEDOCKER_REGISTRY_SERVER_PASSWORDWEBSITES_PORT
Эти параметры не применяются для приложений с поддержкой сайдкаров.
Определение боковой кареты с помощью шаблона ARM
Добавьте тип ресурса Microsoft.Web/sites/sitecontainers в приложение. Чтобы извлечь образ сайдкара из ACR с помощью управляемого удостоверения, назначенного пользователем, укажите authType как UserAssigned и предоставьте userManagedIdentityClientId.
{
"type": "Microsoft.Web/sites/sitecontainers",
"apiVersion": "2024-04-01",
"name": "<app-name>/<sidecar-name>",
"properties": {
"image": "<acr-name>.azurecr.io/<image-name>:<version>",
"isMain": false,
"authType": "UserAssigned",
"userManagedIdentityClientId": "<client-id>",
"environmentVariables": [
{ "name": "MY_ENV_VAR", "value": "my-value" }
]
}
}
Это важно
Только основной контейнер ("isMain": true) получает внешний трафик. В пользовательском приложении контейнера Linux с включенной поддержкой сайдкаров ваш основной контейнер имеет isMain, установленный на true. Все сайдкар-контейнеры должны иметь "isMain": false.
Дополнительные сведения см. в разделе Microsoft. Веб-сайты/sitecontainers.
Создание боковой кареты с помощью Azure CLI
Создайте приложение с поддержкой контейнерного сайдкара командой az webapp create. Рассмотрим пример.
az webapp create --name <app-name> --resource-group <group-name> --sitecontainers-app
Создайте контейнер бокового автомобиля с помощью az webapp sitecontainers create. Рассмотрим пример.
az webapp sitecontainers create --name <app-name> --resource-group <group-name> --container-name <container> --image <image> --target-port <port>
Создайте контейнер-сайдкар с JSON-файлом:
az webapp sitecontainers create --name <app-name> --resource-group <group-name> --sitecontainers-spec-file <file-path>
Для всех команд sidecar см. az webapp sitecontainers.
Настройка переменных среды
В приложении Linux все контейнеры (основные и побочные) поддерживают общие переменные среды. Чтобы переопределить определенную переменную для сайдкара, добавьте ее в конфигурацию сайдкара.
- В шаблонах ARM используйте
environmentVariablesмассив в свойствах сайдкара. - На портале добавьте переменные среды в пользовательский интерфейс конфигурации контейнера.
- Переменные среды могут ссылаться на параметры приложения по имени; значение будет определено во время выполнения.
Добавьте расширение сайдкар Redis
На портале Azure вы можете добавить дополнительный модуль Redis в ваше приложение для кэширования. Боковой автомобиль Redis предназначен только для упрощенного кэширования, а не замены для Azure Managed Redis.
Чтобы использовать сайдкар Redis, выполните:
- В коде приложения задайте для redis строка подключения значение
localhost:6379. - Настройте Redis в коде запуска приложения.
- Используйте шаблоны кэширования для хранения и извлечения данных.
- Проверьте, получите доступ к приложению и проверьте журналы, чтобы подтвердить использование кэша.
Добавьте расширение сайдкар Phi-3/Phi-4
На портале Azure вы можете добавить сайдкар-расширение Phi-3 или Phi-4 к своему приложению, чтобы предоставить локальную инферентную модель для рабочих нагрузок ИИ. Приложение должно находиться в ценовой категории, поддерживающей потребности вывода. Для неподдерживаемых уровней поддержки вы не видите опции дополнительных модулей Phi-3/Phi-4.
- Сайдкар Phi-3/Phi-4 предоставляет доступ к API завершения чата в http://localhost:11434/v1/chat/completions.
- После добавления бокового автомобиля начальный запуск может быть медленным из-за загрузки модели.
- Чтобы вызвать API, отправьте запросы POST в эту конечную точку в том же стиле API завершения чата OpenAPI.
Полные пошаговые руководства см:
- Руководство: Запуск чат-бота в службе приложений с расширением сайдкар Phi-4 (ASP.NET Core)
- Руководство: Запуск чат-бота в службе приложений с сайдкаровым расширением Phi-4 (Spring Boot)
- Руководство: Запуск чат-бота на платформе приложений с расширением Phi-4 в виде модуля-дополнения (FastAPI)
- Руководство по запуску чат-бота в приложении App Service с дополнением сайдкар Phi-4 (Express.js)
Доступ к боковику из основного контейнера или с другого бокового контейнера
Сайдкар контейнеры используют тот же сетевой хост, что и основной контейнер. Основной контейнер и другие побочные контейнеры могут достичь любого порта на побочном контейнере с использованием localhost:<port>. Например, если сайдкар прослушивает порт 4318, основное приложение может получить доступ к localhost:4318.
Поле "Порт" на портале является метаданными только и не используется службой приложений для маршрутизации.
Добавить монтирование томов
По умолчанию том /home подключен ко всем контейнерам, если его не отключить. Вы можете настроить дополнительные подключения томов для боковой кареты.
Монтирование томов позволяет использовать совместно непостоянные файлы и каталоги между контейнерами в вашем веб-приложении.
- Вложенный путь тома: Логический путь к каталогу, созданный службой приложений. Контейнеры с тем же подкаталогом разделяют файлы.
- Путь монтирования контейнера: Путь к каталогу внутри контейнера, сопоставленный с подпутем тома.
Пример конфигурации:
| Имя сайдкара | Вложенный путь тома | Путь монтирования контейнера | Только для чтения |
|---|---|---|---|
| Контейнер1 | /directory1/directory2 | /container1Vol | Неправда |
| Контейнер2 | /directory1/directory2 | /container2Vol | Верно |
| Контейнер3 | /directory1/directory2/directory3 | /container3Vol | Неправда |
| Контейнер4 | /directory4 | /container1Vol | Неправда |
- Если контейнер1 создает
/container1Vol/myfile.txt, Контейнер2 может считывать его с помощью/container2Vol/myfile.txt. - Если Контейнер1 создает
/container1Vol/directory3/myfile.txt, Контейнер2 может считывать его с помощью/container2Vol/directory3/myfile.txt, а Контейнер3 может читать и записывать с помощью/container3Vol/myfile.txt. - Контейнер4 не предоставляет общий доступ к тому другим пользователям.
Замечание
Для приложений Linux, основанных на коде, встроенный контейнер Linux не может использовать монтирование томов.
Дополнительные ресурсы
- Общие сведения о сайдкарах
- Перенос приложений Docker Compose в сайдкары в Служба приложений Azure
Microsoft Q& A for Служба приложений Azure