Durante os últimos 2 dias, tivemos problemas de implantação. Aplicativo implantado perfeitamente antes. Não introduzimos nenhuma alteração no app.yaml
.
Fazendo coisas normais comogcloud app deploy app.yaml
service: subscriber
runtime: nodejs
env: flex
env_variables:
SCRIPT: subscriber.js
LOG_LEVEL: info
health_check:
enable_health_check: false
resources:
memory_gb: 4
automatic_scaling:
min_num_instances: 1
max_num_instances: 40
cpu_utilization:
target_utilization: 0.75
A compilação ocorre normalmente, mas no final falha com erro:
34b3438ad618: Layer already exists
de5e96f3b52d: Layer already exists
21df82f90a72: Layer already exists
0529bceacd9f: Layer already exists
3578a2f7453e: Pushed
94aa0c608f65: Pushed
latest: digest: sha256:3addb3a35b43dc5c45ebc86ad10c7f8c7b4408c781095fd819bd94ac8d7b497b size: 2417
DONE
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Updating service [subscriber] (this may take several minutes)...failed.
ERROR: (gcloud.app.deploy) Error Response: [13] App Engine Flex failed to configure resources.
Versão do Gcloud:
gcloud version
Google Cloud SDK 189.0.0
alpha 2017.09.15
beta 2017.09.15
bq 2.0.29
core 2018.02.12
gcloud
gsutil 4.28
kubectl
Responder1
Isso pode ter sido correlacionado com uma versão recente relacionada ao enable_health_check: false
parâmetro para aplicativos onde split_health_checks
estão habilitados.
Você poderia tentar implantar enable_health_check: true
ou executar ocomando:
gcloud app update --no-split-health-checks
?
Responder2
De acordo comdocumentos:
... Verificações de integridade atualizadassão mais detalhados e permitem que você use verificações separadas para confirmar se sua instância do App Engine está em execução (ativa) e pronta para veicular conteúdo (pronta). Esses exames de saúde são ativado por padrão.
Basicamente significa que não há necessidade de incluir enable_health_check: False
. Basta omitir essas duas linhas se não quiser usar verificações de integridade legadas.
Por outro lado, se você quiser usarverificações de integridade herdadas, execute o comando:
gcloud app update --no-split-health-checks
e adicione uma seção de verificação de integridade ao seu arquivo de configuração:
health_check:
enable_health_check: True
check_interval_sec: 5
timeout_sec: 4
unhealthy_threshold: 2
healthy_threshold: 2