如何在Google Cloud Function超时时收到通知?

时间:2019-02-28 22:54:56

标签: google-cloud-platform google-cloud-functions

我已经在Stackdriver中启用了通知,并且收到有关异常的通知电子邮件。

问题是我没有收到任何有关超时的通知。

当Google Cloud Function被超时杀死时,是否有任何通知方式?

3 个答案:

答案 0 :(得分:2)

即使未将超时报告为错误,您仍然可以为超时日志条目设置指标,然后针对该指标的警报超过零阈值。

  1. 从GCP控制台中,转到 Stackdriver Logging 查看器(/ logs / viewer),并构建一个类似这样的过滤器:
resource.type="cloud_function"
resource.labels.function_name="[YOUR_FUNCTION_NAME_HERE]"
"finished with status: 'timeout'"

第三行是“包含”文本过滤器。超时消息始终包含此文本。您可以添加其他内容或根据需要进行修改。

  1. 点击创建指标。为指标指定一个类似“函数超时”的名称,并确保类型为计数器。您可以将可选字段保留为空白。提交表单,您应该被重定向到/ logs / metrics。

  2. 用户定义的指标下,您应该看到新指标。点击右侧的三点按钮,然后选择从指标创建警报

  3. 为警报策略指定一个有意义的名称。在目标下,您可能还会收到一些关于无法生成折线图的红色文本。单击有用的链接可将对齐器切换为均值,将聚合器切换为无。然后在“配置”下,将条件设置为“高于”,将阈值设置为“ 0”,并设置为“最新值”。

  4. 根据需要继续构建通知和文档。确保添加通知通道,以便收到警报。用户界面应在每个字段上都包含提示。

更多详细信息,请参见official documentation

答案 1 :(得分:1)

  • 使用信息中心顶部的搜索框导航到“创建提醒政策”。
  • 在“您想跟踪什么?”下点击“添加条件”。
  • 像这样配置新条件:

enter image description here

  • 点击“添加”。
  • 点击“下一步”。
  • 选择一个通知渠道或创建一个新渠道。
  • 我取消选中“事件解决通知”。
  • 点击“下一步”。
  • 提供描述性警报名称和可选文档。
  • 点击“保存”。
  • 确保在政策顶部看到“已启用”字样和绿色复选标记。

答案 2 :(得分:0)

通过在Cloud Functions超时之前强制执行错误来解决此问题。在工作流程方面,我认为这比在其他位置配置设置要容易得多,并且可以将所有错误集中在一个地方。

基本上类似于下面的代码片段:

exports.cloudFunction = async (event, context, callback) => {
    try {
        const timeout = setTimeout(function(){ 
            throw new Error(`Timeout: ${event}`); 
        }, 58000); // 2sec buffer off the default 60s timeout

        // DO SOMETHING

        clearTimeout(timeout);
        callback();

    } catch(e) {

        // HANDLE ERROR

        callback(e);
    }
}