Создание пользовательской проверки для шлюза приложений (классического) Azure с помощью PowerShell

Следуя инструкциям этой статьи вы добавите пользовательскую пробу в имеющийся шлюз приложений с помощью PowerShell. Пользовательские пробы полезны в приложениях с конкретной страницей проверки работоспособности или приложениях, не предоставляющих успешный ответ веб-приложению по умолчанию.

Важно!

В Azure предлагаются две модели развертывания для создания ресурсов и работы с ними: модель Resource Manager и классическая модель. В этой статье рассматривается использование классической модели развертывания. Для большинства новых развертываний Майкрософт рекомендует использовать модель диспетчера ресурсов. Узнайте, как выполнить эти действия с помощью модели Resource Manager.

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

Для выполнения действий, описанных в этой статье, требуется установить и настроить модуль Azure PowerShell. Обязательно выполните все инструкции. По завершении установки войдите в Azure и выберите свою подписку.

Примечание.

Для выполнения этих инструкций требуется учетная запись Azure. Если у вас нет учетной записи Azure, вы можете зарегистрироваться и получить бесплатную пробную версию.

Создание Шлюза приложений

Создание шлюза приложений:

  1. Создание ресурса шлюза приложений.
  2. Создайте XML-файл конфигурации или объект конфигурации.
  3. Применить конфигурацию к созданному ресурсу шлюза приложений.

Создание ресурса шлюза приложений с пользовательской пробой

Для создания шлюза используйте командлет New-AzureApplicationGateway, подставив в него свои значения. Выставление счетов для шлюза не начинается на этом этапе. а позднее, после успешного запуска шлюза.

В следующем примере создается шлюз приложений с использованием виртуальной сети testvnet1 и подсети subnet-1.

New-AzureApplicationGateway -Name AppGwTest -VnetName testvnet1 -Subnets @("Subnet-1")

Чтобы проверить создание шлюза, используйте командлет Get-AzureApplicationGateway.

Get-AzureApplicationGateway AppGwTest

Примечание.

Значение параметра InstanceCount по умолчанию — 2 (максимальное значение — 10). Значение GatewaySize (Размер шлюза) по умолчанию — Medium (Средний). Можно выбрать значения Small, Medium или Large.

Параметры VirtualIPs и DnsName отображаются без значений, так как шлюз еще не запущен. Эти значения будут определены после запуска шлюза.

Настройка шлюза приложений с помощью XML-файла

В следующем примере все параметры шлюза приложений настраиваются и применяются к ресурсу шлюза приложений при помощи XML-файла.

Скопируйте следующий текст в Блокнот.

<ApplicationGatewayConfiguration xmlns:i="https://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.microsoft.com/windowsazure">
<FrontendIPConfigurations>
    <FrontendIPConfiguration>
        <Name>fip1</Name>
        <Type>Private</Type>
    </FrontendIPConfiguration>
</FrontendIPConfigurations>
<FrontendPorts>
    <FrontendPort>
        <Name>port1</Name>
        <Port>80</Port>
    </FrontendPort>
</FrontendPorts>
<Probes>
    <Probe>
        <Name>Probe01</Name>
        <Protocol>Http</Protocol>
        <Host>contoso.com</Host>
        <Path>/path/custompath.htm</Path>
        <Interval>15</Interval>
        <Timeout>15</Timeout>
        <UnhealthyThreshold>5</UnhealthyThreshold>
    </Probe>
    </Probes>
    <BackendAddressPools>
    <BackendAddressPool>
        <Name>pool1</Name>
        <IPAddresses>
            <IPAddress>1.1.1.1</IPAddress>
            <IPAddress>2.2.2.2</IPAddress>
        </IPAddresses>
    </BackendAddressPool>
</BackendAddressPools>
<BackendHttpSettingsList>
    <BackendHttpSettings>
        <Name>setting1</Name>
        <Port>80</Port>
        <Protocol>Http</Protocol>
        <CookieBasedAffinity>Enabled</CookieBasedAffinity>
        <RequestTimeout>120</RequestTimeout>
        <Probe>Probe01</Probe>
    </BackendHttpSettings>
