【问题标题】:Google Apps Script logs (web app) don't show up in the new interfaceGoogle Apps 脚本日志(网络应用程序)未显示在新界面中
【发布时间】:2019-10-19 07:26:14
【问题描述】:

Apps 脚本最近将 StackDriver 日志移至 Apps Script dashboard,页面“执行”。

问题是,日志不会显示在 Apps Script Web 应用的仪表板中。当我向 Apps Script Web 应用发出请求时,我可以看到新的执行行,但该行不会展开以显示日志。

我正在使用 Stackdriver 日志记录:

function doPost(e) {
  console.info('my log');
}

奇怪的是,当我调用 dev url 时它可以工作(部署列被标记为“头”),当我点击它时该行确实会扩展,我可以看到日志,但对于完全相同的应用程序它不起作用当我调用以 /exec 结尾的生产 URL 时(部署列被标记为“版本 2”)。

此外,它适用于 GET 请求,但不适用于 POST 请求。

使用以下权限部署 Web 应用程序:

  • 以“我”身份执行应用
  • 谁可以访问该应用:任何人,甚至是匿名用户
  • 云端硬盘共享设置:只有特定的人可以访问

这是他们新界面中的错误还是我遗漏了什么?

【问题讨论】:

  • 可能是bug....
  • 我相信只有从项目中运行应用程序才能看到日志。或者,如果请求来自匿名用户,您可能看不到日志
  • 有同样的问题,当日志显示在云控制台上的常规堆栈驱动程序日志界面中时,可以肯定这有效,但由于匿名请求在 script.google.com 上,所以没有获取日志

标签: logging google-apps-script web-applications stackdriver


【解决方案1】:

除了上述措施之外 - 还要确保在日志查看器中选择了 Apps 脚本功能,因此查看器不受其他资源的限制。

【讨论】:

    【解决方案2】:

    取消选中“将未捕获的异常记录到云日志”对我不起作用,但令我惊讶的是,如果脚本与访问网络应用程序。如果使用 doGet/doPost 作为 webhook 端点,脚本必须与知道链接的任何人共享。

    不确定这是错误还是设计使然,但我终其一生都看不到它的基本原理。

    【讨论】:

    • 不幸的是,这对我不起作用。 :(
    【解决方案3】:

    虽然您当然可以将您的应用脚本与云项目相关联,然后沿着这条路线走下去,但这在许多组织中可能会很棘手。

    相反,当您打开相关的应用程序脚本时,导航到“项目设置”屏幕。在“常规设置”下,有一个“将未捕获的异常记录到云日志”复选框。确保未选中,并在必要时重新部署您的 Web 应用程序。然后,您应该会发现日志重新出现在“执行”屏幕中。

    【讨论】:

    • 非常感谢您的指导。我认为你的方法是迄今为止网络应用程序最简单的方法。尽管如此,当我们运行非网络应用程序脚本时,谷歌应该像查看日志一样简单。他们不应该让开发人员查看日志变得如此痛苦。 :(
    • 不幸的是,这对我也不起作用。取消选中“将未捕获的异常记录到云日志”复选框后,我尝试创建我的 Web 应用程序部署的新版本。那没有用,所以我存档了我的 Web 应用程序部署并创建了一个全新的 Web 应用程序部署。那也没用。 :(
    【解决方案4】:

    我可以通过在 https://console.cloud.google.com 创建一个 Cloud Console 项目并将 Apps 脚本与该新项目相关联来解决此问题。

    在完成设置 OAuth 同意屏幕和重新授权脚本所需的步骤后,我可以在 Cloud Console 的日志记录部分查看来自匿名请求的日志。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-01-13
      • 1970-01-01
      • 2018-06-04
      • 2018-02-18
      • 2017-11-06
      • 2013-01-18
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多