Partilhar via


Criar uma sonda personalizada para o Gateway de Aplicativo do Azure (clássico) usando o PowerShell

Neste artigo, você adiciona uma sonda personalizada a um gateway de aplicativo existente com o PowerShell. As sondas personalizadas são úteis para aplicativos que têm uma página de verificação de integridade específica ou para aplicativos que não fornecem uma resposta bem-sucedida no aplicativo Web padrão.

Importante

O Azure tem dois modelos de implantação diferentes para criar e trabalhar com recursos: Resource Manager e Classic. Este artigo aborda o uso do modelo de implantação Clássico. A Microsoft recomenda que as implementações mais novas utilizem o modelo Resource Manager. Saiba como executar estes passos com o modelo do Resource Manager.

Pré-requisito: instalar o módulo Azure PowerShell

Para efetuar os passos neste artigo, terá de instalar e configurar o módulo Azure PowerShell. Certifique-se de que conclui todas as instruções. Após a conclusão da instalação, inicie sessão no Azure e selecione a sua subscrição.

Nota

Precisa de uma conta do Azure para efetuar estes passos. Se não tiver uma conta do Azure, pode inscrever-se para obter uma avaliação gratuita.

Criar um gateway de aplicação

Para criar um gateway de aplicação:

  1. Crie um recurso do gateway de aplicação.
  2. Crie um ficheiro XML de configuração ou um objeto de configuração.
  3. Confirme a configuração para o recurso de gateway de aplicação criado recentemente.

Criar um recurso de gateway de aplicativo com uma sonda personalizada

Para criar o gateway, utilize o cmdlet New-AzureApplicationGateway, substituindo os valores pelos seus próprios valores. A cobrança do gateway não começa neste momento. A faturação passará a ser contabilizada num passo posterior, quando o gateway tiver sido iniciado com êxito.

O exemplo que se segue cria um gateway de aplicação com uma rede virtual denominada “testvnet1” e uma sub-rede denominada “subnet-1”.

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

Para validar a criação do gateway, pode utilizar o cmdlet Get-AzureApplicationGateway.

Get-AzureApplicationGateway AppGwTest

Nota

O valor predefinido para InstanceCount é 2, com um valor máximo de 10. O valor predefinido para GatewaySize é Médio. Você pode escolher entre Pequeno, Médio e Grande.

VirtualIPs e DnsName são apresentados em branco, porque o gateway ainda não foi iniciado. Esses valores são criados quando o gateway está no estado de execução.

Configurar um gateway de aplicativo usando XML

No exemplo que se segue, vai utilizar um ficheiro XML para configurar todas as definições do gateway de aplicação e consolidá-las no recurso do gateway de aplicação.

Copie o seguinte texto para o Bloco de Notas.

<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>

Edite os valores entre parêntesis dos itens de configuração. Guarde o ficheiro com a extensão .xml.

O exemplo a seguir mostra como usar um arquivo de configuração para configurar o gateway de aplicativo para balancear a carga do tráfego HTTP na porta pública 80 e enviar tráfego de rede para a porta de back-end 80 entre dois endereços IP usando uma sonda personalizada.

Importante

O item do protocolo Http ou Https é sensível às maiúsculas e minúsculas.

Um novo teste de item <> de configuração é adicionado para configurar testes personalizados.

Os parâmetros de configuração são:

Parâmetro Description
Nome Nome de referência para sonda personalizada.
Protocolo Protocolo utilizado (os valores possíveis são HTTP ou HTTPS).
Host e caminho Caminho de URL completo que é invocado pelo gateway de aplicativo para determinar a integridade da instância. Por exemplo, se você tiver um site http://contoso.com/, a sonda personalizada pode ser configurada para "http://contoso.com/path/custompath.htm" para que as verificações de teste tenham uma resposta HTTP bem-sucedida.
Intervalo Configura as verificações de intervalo de teste em segundos.
Tempo limite Define o tempo limite de teste para uma verificação de resposta HTTP.
UnhealthyThreshold O número de respostas HTTP com falha necessárias para sinalizar a instância de back-end como não íntegra.

O nome da sonda é referenciado <na configuração BackendHttpSettings> para atribuir qual pool de back-end usa configurações de teste personalizadas.

Adicionar uma sonda personalizada a um gateway de aplicativo existente

Alterar a configuração atual de um gateway de aplicativo requer três etapas: Obter o arquivo de configuração XML atual, modificar para ter uma sonda personalizada e configurar o gateway de aplicativo com as novas configurações XML.

  1. Obtenha o arquivo XML usando Get-AzureApplicationGatewayConfigo . Este cmdlet exporta o XML de configuração a ser modificado para adicionar uma configuração de teste.

    Get-AzureApplicationGatewayConfig -Name "<application gateway name>" -Exporttofile "<path to file>"
    
  2. Abra o arquivo XML em um editor de texto. Adicione uma secção depois de <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>
    

    Na seção backendHttpSettings do XML, adicione o nome da sonda conforme mostrado no exemplo a seguir:

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

    Salve o arquivo XML.

  3. Atualize a configuração do gateway de aplicativo com o novo arquivo XML usando Set-AzureApplicationGatewayConfigo . Este cmdlet atualiza seu gateway de aplicativo com a nova configuração.

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

Próximos passos

Se você quiser configurar o TLS (Transport Layer Security), anteriormente conhecido como descarregamento SSL (Secure Sockets Layer), consulte Configurar um gateway de aplicativo para descarregamento de TLS.

Se pretender configurar um gateway de aplicação para utilizar com um balanceador de carga interno, veja Create an application gateway with an internal load balancer (ILB) (Criar um gateway de aplicação com um balanceador de carga interno (ILB)).