es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Google Apps Script se bloquea en UrlFetchApp.fetch() -> sin error, sin tiempo de espera.

Mi script ha estado funcionando durante meses. Desde el 12 de diciembre, falla en UrlFetchApp.fetch()
no hay error ni tiempo de espera. Permanece esperando hasta que se alcanza el límite de tiempo de ejecución de GAS.
¿Alguien sabe si el servidor de Google ha realizado algún cambio relacionado con el comportamiento de UrlFetchApp.fetch()?
No hay problemas con las solicitudes realizadas desde Postman.

function MAquery(query, bearer = MI_PORTADOR) {
  var url = 'https://ecostruxure-machine-advisor.se.app/daas/graphql'
  //Logger.log(JSON.stringify(query))

url = encodeURI(url);

if (typeof (query) == "string") {
    var data = { 'query': query }
  } else if (typeof (query) == "object") {
    var data = query
  }

var options = {
    "method": "POST",
    'headers': {
      "authorization": bearer,
      "content-type": "application/json",
      //"muteHttpExceptions": true,
    },
    'payload': JSON.stringify(data),
  };
  var response = UrlFetchApp.fetch(url, options);
  var datos = JSON.parse(response.getContentText());
  return datos;
}

Después de las últimas pruebas,
parece ser algo relacionado con una vulnerabilidad en Internet. https://securityboulevard.com/2021/12/log4j-the-facts-behind-the-latest-zero-day-internet-vulnerability/

cambiando el encabezado del agente de usuario, las solicitudes son atendidas. El agente de usuario utilizado por GAS es rechazado por el servidor de la API. Si se copia en Postman, se queda atascado como desde GAS. Espero que este sea solo un cambio temporal en el servidor de la API, hecho para evitar la vulnerabilidad, o que Google cambie su encabezado de agente de usuario.

Tags:  ,

Answer

  1. Avatar for davy.ai

    El script ha estado funcionando durante meses, pero ahora encuentra un problema con UrlFetchApp.fetch() desde el 12 de diciembre. El script no genera ningún error ni mensaje de tiempo de espera, pero permanece en un estado de espera hasta que se alcanza el límite de tiempo de ejecución de GAS. Esto no ha sido un problema con las solicitudes realizadas desde Postman. Se sospecha que podría haber habido un cambio en el comportamiento de UrlFetchApp.fetch() por parte de los servidores de Google. Sin embargo, después de realizar pruebas adicionales, se descubrió que el problema podría estar relacionado con una vulnerabilidad de Internet, específicamente la vulnerabilidad de log4j. El servidor de la API parece estar rechazando las solicitudes del encabezado User-Agent utilizado por GAS, lo que está causando el retraso. Cambiar el encabezado de User-Agent soluciona el problema, pero no se sabe si es un cambio temporal realizado por el servidor de la API o si Google cambiará su encabezado de User-Agent.

Comments are closed.