Configurar as regras de integridade aperfeiçoada de um ambiente - AWS Elastic Beanstalk

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Configurar as regras de integridade aperfeiçoada de um ambiente

Os relatórios de integridade avançada do AWS Elastic Beanstalk dependem de um conjunto de regras para determinar a integridade do ambiente. Algumas dessas regras podem não ser adequadas para o seu aplicativo. Veja a seguir alguns exemplos comuns:

  • Você usa ferramentas de teste no lado do cliente. Nesse caso, são esperados erros frequentes de cliente HTTP (4xx).

  • Use o AWS WAF junto com o Application Load Balancer do ambiente para bloquear tráfego de entrada indesejado. Nesse caso, o Application Load Balancer retorna HTTP 403 para cada mensagem recebida rejeitada.

Por padrão, o Elastic Beanstalk inclui todos os erros HTTP 4xx da aplicação ao determinar a integridade do ambiente. Ele altera o status de integridade do ambiente de OK para Warning (Aviso), Degraded (Degradado) ou Severe (Grave), dependendo da taxa de erros. Para lidar corretamente com casos como os exemplos que mencionamos, o Elastic Beanstalk permite configurar algumas regras de integridade aprimorada. É possível optar por ignorar os erros HTTP 4xx do aplicativo nas instâncias do ambiente ou ignorar os erros HTTP 4xx retornados pelo load balancer do ambiente. Este tópico descreve como fazer essas alterações de configuração.

nota

No momento, essas são as únicas personalizações de regras de integridade avançada disponíveis. Não é possível configurar a integridade avançada para ignorar outros erros HTTP além do 4xx.

Configurar regras de integridade aprimorada usando o console do Elastic Beanstalk

É possível usar o console do Elastic Beanstalk para configurar regras de integridade aprimorada no ambiente.

Como configurar a verificação de código de status HTTP 4xx usando o console do Elastic Beanstalk
  1. Abra o console do Elastic Beanstalk e, na lista Regions (Regiões), selecione a sua Região da AWS.

  2. No painel de navegação, selecione Ambientes e selecione o nome do ambiente na lista.

    nota

    Se você tiver muitos ambientes, use a barra de pesquisa para filtrar a lista de ambientes.

  3. No painel de navegação, escolha Configuration (Configuração).

  4. Na categoria de configuração Monitoring (Monitoramento), escolha Edit (Editar).

  5. Em Health monitoring rule customization (Personalização da regra de monitoramento de integridade), habilite ou desabilite as opções Ignore (Ignorar) desejadas.

    Seção de personalização da regra de monitoramento de integridade na página de configuração de monitoramento do console do Elastic Beanstalk
  6. Para salvar as alterações, escolha Apply (Aplicar) na parte inferior da página.

Configurar regras de integridade aprimorada usando a EB CLI

Use a CLI do EB para configurar regras de integridade aprimorada, salvando a configuração do ambiente localmente, adicionando uma entrada que defina essas regras e fazendo upload da configuração no Elastic Beanstalk. Você pode aplicar a configuração salva a um ambiente durante ou após a criação.

Como configurar a verificação de código de status HTTP 4xx usando a CLI do EB e configurações salvas
  1. Inicialize a pasta do projeto com eb init.

  2. Crie um ambiente executando o comando eb create.

  3. Salve um modelo de configuração localmente, executando o comando eb config save. O exemplo a seguir usa a opção --cfg para especificar o nome da configuração.

    $ eb config save --cfg 01-base-state Configuration saved at: ~/project/.elasticbeanstalk/saved_configs/01-base-state.cfg.yml
  4. Abra o arquivo de configuração salvo em um editor de texto.

  5. Em OptionSettings > aws:elasticbeanstalk:healthreporting:system:, adicione uma chave ConfigDocument para listar cada regra de integridade aprimorada a ser configurada. O ConfigDocument a seguir desabilita a verificação dos códigos de status HTTP 4xx do aplicativo, mantendo a verificação do código HTTP 4xx do load balancer habilitada.

    OptionSettings: ... aws:elasticbeanstalk:healthreporting:system: ConfigDocument: Rules: Environment: Application: ApplicationRequests4xx: Enabled: false ELB: ELBRequests4xx: Enabled: true Version: 1 SystemType: enhanced ...
    nota

    É possível combinar Rules e CloudWatchMetrics na mesma configuração da opção ConfigDocument. CloudWatchMetrics são descritas em Publicar métricas personalizadas do Amazon CloudWatch para um ambiente.

    Se você tiver habilitado CloudWatchMetrics anteriormente, o arquivo de configuração recuperado usando o comando eb config save já terá uma chave ConfigDocument com uma seção CloudWatchMetrics. Não o exclua, em vez disso, adicione uma seção Rules no mesmo valor da opção ConfigDocument.

  6. Salve o arquivo de configuração e feche o editor de texto. Neste exemplo, o arquivo de configuração atualizado é salvo com um nome (02-cloudwatch-enabled.cfg.yml) diferente do arquivo de configuração obtido por download. Isso cria uma configuração salva separada quando o arquivo é carregado. Você pode usar o mesmo nome que o arquivo baixado para substituir a configuração existente, sem criar um novo.

  7. Use o comando eb config put para fazer upload do arquivo de configuração atualizado no Elastic Beanstalk.

    $ eb config put 02-cloudwatch-enabled

    Ao usar os comandos eb config, get e put com configurações salvas, não inclua a extensão do nome do arquivo.

  8. Aplique a configuração salva ao ambiente em execução.

    $ eb config --cfg 02-cloudwatch-enabled

    A opção --cfg especifica um arquivo de configuração nomeado que é aplicado ao ambiente. É possível salvar o arquivo de configuração localmente ou no Elastic Beanstalk. Se um arquivo de configuração com o nome especificado já existir em ambos os locais, a EB CLI usará o arquivo local.

Configurar regras de integridade aprimorada usando um documento de configuração

O documento de configuração (config) para regras de integridade aprimorada é um documento JSON que lista as regras a serem configuradas.

O exemplo a seguir mostra um documento de configuração que desabilita a verificação de códigos de status HTTP 4xx do aplicativo e habilita a verificação de códigos de status HTTP 4xx do load balancer.

{ "Rules": { "Environment": { "Application": { "ApplicationRequests4xx": { "Enabled": false } }, "ELB": { "ELBRequests4xx": { "Enabled": true } } } }, "Version": 1 }

Na AWS CLI, você passa o documento como um valor da chave Value em um argumento de configurações de opção, que é um objeto JSON. Nesse caso, você deve escapar as aspas no documento incorporado. O comando a seguir verifica se as definições de configuração são válidas.

$ aws elasticbeanstalk validate-configuration-settings --application-name my-app --environment-name my-env --option-settings '[ { "Namespace": "aws:elasticbeanstalk:healthreporting:system", "OptionName": "ConfigDocument", "Value": "{\"Rules\": { \"Environment\": { \"Application\": { \"ApplicationRequests4xx\": { \"Enabled\": false } }, \"ELB\": { \"ELBRequests4xx\": {\"Enabled\": true } } } }, \"Version\": 1 }" } ]'

Para um arquivo de configuração .ebextensions em YAML, você pode fornecer o documento JSON no estado em que está.

option_settings: - namespace: aws:elasticbeanstalk:healthreporting:system option_name: ConfigDocument value: { "Rules": { "Environment": { "Application": { "ApplicationRequests4xx": { "Enabled": false } }, "ELB": { "ELBRequests4xx": { "Enabled": true } } } }, "Version": 1 }