Erro no servidor POST 502 do ambiente padrão do Google App Engine

Erro no servidor POST 502 do ambiente padrão do Google App Engine

Depois de alguns dias usando um App Engine para transmitir dados do Unity para o PubSub, encontrei uma grande quantidade de erros 502 que aumentaram o número de instâncias criadas e por isso ultrapassam o limite de gastos diários.

Aumento de instância

Aumento de instância

Script Python que estou usando: https://github.com/GoogleCloudPlatform/python-docs-samples/tree/master/appengine/standard_python37/pubsub

Todos os erros são solicitações HTTP POST e têm latência maior que 30s e a mensagem de log é:

Essa solicitação fez com que um novo processo fosse iniciado para sua aplicação e, assim, fez com que o código da sua aplicação fosse carregado pela primeira vez. Essa solicitação pode, portanto, demorar mais e usar mais CPU do que uma solicitação típica para seu aplicativo.

Fui recomendado a examinar as verificações de prontidão e de atividade que estão disponíveis apenas no ambiente Flex, mas não no ambiente Standard. O que poderia causar esses erros e como evitá-los?

Exemplo de registro:

    {
 httpRequest: {
  status: 502   
 }
 insertId: "5e2bf548000bc56fe5d27eec"  
 labels: {
  clone_id: "00c61b117c17d8ad1566cc1788d5763552dbe5ace0c77a3523e4047bdc431b306a3840a5168f"   
 }
 logName: "projects/x/logs/appengine.googleapis.com%2Frequest_log"  
 operation: {
  first: true   
  id: "5e2bf52700ff069deff4c6f3400001737e626f6f74796661726d6c697665000133000100"   
  last: true   
  producer: "appengine.googleapis.com/request_id"   
 }
 protoPayload: {
  @type: "type.googleapis.com/google.appengine.logging.v1.RequestLog"   
  appEngineRelease: "1.9.71"   
  appId: "s~x"   
  cost: 3.2186e-8   
  endTime: "2020-01-25T07:59:04.771274Z"   
  finished: true   
  first: true   
  host: "x.appspot.com"   
  httpVersion: "HTTP/1.1"   
  instanceId: "00c61b117c17d8ad1566cc1788d5763552dbe5ace0c77a3523e4047bdc431b306a3840a5168f"   
  instanceIndex: -1   
  ip: "x"   
  latency: "33.337627s"   
  line: [
   0: {
    logMessage: "This request caused a new process to be started for your application, and thus caused your application code to be loaded for the first time. This request may thus take longer and use more CPU than a typical request for your application."     
    severity: "INFO"     
    time: "2020-01-25T07:59:04.770902Z"     
   }
  ]
  megaCycles: "4387"   
  method: "POST"   
  pendingTime: "0.005315345s"   
  requestId: "5e2bf52700ff069deff4c6f3400001737e626f6f74796661726d6c697665000133000100"   
  resource: "/"   
  responseSize: "288"   
  startTime: "2020-01-25T07:58:31.433647Z"   
  status: 502   
  traceId: "2ee7b458fad62565bd5ed150e67647fc"   
  traceSampled: true   
  urlMapEntry: "auto"   
  userAgent: "Dalvik/2.1.0 (Linux; U; Android 5.1.1; SM-T360 Build/LMY47X) x SDK"   
  versionId: "3"   
  wasLoadingRequest: true   
 }
 receiveTimestamp: "2020-01-25T07:59:04.772448343Z"  
 resource: {
  labels: {
   module_id: "default"    
   project_id: "x"    
   version_id: "3"    
   zone: "us12"    
  }
  type: "gae_app"   
 }
 severity: "INFO"  
 timestamp: "2020-01-25T07:58:31.433647Z"  
 trace: "projects/x/traces/2ee7b458fad62565bd5ed150e67647fc"  
 traceSampled: true  
}

Aplicativo.yaml:

runtime: python37
entrypoint: gunicorn -b :$PORT main:app

    #[START env]

        env_variables:
            PUBSUB_TOPIC: xx
            # This token is used to verify that requests originate from your
            # application. It can be any sufficiently random string.
            PUBSUB_VERIFICATION_TOKEN: xx
        #[END env]

Requisitos.txt:

Flask==1.0.2
google-api-python-client==1.7.8
google-auth==1.6.3
google-cloud-pubsub==0.40.0
gunicorn==19.7.1

*Observação: depois de alguns dias, o aumento do número de instâncias não fica visível no painel do AppEngine, embora os erros ainda estejam visíveis nos logs.

informação relacionada