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 gerar e receber verificações de integridade, mas não será mais possível implantar novas versões dele.

Nesta página, descrevemos como fazer upgrade de atualizaçõ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 códigos HTTP a seguir como íntegros: 200, 301, 302, 303, 307, 401, 402, 403, 404 e 405.

Se não for especificado 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. Contanto que essas condições sejam mantidas, 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, enquanto 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.

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 para um caminho no aplicativo que retorne 200 OK quando o aplicativo estiver íntegro.
check_interval_sec Configure liveness_check.check_interval_sec e readiness_check.check_interval_sec com o mesmo valor.
timeout_sec Configure liveness_check.timeout_sec e readiness_check.timeout_sec com o mesmo valor.
unhealthy_threshold Configure readiness_check.failure_threshold com o mesmo valor.
healthy_threshold Configure liveness_check.success_threshold e readiness_check.success_threshold com o mesmo valor.
restart_threshold Configure liveness_check.failure_threshold com o mesmo valor. 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 elevados 5xx, conclua os passos a seguir:

  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.

    Como alternativa, personalize a seção liveness_check ou readiness_check no arquivo app.yaml para cada versão. Veja exemplos em Verificações de atividade e Verificações de preparo.

  3. Execute este comando:

    gcloud app update --split-health-checks --project [YOUR_PROJECT_ID]
  4. Se você usou configurações personalizadas para verificações de integridade legadas, precisa 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.