Последние месяцы я успешно развертывал гибкое приложение GAE. Сейчас я пытаюсь развернуть то же приложение в другом проекте, который я создал в качестве промежуточной среды.
Код точно такой же, app.yaml только изменился, чтобы отразить новую базу данных и соединения redis, которые я передаю как переменные среды.
Сборка идет хорошо, но в итоге получаю следующее:
"metadata": {
"target": "apps/freesat-stage-project/services/default/versions/athiqtest4",
"method": "google.appengine.v1.Versions.CreateVersion",
"user": "sys@example.co.uk",
"insertTime": "2017-11-08T11:11:59.089Z",
"ephemeralMessage": "Deployment failed. Attempting to cleanup deployment artifacts.",
"@type": "type.googleapis.com/google.appengine.v1.OperationMetadataV1"
},
"done": true,
"name": "apps/freesat-stage-project/operations/2e41e4e5-b9bd-42fb-9fd3-319ec322458b",
"error": {
"message": "Deployment Manager operation failed, name: operation-1510139527034-55d76c211f490-1fcc927b-d3b3b590, error: [{\"code\":\"RESOURCE_ERROR\",\"location\":\"/deployments/aef-default-athiqtest4/resources/aef-default-athiqtest4-00ahs\",\"message\":\"{\\\"ResourceType\\\":\\\"compute.v1.httpsHealthCheck\\\",\\\"ResourceErrorCode\\\":\\\"400\\\",\\\"ResourceErrorMessage\\\":{\\\"code\\\":400,\\\"errors\\\":[{\\\"domain\\\":\\\"global\\\",\\\"message\\\":\\\"Invalid value for field 'resource.checkIntervalSec': '0'. Must be greater than or equal to 1\\\",\\\"reason\\\":\\\"invalid\\\"},{\\\"domain\\\":\\\"global\\\",\\\"message\\\":\\\"Invalid value for field 'resource.timeoutSec': '0'. Must be greater than or equal to 1\\\",\\\"reason\\\":\\\"invalid\\\"},{\\\"domain\\\":\\\"global\\\",\\\"message\\\":\\\"Invalid value for field 'resource.unhealthyThreshold': '0'. Must be greater than or equal to 1\\\",\\\"reason\\\":\\\"invalid\\\"},{\\\"domain\\\":\\\"global\\\",\\\"message\\\":\\\"Invalid value for field 'resource.healthyThreshold': '0'. Must be greater than or equal to 1\\\",\\\"reason\\\":\\\"invalid\\\"}],\\\"message\\\":\\\"Invalid value for field 'resource.checkIntervalSec': '0'. Must be greater than or equal to 1\\\",\\\"statusMessage\\\":\\\"Bad Request\\\",\\\"requestPath\\\":\\\"https://www.googleapis.com/compute/v1/projects/freesat-stage-project/global/httpsHealthChecks\\\",\\\"httpMethod\\\":\\\"POST\\\"}}\"}, {\"code\":\"RESOURCE_ERROR\",\"location\":\"/deployments/aef-default-athiqtest4/resources/aef-default-athiqtest4-hcs\",\"message\":\"{\\\"ResourceType\\\":\\\"compute.v1.httpsHealthCheck\\\",\\\"ResourceErrorCode\\\":\\\"400\\\",\\\"ResourceErrorMessage\\\":{\\\"code\\\":400,\\\"errors\\\":[{\\\"domain\\\":\\\"global\\\",\\\"message\\\":\\\"Invalid value for field 'resource.checkIntervalSec': '0'. Must be greater than or equal to 1\\\",\\\"reason\\\":\\\"invalid\\\"},{\\\"domain\\\":\\\"global\\\",\\\"message\\\":\\\"Invalid value for field 'resource.timeoutSec': '0'. Must be greater than or equal to 1\\\",\\\"reason\\\":\\\"invalid\\\"},{\\\"domain\\\":\\\"global\\\",\\\"message\\\":\\\"Invalid value for field 'resource.unhealthyThreshold': '0'. Must be greater than or equal to 1\\\",\\\"reason\\\":\\\"invalid\\\"},{\\\"domain\\\":\\\"global\\\",\\\"message\\\":\\\"Invalid value for field 'resource.healthyThreshold': '0'. Must be greater than or equal to 1\\\",\\\"reason\\\":\\\"invalid\\\"}],\\\"message\\\":\\\"Invalid value for field 'resource.checkIntervalSec': '0'. Must be greater than or equal to 1\\\",\\\"statusMessage\\\":\\\"Bad Request\\\",\\\"requestPath\\\":\\\"https://www.googleapis.com/compute/v1/projects/freesat-stage-project/global/httpsHealthChecks\\\",\\\"httpMethod\\\":\\\"POST\\\"}}\"}]",
"code": 13
}
Мой app.yaml выглядит следующим образом:
runtime: custom
env: flex
env_variables:
REDIS_HOST: 10.154.0.3
REDIS_PORT: 6379
DB_NAME: freesat
DB_USER: freesat-stage
DB_PASS: password
DB_HOST: /cloudsql/freesat-stage-project:europe-west2:freesat-stage
GS_BUCKET_NAME: freesat-content
DJANGO_CONF: conf.production
JANRAIN_CLIENT_ID: clientid
JANRAIN_SECRET: secret
DOTMAILER_API_USER: api@apiconnector.com
DOTMAILER_API_PASS: pass
health_check:
enable_health_check: False
automatic_scaling:
min_num_instances: 4
max_num_instances: 15
cpu_utilization:
target_utilization: 0.4
beta_settings:
cloud_sql_instances: 'freesat-stage-project:europe-west2:freesat-stage'
resources:
cpu: 2
memory_gb: 2
Я не могу понять сообщение об ошибке. Любая помощь будет приветствоваться.
В недавно созданных проектах App Engine теперь используются обновленные Разделенные проверки работоспособности.
Это означает, что ваша попытка отключить устаревшие проверки работоспособности с помощью enable_health_check
в вашем app.yaml является причиной проблемы.
Поэтому вы можете удалить устаревшее health_check
настройки из вашего yaml-файла или отключите новые проверки работоспособности разделения для вашего проекта (и продолжайте использовать устаревшие проверки работоспособности), запустив команду gcloud gcloud beta app update --no-split-health-checks --project [YOUR_PROJECT_ID]
чтобы решить проблему.