</BackendHttpSettingsList>
<HttpListeners>
    <HttpListener>
        <Name>listener1</Name>
        <FrontendIP>fip1</FrontendIP>
    <FrontendPort>port1</FrontendPort>
        <Protocol>Http</Protocol>
    </HttpListener>
</HttpListeners>
<HttpLoadBalancingRules>
    <HttpLoadBalancingRule>
        <Name>lbrule1</Name>
        <Type>basic</Type>
        <BackendHttpSettings>setting1</BackendHttpSettings>
        <Listener>listener1</Listener>
        <BackendAddressPool>pool1</BackendAddressPool>
    </HttpLoadBalancingRule>
</HttpLoadBalancingRules>
</ApplicationGatewayConfiguration>

Измените значения в скобках для элементов конфигурации. Сохраните файл с расширением XML.

В следующем примере показано, как использовать файл конфигурации для настройки шлюза приложений для балансировки трафика HTTP на общедоступном порту 80 и отправки сетевого трафика на внутренний порт 80 между двумя IP-адресами с помощью пользовательской пробы.

Важно!

В элементе протокола HTTP или HTTPS учитывается регистр.

Новый элемент конфигурации <Probe> добавляется для настройки пользовательских проверок работоспособности.

Используются следующие параметры конфигурации:

Параметр Описание:
Название Имя пользовательской пробы.
Протокол Используемый протокол (возможные значения: HTTP или HTTPS).
Host и Path Полный путь URL-адреса, который вызывается шлюзом приложений для определения работоспособности экземпляра. Например, если у вас есть веб-сайтhttp://contoso.com/, настраиваемая проба может быть настроена для "http://contoso.com/path/custompath.htm" для проверка пробы для успешного http-ответа.
Интервал Задает интервал между пробами в секундах.
Время ожидания Определяет время ожидания для проверки ответа HTTP.
UnhealthyThreshold Количество неудачных HTTP-ответов, необходимых для флага внутреннего экземпляра как неработоспособного.

Имя пробы ссылается в <конфигурации BackendHttp Параметры>, чтобы назначить, какой серверный пул использует настраиваемые параметры пробы.

Добавление пользовательской пробы в имеющийся шлюз приложений

Изменение текущей конфигурации шлюза приложений состоит из трех шагов: получение XML-файла конфигурации, внесение изменений для пользовательской проверки и настройка шлюза приложений с использованием новых параметров XML.

  1. Получите XML-файл с помощью командлета Get-AzureApplicationGatewayConfig. Он экспортирует XML-файл конфигурации, который нужно изменить, чтобы добавить параметры пробы.

    Get-AzureApplicationGatewayConfig -Name "<application gateway name>" -Exporttofile "<path to file>"
    
  2. Откройте XML-файл в текстовом редакторе. Добавьте раздел <probe> после <frontendport>.

    <Probes>
     <Probe>
         <Name>Probe01</Name>
         <Protocol>Http</Protocol>
         <Host>contoso.com</Host>
         <Path>/path/custompath.htm</Path>
         <Interval>15</Interval>
         <Timeout>15</Timeout>
         <UnhealthyThreshold>5</UnhealthyThreshold>
     </Probe>
    </Probes>
    

    В разделе backendHttpSettings XML-файла добавьте имя пробы, как показано в следующем примере.

     <BackendHttpSettings>
         <Name>setting1</Name>
         <Port>80</Port>
         <Protocol>Http</Protocol>
         <CookieBasedAffinity>Enabled</CookieBasedAffinity>
         <RequestTimeout>120</RequestTimeout>
         <Probe>Probe01</Probe>
     </BackendHttpSettings>
    

    Сохраните XML-файл.

  3. Обновите конфигурацию шлюза приложения с помощью нового XML-файла, используя командлет Set-AzureApplicationGatewayConfig. Он обновит шлюз приложений с учетом новой конфигурации.

Set-AzureApplicationGatewayConfig -Name "<application gateway name>" -Configfile "<path to file>"

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

Если вы хотите настроить протокол TLS (ранее он назывался протоколом SSL), см. статью Создание шлюза приложений для завершения TLS-запросов с помощью Azure PowerShell.

Указания по настройке шлюза приложений для использования с внутренним балансировщиком нагрузки см. в статье Создание шлюза приложений с внутренней подсистемой балансировщика нагрузки (ILB).