Como migrar de verificações de integridade legadas para divididas

A partir de 15 de setembro de 2019, se você estiver usando verificações de integridade legadas, seu aplicativo continuará a ser executado e receberá verificações de integridade, mas não será mais possível implantar novas versões dele.

Esta página explica como atualizar de verificações de integridade legadas para verificações de integridade divididas.

Como verificar o tipo de verificação de integridade

Para ver o tipo de verificações de integridade que o aplicativo está usando, execute o seguinte comando:

gcloud app describe

Se o aplicativo estiver usando verificações de integridade divididas, a descrição incluirá as seguintes informações:

featureSettings:
    splitHealthChecks: true

Noções básicas sobre as principais diferenças

Antes de atualizar para verificações de integridade divididas, considere as seguintes diferenças importantes entre as verificações de integridade legadas e divididas:

  • As solicitações HTTP para verificações de integridade divididas não são encaminhadas por padrão. Por outro lado, por padrão as verificações de integridade legadas são encaminhadas para o caminho do /_ah/health no aplicativo.

  • As verificações de integridade divididas encaminhadas precisam retornar 200 OK quando estiverem íntegras e prontas. As verificações de integridade legadas consideram os seguintes códigos HTTP como íntegros: 200, 301, 302, 303, 307, 401, 402, 403, 404 e 405.

Se você não especificar um caminho de verificação de atividade ou um caminho de verificação de prontidão, por padrão, as verificações de integridade divididas somente confirmarão se a instância da VM e o contêiner do Docker estão em execução. Enquanto essas condições se mantiverem, a VM continuará a receber tráfego e permanecer ativa, independentemente do estado interno do aplicativo.

Por outro lado, quando as verificações de integridade legadas são ativadas, se o caminho /_ah/health do aplicativo começar a retornar códigos de erro HTTP não íntegros (por exemplo, 5XX ), as verificações de integridade legadas começarão a falhar e a VM deixará de receber tráfego e será reiniciada.

Se o aplicativo depender do comportamento padrão da verificação de integridade legada, defina o caminho de verificação de atividade e o caminho de verificação de prontidão de maneira adequada.

Como converter opções de verificação de integridade legada

Cada opção de verificação de integridade legada pode ser reescrita usando as verificações de integridade divididas da seguinte forma:

Opção Como manter o mesmo comportamento nas verificações de integridade divididas
enable_health_check Se True ou não definido, configure liveness_check.path e readiness_check.path como um caminho no aplicativo que retorne 200 OK quando o aplicativo está íntegro.
check_interval_sec Configure o mesmo valor para liveness_check.check_interval_sec e readiness_check.check_interval_sec.
timeout_sec Configure o mesmo valor para liveness_check.timeout_sec e readiness_check.timeout_sec.
unhealthy_threshold Configure o mesmo valor para readiness_check.failure_threshold.
healthy_threshold Configure o mesmo valor para liveness_check.success_threshold e readiness_check.success_threshold.
restart_threshold Configure o mesmo valor para liveness_check.failure_threshold. Observe que o valor da opção check_interval_sec multiplicado pela opção failure_threshold é o tempo que uma VM não íntegra leva para ser desativada.

Como ativar verificações de integridade divididas

Para migrar de verificações de integridade legadas para verificações de integridade divididas e evitar ver códigos de status 5xx elevados, siga as etapas abaixo:

  1. Entenda as diferenças importantes entre verificações de integridade legadas e divididas.

  2. Converta opções de verificação de integridade legadas para cada versão no aplicativo.

    Você também pode optar por personalizar a seção liveness_check ou readiness_check no arquivo app.yaml para cada versão. Para exemplos, consulte Verificações de atividade e Verificações de prontidão.

  3. Execute este comando:

    gcloud app update --split-health-checks --project [YOUR_PROJECT_ID]
  4. Se você usou configurações personalizadas para as verificações de integridade legadas, será preciso remover a seção health_check do arquivo app.yaml.

  5. Implante uma nova versão principal do aplicativo para começar a usar verificações de integridade de atividade e prontidão.