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:
Compreenda as diferenças importantes entre as verificações de estado divididas e as verificações de estado antigas.
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
oureadiness_check
no ficheiroapp.yaml
para cada versão. Para ver exemplos, consulte as Verificações de vivacidade e as Verificações de disponibilidade.Execute o seguinte comando:
gcloud app update --split-health-checks --project [YOUR_PROJECT_ID]
Se usou definições personalizadas para verificações de saúde antigas, tem de remover a secção
health_check
do ficheiroapp.yaml
.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.