Migre das verificações de funcionamento antigas para as divididas

A partir de 15 de setembro de 2019, se estiver a usar as verificações de estado antigas, a sua aplicação vai continuar a ser executada e a receber verificações de estado, mas não vai poder implementar novas versões da aplicação.

Esta página explica a atualização das verificações de funcionamento antigas para as verificações de funcionamento divididas.

Validar o tipo de verificação de estado

Para validar o tipo de verificações de estado que a sua aplicação está a usar, execute o comando seguinte:

gcloud app describe

Se a sua aplicação estiver a usar verificações de saúde divididas, a descrição deve incluir as seguintes informações:

featureSettings:
    splitHealthChecks: true

Compreender as principais diferenças

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

  • Os pedidos HTTP para verificações de estado divididas não são encaminhados por predefinição. Por outro lado, as verificações de funcionamento antigas encaminham-se para o caminho /_ah/health na sua aplicação por predefinição.

  • As verificações de funcionamento divididas encaminhadas têm de devolver 200 OK quando estiverem em bom estado e prontas. As verificações de estado antigas consideram os seguintes códigos HTTP como estando em bom estado: 200, 301, 302, 303, 307, 401, 402, 403, 404, 405.

Se não especificar um caminho de verificação de atividade ou um caminho de verificação de disponibilidade, por predefinição, as verificações de estado divididas apenas confirmam que a instância de VM e o contentor Docker estão em execução. Enquanto estas condições se mantiverem, a MV continua a receber tráfego e permanece ativa, independentemente do estado interno da app.

Por outro lado, quando as verificações de estado antigas estão ativadas, se o caminho da sua app começar a devolver códigos de erro HTTP não saudáveis (por exemplo, 5XX), as verificações de estado antigas começam a falhar e a VM deixa de receber tráfego e é reiniciada./_ah/health

Se a sua app depender do comportamento de verificação de funcionamento antigo predefinido, defina o caminho de verificação de atividade e o caminho de verificação de prontidão em conformidade.

Converter opções de verificação de funcionamento antigas

Cada opção de verificação de funcionamento antiga pode ser reescrita através de verificações de funcionamento divididas da seguinte forma:

Opção Manter o mesmo comportamento nas verificações de funcionamento divididas
enable_health_check Se for True ou não estiver definido, configure liveness_check.path e readiness_check.path para um caminho na app que devolve 200 OK quando a app está em bom estado.
check_interval_sec Configure liveness_check.check_interval_sec e readiness_check.check_interval_sec para o mesmo valor.
timeout_sec Configure liveness_check.timeout_sec e readiness_check.timeout_sec para o mesmo valor.
unhealthy_threshold Configure readiness_check.failure_threshold para o mesmo valor.
healthy_threshold Configure liveness_check.success_threshold e readiness_check.success_threshold para o mesmo valor.
restart_threshold Configure liveness_check.failure_threshold para o mesmo valor. Tenha em atenção que o valor da opção check_interval_sec multiplicado pela opção failure_threshold é o tempo que uma VM não saudável demora a ser desativada.

Ativar verificações de funcionamento divididas

Para migrar das verificações de funcionamento antigas para as verificações de funcionamento divididas e evitar ver códigos de estado 5xx elevados, conclua os seguintes passos:

  1. Compreenda as diferenças importantes entre as verificações de estado divididas e as verificações de estado antigas.

  2. Converta as opções de verificação de estado antigas para cada versão na sua aplicação.

    Em alternativa, pode personalizar a secção liveness_check ou readiness_check no ficheiro app.yaml para cada versão. Para ver exemplos, consulte as Verificações de vivacidade e as Verificações de disponibilidade.

  3. Execute o seguinte comando:

    gcloud app update --split-health-checks --project [YOUR_PROJECT_ID]
  4. Se usou definições personalizadas para verificações de saúde antigas, tem de remover a secção health_check do ficheiro app.yaml.

  5. Implemente uma nova versão principal da sua app para começar a usar as verificações de estado de funcionamento de atividade e disponibilidade.