Оқиға
AI бағдарламалары мен агенттерін құру
Mar 17, 9 PM - Mar 21, 10 AM
Нақты пайдалану жағдайлары негізінде масштабты ИСК шешімдерін құру үшін стипендиаттармен және сарапшылармен кездесу сериясына қосылыңыз.
Қазір тіркелуБұл браузерге бұдан былай қолдау көрсетілмейді.
Соңғы мүмкіндіктерді, қауіпсіздік жаңартуларын және техникалық қолдауды пайдалану үшін Microsoft Edge браузеріне жаңартыңыз.
Ескерім
Начиная с 1 июня 2024 г. только что созданные Служба приложений приложения могут создать уникальное имя узла по умолчанию, использующее соглашение <app-name>-<random-hash>.<region>.azurewebsites.net
об именовании. Существующие имена приложений остаются неизменными. Например:
myapp-ds27dh7271aah175.westus-01.azurewebsites.net
Дополнительные сведения см. в разделе "Уникальное имя узла по умолчанию" для ресурса Служба приложений.
При развертывании веб-приложения в Linux, мобильном серверном сервере или приложении API для приложение Azure службе можно использовать отдельный слот развертывания вместо рабочего слота по умолчанию. Этот подход доступен, если вы работаете на уровне плана "Стандартный", "Премиум" или "Изолированный" Служба приложений. Слоты развертывания представляют собой работающие приложения с собственными именами хостов. Элементы конфигурации и содержимое приложений можно переключать между двумя слотами развертывания, включая рабочий слот.
Развертывание приложения в непроизводном слоте имеет следующие преимущества:
Каждый уровень плана службы приложений поддерживает разное количество слотов развертывания. Дополнительная плата за использование слотов развертывания не взимается. Чтобы узнать, сколько слотов поддерживает уровень вашего приложения, см. Ограничения службы приложений.
Чтобы масштабировать приложение на другой уровень, убедитесь, что целевой уровень поддерживает количество слотов, которые ваше приложение уже использует. Например, если приложение имеет более пяти слотов, его нельзя масштабировать до уровня "Стандартный". Уровень "Стандартный" поддерживает только пять слотов развертывания.
В этом видео показано, как настроить промежуточные среды в службе приложение Azure.
Действия в видео также описаны в следующих разделах.
Чтобы включить несколько слотов развертывания, приложение должно быть ценовой категории Стандартный, Премиум или Изолированный.
На порталеAzure перейдите на страницу вашего приложения.
В левой области выберите "Добавить слоты>развертывания".>
Ескерім
Если приложение еще не в уровне "Стандартный", "Премиум" или "Изолированный", выберите "Обновить". Перейдите на вкладку "Масштаб " приложения, прежде чем продолжить.
В диалоговом окне Добавить слот присвойте слоту имя и выберите, следует ли клонировать конфигурацию приложения из другого слота развертывания. Чтобы продолжить, выберите Добавить.
Вы можете клонировать конфигурацию из любого существующего слота. При клонировании копируются такие параметры, как настройки приложения, строки подключения, языковые версии платформы, веб-сокеты, версия HTTP и разрядность платформы.
Ескерім
В настоящее время частная конечная точка не клонируется между слотами.
После ввода параметров нажмите кнопку "Закрыть ", чтобы закрыть диалоговое окно. Новый слот теперь отображается на странице Слоты развертывания. По умолчанию для нового слота % трафика установлено значение 0, при этом весь клиентский трафик направляется в производственный слот.
Выберите новый слот развертывания, чтобы открыть страницу ресурсов данного слота.
Страница управления для промежуточного слота ничем не отличается от страницы для любого приложения Службы приложений. Здесь вы можете изменить конфигурацию слота. Чтобы напомнить, что вы просматриваете слот развертывания, имя приложения отображается как <имя> приложения или< имя> слота. Тип приложения — Служба приложений (слот). Вы также можете увидеть слот как отдельное приложение в своей группе ресурсов с теми же обозначениями.
Выберите URL-адрес приложения на странице ресурсов слота. Слот развертывания имеет собственное имя хоста и также является действующим приложением. Чтобы ограничить общий доступ к слоту развертывания, см. Ограничения IP-адреса Службы приложений Azure.
Новый слот развертывания не имеет содержимого, даже если вы клонировали параметры из другого слота. Например, вы можете опубликовать в данном слоте с помощью Git. Вы можете выполнять развертывание в слот из другой ветви репозитория или даже из другого репозитория. Получение профиля публикации из службы приложение Azure может предоставить необходимые сведения для развертывания в слоте. Visual Studio может импортировать профиль для развертывания содержимого в слоте.
URL-адрес слота имеет формат http://sitename-slotname.azurewebsites.net
. Чтобы сохранить длину URL-адреса в пределах необходимых ограничений DNS, имя сайта усечено на 40 символов. Объединенное имя сайта и имя слота должно быть меньше 59 символов.
При переключении двух слотов Служба приложений выполняет следующие действия, чтобы обеспечить время простоя целевого слота:
Примените следующие настройки из целевого слота (например, производственного слота) ко всем экземплярам исходного слота:
При применении любого из параметров к исходному слоту изменение активирует все экземпляры в исходном слоте для перезапуска. Во время переключения с предварительной версией это действие отмечает конец первого этапа. Операция переключения приостановлена. Вы можете проверить правильность работы исходного слота с параметрами целевого слота.
Подождите, пока каждый экземпляр в исходном слоте завершит перезапуск. Если какой-либо экземпляр не перезапускается, операция подкачки отменяет все изменения в исходном слоте и останавливает операцию.
Если включен локальный кэш, инициируйте инициализацию локального кэша, отправив HTTP-запрос к корню приложения ("/") для каждого экземпляра исходного слота. Подождите, пока каждый экземпляр не вернет какой-либо ответ HTTP. Инициализация локального кэша вызывает повторный перезапуск каждого экземпляра.
Если автоматическое переключение включено с помощью настраиваемого прогрева, активируйте настраиваемое инициирование приложений в каждом экземпляре исходного слота.
Если applicationInitialization
не указан, инициируйте HTTP-запрос к корню приложения исходного слота для каждого экземпляра.
Если экземпляр возвращает какой-либо ответ HTTP, он считается прогретым.
Если все экземпляры в исходном слоте успешно прогреты, поменяйте местами два слота, переключив правила маршрутизации для этих двух слотов. После данного шага в целевом слоте (например, производственном слоте) есть приложение, которое ранее было нагрето в исходном слоте.
Теперь, когда в исходном слоте присутствует приложение предварительной замены, которое ранее находилось в целевом слоте, выполните ту же операцию, применив все настройки и перезапустив экземпляры.
В любой момент операции подкачки вся работа по инициализации переставленных приложений происходит в исходном слоте. Целевой слот остается в сети, пока исходный слот подготавливается и разогревается, независимо от того, успешно ли выполняется переключение или завершается сбоем. Чтобы заменить промежуточный слот рабочим, необходимо убедиться, что рабочий слот всегда является целевым. Таким образом, операция переключения не влияет на рабочее приложение.
Ескерім
Бывшие рабочие экземпляры переключаются на промежуточные после этой операции переключения. Эти экземпляры перезапускаются на последнем шаге процесса замены. Если у вас есть длительные операции в приложении, они отказались, когда рабочие процессы перезапустятся. Этот факт также относится к приложениям-функциям. Поэтому код приложения должен быть написан некорректным способом.
При клонировании конфигурации из другой области развертывания вы можете изменять клонированную конфигурацию. Некоторые элементы конфигурации следуют содержимому в переключении (а не в определенных слотах). Другие элементы конфигурации остаются в том же слоте после переключения (конкретного слота). Ниже приведен список параметров, которые изменяются при переключении слотов.
Переносимые параметры:
Функции, отмеченные звездочкой (*), в дальнейшем планируется сделать непереключаемыми.
Параметры, которые не переносятся:
Ескерім
Чтобы сделать параметры изменяемыми, добавьте параметр приложения WEBSITE_OVERRIDE_PRESERVE_DEFAULT_STICKY_SLOT_SETTINGS
в каждый слот приложения и задайте для него значение 0
или false
. Эти параметры либо все переключаемые, либо все непереключаемые. Нельзя сделать одни параметры переключаемыми, а другие — нет. Управляемые удостоверения никогда не переключаются. Этот параметр переопределения приложения не влияет на них.
Некоторые параметры приложения, применяемые к непереключаемым параметрам, также не переключаются. Например, так как параметры диагностики не переключаются, связанные параметры приложения, такие WEBSITE_HTTPLOGGING_RETENTION_DAYS
как и DIAGNOSTICS_AZUREBLOBRETENTIONDAYS
не переключаются, даже если они не отображаются в качестве параметров слота.
Чтобы настроить параметр приложения или строка подключения придерживаться определенного слота, который не переключился, перейдите на страницу "Переменная среды параметров>" для этого слота. Добавьте или измените параметр, после чего выберите параметр слота развертывания. При выборе этого параметра Служба приложений, что параметр не переключен.
Вы можете поменять местами слоты развертывания на странице приложения Слоты развертывания и на странице Обзор. Дополнительные сведения о переключении слотов см. в разделе "Что происходит во время переключения".
Маңызды
Перед тем, как переключить приложение из слота развертывания в производственное, убедитесь, что производственный слот является вашим целевым слотом и что все параметры в исходном слоте настроены точно так, как вы хотите, чтобы они были в производственном режиме.
Чтобы поменять местами слоты развертывания:
Перейдите на страницу приложения Слоты развертывания и выберите Обмен.
В диалоговом окне "Переключение" отображаются параметры в выбранных исходных и целевых слотах, которые необходимо изменить.
Выберите исходный и целевой слоты. В качестве целевого чаще всего используется рабочий слот. Также необходимо выбрать вкладки Исходные изменения и Целевые изменения и убедиться, что изменения конфигурации будут внесены. По завершении вы можете немедленно заменить слоты, нажав кнопку "Переключение".
Чтобы увидеть, как будет работать ваш целевой слот с новыми настройками до фактического обмена, не выбирайте Обмен, а следуйте инструкциям в разделе Обмен с предварительным просмотром.
По завершении нажмите кнопку "Закрыть ", чтобы закрыть диалоговое окно.
В случае возникновения проблем см. раздел Устранение неполадок подкачки.
Перед переключением в рабочее место в качестве целевого слота необходимо убедиться, что приложение работает с измененными настройками. Исходный слот также прогревается перед завершением свопа, что крайне желательно для работы критически важных приложений.
При выполнении обмена с предварительным просмотром, служба приложений выполняет ту же операцию обмена, но приостанавливает работу после первого шага. После этого вы можете проверить результат в промежуточном слоте до завершения обмена.
Если вы отмените обмен, служба приложений повторно применит элементы конфигурации к исходному слоту.
Ескерім
Переключение с предварительной версией нельзя использовать, если один из слотов включает проверку подлинности сайта.
Чтобы произвести обмен с предварительным просмотром:
Следуйте инструкциям в разделе Обмен слотов развертывания, но в данном случае выберите Выполнить обмен с предварительным просмотром.
В диалоговом окне показано, как изменяется конфигурация исходного слота на этапе 1 и как изменяется исходный и целевой слот на этапе 2.
Когда вы будете готовы начать обмен, выберите Начать обмен.
По завершении этапа 1 диалоговое окно уведомляет вас. Вы можете предварительно просмотреть результат обмена в исходном слоте, перейдя к https://<app_name>-<source-slot-name>.azurewebsites.net
.
Когда вы будете готовы завершить отложенный обмен, выберите Завершить обмен в разделе Действие обмена и выберите Завершить обмен.
Чтобы отменить ожидающий переключение, выберите "Отмена переключения " вместо этого и нажмите кнопку "Отмена переключения " в нижней части экрана.
По завершении нажмите кнопку "Закрыть ", чтобы закрыть диалоговое окно.
В случае возникновения проблем см. раздел Устранение неполадок подкачки.
Если в целевом слоте (обычно это рабочий слот) будут обнаружены ошибки после переключения слотов, немедленно восстановите прежнее (до переключения) состояние слотов, выполнив обратное переключение.
Ескерім
Автоматическое переключение не поддерживается в веб-приложениях на Linux и Веб-приложении для контейнеров.
Функция автоматического обмена упрощает сценарии Azure DevOps, в которых вы хотите непрерывно развертывать приложение с нулевым холодным запуском и нулевым временем простоя для клиентов приложения. Когда автоматический обмен включен из слота в рабочий, каждый раз, когда вы отправляете изменения кода в этот слот, служба приложений автоматически переводит приложение в рабочий слот после того, как оно нагревается в исходном слоте.
Ескерім
Перед настройкой автоматического переключения для рабочего слота рассмотрите возможность автоматического переключения в целевом слоте, отличном от производства.
Для настройки функции автоматического обмена:
Перейдите на страницу ресурсов вашего приложения. Выберите нужный исходный слот> для слотов<>развертывания развертывания.>
В левой области выберите >параметры конфигурации>"Общие параметры".
Для параметра Автоматическая замена включена выберите Включить. После этого выберите нужный целевой слот для слота развертывания с автоматической заменой и выберите Сохранить на панели команд.
Запустите отправку кода в исходный слот. Автоматическое переключение происходит через короткое время. Обновление отображается по URL-адресу целевого слота.
В случае возникновения проблем см. раздел Устранение неполадок подкачки.
Некоторым приложениям перед обменом могут потребоваться специальные действия для прогрева. Элемент applicationInitialization
конфигурации в web.config позволяет указать пользовательские действия инициализации. Операция обмена ожидает завершения настраиваемой процедуры прогрева перед заменой на целевой слот. Ниже приведен пример фрагмента конфигурации web.config .
<system.webServer>
<applicationInitialization>
<add initializationPage="/" hostName="[app hostname]" />
<add initializationPage="/Home/About" hostName="[app hostname]" />
</applicationInitialization>
</system.webServer>
Дополнительные сведения о настройке элемента applicationInitialization
см. в записи блога о распространенных сбоях переключения слота развертывания и способах их устранения.
Вы также можете настроить поведение прогрева с помощью следующих параметров приложения:
WEBSITE_SWAP_WARMUP_PING_PATH
: путь к пингу по HTTP для прогрева вашего сайта. Добавьте этот параметр приложения, указав настраиваемый путь, который начинается с косой черты в качестве значения. Например, /statuscheck
. Значение по умолчанию — /
.WEBSITE_SWAP_WARMUP_PING_STATUSES
: действительные коды ответа HTTP для операции прогрева. Добавьте этот параметр приложения со списком кодов HTTP, разделенным запятыми. Например, 200,202
. Если возвращенного кода состояния нет в списке, операции прогрева и обмена останавливаются. По умолчанию все коды ответов являются допустимыми.WEBSITE_WARMUP_PATH
: относительный путь на сайте, который следует проверять при каждом перезапуске сайта (не только во время смены слотов). Примеры значений включают /statuscheck
или корневой путь, /
.Ескерім
Элемент <applicationInitialization>
конфигурации является частью каждого запуска приложения, в то время как параметры приложения прогрева применяются только к переключениям слотов.
В случае возникновения проблем см. раздел Устранение неполадок подкачки.
Если операция обмена занимает много времени, вы можете получить информацию об операции обмена в журнале активности.
На странице ресурсов вашего приложения на портале на левой панели выберите Журнал активности.
Операция переключения отображается в запросах журнала в виде Swap Web App Slots
. Вы можете развернуть этот элемент и выбрать вложенные операции или ошибки, чтобы увидеть подробные сведения о них.
По умолчанию все клиентские запросы, поступающие на URL-адрес приложения (http://<app_name>.azurewebsites.net
), направляются в рабочий слот. Вы можете перенаправить часть этого трафика в другой слот. Это очень удобно, когда вам нужно собрать отзывы пользователей о новой версии, но вы пока не готовы публиковать ее в рабочей среде.
Для автоматической маршрутизации производственного трафика:
Перейдите на страницу ресурсов веб-приложения и выберите слоты развертывания.
В столбце Процент трафика для слота, в который нужно направить часть трафика, укажите значение в процентах (от 0 до 100) от общего объема распределяемого трафика. Выберите Сохранить.
После сохранения параметра указанный процент клиентов случайным образом направляется в непроизводный слот.
После автоматического перенаправления клиента в определенный слот он закрепляется в этом слоте в течение одного часа или пока файлы cookie не будут удалены. Вы можете проверить, к какому слоту прикреплен клиент, просмотрев значение параметра cookie x-ms-routing-name
в заголовках HTTP средствами браузера. Запрос, который направляется в промежуточный слот, содержит файл cookiex-ms-routing-name=staging
. Если запросы направляются в рабочий слот, этот параметр имеет значение x-ms-routing-name=self
.
Кроме автоматической маршрутизации трафика, Служба приложений поддерживает направление запросов в конкретные слоты. Этот параметр полезен, если вы хотите, чтобы пользователи могли принять участие или отказаться от использования бета-приложения. Для маршрутизации рабочего трафика вручную применяется параметр запроса x-ms-routing-name
.
Например, чтобы позволить пользователям отказаться от вашего бета-приложения, вы можете разместить эту ссылку на своей веб-странице:
<a href="<webappname>.azurewebsites.net/?x-ms-routing-name=self">Go back to production app</a>
Строка x-ms-routing-name=self
определяет рабочий слот. После того, как клиентский браузер получает доступ к ссылке, она перенаправляется в рабочий слот. Каждый последующий запрос содержит файл cookie x-ms-routing-name=self
, который прикрепляет сеанс к производственному слоту.
Чтобы разрешить пользователям входить в бета-приложение, задайте тот же параметр запроса именем непроизводного слота. Приведем пример:
<webappname>.azurewebsites.net/?x-ms-routing-name=staging
По умолчанию новые слоты получают правило маршрутизации 0%
, выделенное серым цветом. Если вы явным образом установите для данного значения значение 0%
(выделено черным текстом), ваши пользователи смогут получить доступ к промежуточному слоту вручную при помощи параметра запроса x-ms-routing-name
. Они не будут перенаправлены в слот автоматически, так как процент маршрутизации имеет значение 0. Эта конфигурация — это расширенный сценарий, в котором можно скрыть промежуточный слот от общественности, позволяя внутренним командам тестировать изменения в слоте.
Найдите и выберите свое приложение. Выберите слот слотов<>развертывания>развертывания, чтобы удалить обзор.>> Тип приложения отображается как Служба приложений (слот) для напоминания того, что вы просматриваете слот развертывания. Перед удалением слота обязательно остановите слот и установите трафик в слоте равным нулю. Выберите Удалить на панели команд.
Шаблоны Azure Resource Manager представляют собой декларативные файлы JSON, используемые для автоматизации развертывания и настройки ресурсов Azure. Чтобы заменить слоты с помощью шаблонов Resource Manager, необходимо задать два свойства в ресурсах Microsoft.Web/sites/sites и Microsoft.Web/sites :
buildVersion
: строковое свойство, представляющее текущую версию приложения, развернутого в слоте. Например, v1
, 1.0.0.1
или 2019-09-20T11:53:25.2887393-07:00
.targetBuildVersion
: строковое свойство, указывающее, что buildVersion
должно иметь слот. Если текущий targetBuildVersion
параметр не равен текущему buildVersion
, он активирует операцию переключения, найдя слот с указанным buildVersion
.Следующий шаблон Resource Manager переключает два слотаstaging
, обновив buildVersion
слот и задав targetBuildVersion
рабочий слот. У вас должен быть слот staging
.
{
"$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"my_site_name": {
"defaultValue": "SwapAPIDemo",
"type": "String"
},
"sites_buildVersion": {
"defaultValue": "v1",
"type": "String"
}
},
"resources": [
{
"type": "Microsoft.Web/sites/slots",
"apiVersion": "2018-02-01",
"name": "[concat(parameters('my_site_name'), '/staging')]",
"location": "East US",
"kind": "app",
"properties": {
"buildVersion": "[parameters('sites_buildVersion')]"
}
},
{
"type": "Microsoft.Web/sites",
"apiVersion": "2018-02-01",
"name": "[parameters('my_site_name')]",
"location": "East US",
"kind": "app",
"dependsOn": [
"[resourceId('Microsoft.Web/sites/slots', parameters('my_site_name'), 'staging')]"
],
"properties": {
"targetBuildVersion": "[parameters('sites_buildVersion')]"
}
}
]
}
Этот шаблон Resource Manager является идемпотентным. Вы можете многократно запускать его и создавать одно и то же состояние слотов. Без каких-либо изменений в шаблоне последующие запуски одного и того же шаблона не активируют переключение слотов, так как слоты уже находятся в нужном состоянии.
Если во время переключения слота возникает ошибка, в D:\home\LogFiles\eventlog.xml. Ошибка также регистрируется в журнале ошибок конкретного приложения.
Ниже приведены несколько распространенных ошибок в процессе обмена:
HTTP-запрос к корню приложения рассчитан по времени. Операция переключения ожидает 90 секунд для каждого HTTP-запроса и повторяется до пяти раз. Если время всех повторных попыток истекло, операция обмена останавливается.
Инициализация локального кэша может завершиться ошибкой, если содержимое приложения превышает квоту локального диска, указанную для локального кэша. Для получения дополнительной информации см. Обзор локального кэша.
Во время операции обновления сайта следующая ошибка может произойти , так как ее параметры конфигурации были подготовлены для переключения. Эта ошибка может возникать, если переключение с предварительной версией (многоэтапный переключение) 1 завершается, но этап 2 еще не выполнен. Это также может произойти, если сбой переключения. Устранить эту проблему можно двумя способами:
Чтобы узнать, как отменить или завершить операцию переключения, см. раздел "Переключение с предварительной версией" (многофазное переключение).
Во время настраиваемого прогрева HTTP-запросы выполняются внутренне без прохождения внешнего URL-адреса. Они могут завершиться ошибкой при определенных правилах перезаписи URL в Web.config. К примеру, правила перенаправления доменных имен или принудительного применения HTTPS могут препятствовать тому, чтобы запросы на прогрев доходили до кода приложения. Для обхода данной проблемы необходимо изменить правила перезаписи, добавив следующие два условия:
<conditions>
<add input="{WARMUP_REQUEST}" pattern="1" negate="true" />
<add input="{REMOTE_ADDR}" pattern="^100?\." negate="true" />
...
</conditions>
Без пользовательской процедуры прогрева правила перезаписи URL все равно могут блокировать HTTP-запросы. Для обхода данной проблемы необходимо изменить правила перезаписи, добавив следующее условие:
<conditions>
<add input="{REMOTE_ADDR}" pattern="^100?\." negate="true" />
...
</conditions>
После переключения слотов приложение может столкнуться с непредвиденными перезапусками. Перезапуск происходит, так как после переключения конфигурация привязки имени узла выходит из синхронизации. Эта ситуация сама по себе не приводит к перезапускам. Однако некоторые базовые события хранения, такие как отработка отказа тома хранилища, могут обнаружить эти несоответствия и принудительно перезапустить все рабочие процессы. Чтобы свести к минимуму такие типы перезапусков, установите WEBSITE_ADD_SITENAME_BINDINGS_IN_APPHOST_CONFIG=1
настройку приложения на все слоты. Однако этот параметр приложения не работает с приложениями Windows Communication Foundation (WCF).
Оқиға
AI бағдарламалары мен агенттерін құру
Mar 17, 9 PM - Mar 21, 10 AM
Нақты пайдалану жағдайлары негізінде масштабты ИСК шешімдерін құру үшін стипендиаттармен және сарапшылармен кездесу сериясына қосылыңыз.
Қазір тіркелуОқыту
Модуль
Azure-app Service-implementatiesites verkennen - Training
In deze module leert u hoe sleufwisseling werkt en hoe u een swap uitvoert. U leert ook hoe u verkeer handmatig en automatisch naar verschillende sites routeert.