Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
В этой статье приведены практические шаги по включению и настройке сайдкаров в вашем приложении App Service.
Создание сайдкара в портале Azure
- Перейдите к ресурсу службы приложений на портале Azure.
- Выберите Центр развертывания и перейдите на вкладку "Контейнеры ".
- Нажмите "Добавить контейнер", чтобы добавить sidecar.
- Укажите имя образа, проверку подлинности реестра (при необходимости) и переменные среды.
- Сохраните ваши изменения. Сайдкар будет развернут вместе с основным контейнером приложения.
Включить поддержку сайдкар для пользовательских контейнеров Linux
Для пользовательского контейнера необходимо явно включить поддержку сайдкаров. На портале можно выбрать мастер создания службы приложений. Вы также можете включить его для существующего приложения на странице Центра развертывания>, как показано на следующем снимке экрана.
С помощью Azure CLI преобразуйте веб-приложение для использования конфигурации sitecontainers . Рассмотрим пример.
az webapp sitecontainers convert --mode sitecontainers --name <YourWebAppName> --resource-group <YourResourceGroup>
Это обновляет LinuxFxVersionsitecontainers и включает поддержку шаблона бокового автомобиля.
Возврат к классическому пользовательскому контейнеру (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.Web sites/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 Cache for Redis.
Чтобы использовать сайдкар Redis, выполните:
- В коде приложения задайте для строки подключения Redis значение
localhost:6379. - Настройте Redis в коде запуска приложения.
- Используйте шаблоны кэширования для хранения и извлечения данных.
- Проверьте, получите доступ к приложению и проверьте журналы, чтобы подтвердить использование кэша.
Добавьте дополнение sidecar для Datadog
На портале Azure можно добавить расширение Datadog в виде вспомогательного модуля для сбора журналов, метрик и трассировок для наблюдения без изменения кода вашего приложения. При добавлении расширения необходимо указать данные учетной записи Datadog, чтобы расширение-сайдкар могло передавать телеметрию непосредственно в Datadog.
Для приложений на основе кода:
startup.shСоздайте скрипт для скачивания и инициализации трассировщика Datadog. Следующий скрипт является примером для приложения .NET:#!/bin/bash # Create log directory. This should correspond to the "Datadog Trace Log Directory" extension setting mkdir -p /home/LogFiles/dotnet # Download the Datadog tracer tarball wget -O /datadog/tracer/datadog-dotnet-apm-2.49.0.tar.gz https://github.com/DataDog/dd-trace-dotnet/releases/download/v2.49.0/datadog-dotnet-apm-2.49.0.tar.gz # Navigate to the tracer directory, extract the tarball, and return to the original directory mkdir -p /datadog/tracer pushd /datadog/tracer tar -zxf datadog-dotnet-apm-2.49.0.tar.gz popd dotnet /home/site/wwwroot/<yourapp>.dllЗадайте команду запуска в Службе приложений, чтобы запустить этот скрипт.
Запустите приложение и убедитесь, что данные телеметрии отправлены, войдите на панель мониторинга Datadog.
Для приложений на основе контейнеров:
** Перед добавлением расширения «сайдкар» Datadog добавьте настройку трейсера Datadog в Dockerfile, аналогично примеру скрипта для приложений, основанных на коде.
Добавьте расширение сайдкар 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 не может использовать монтирование томов.