Google cloud platform 谷歌云功能超时如何通知?
我已经在Stackdriver中启用了通知,并且收到了异常通知电子邮件 问题是我没有收到任何超时通知Google cloud platform 谷歌云功能超时如何通知?,google-cloud-platform,google-cloud-functions,Google Cloud Platform,Google Cloud Functions,我已经在Stackdriver中启用了通知,并且收到了异常通知电子邮件 问题是我没有收到任何超时通知 当Google Cloud函数因超时而终止时,有什么方法可以得到通知吗?即使超时没有被报告为错误,您仍然可以为超时日志条目设置一个度量,然后针对超过零阈值的度量发出警报 从GCP控制台,转到Stackdriver日志查看器(/logs/viewer),并构建如下过滤器: 第三行是“包含”文本过滤器。超时消息始终包含此文本。您可以根据需要添加其他内容或修改 单击创建度量。给度量命名为“函数超时”,
当Google Cloud函数因超时而终止时,有什么方法可以得到通知吗?即使超时没有被报告为错误,您仍然可以为超时日志条目设置一个度量,然后针对超过零阈值的度量发出警报
更多详细信息请参见。提出了一种解决方法,在云函数超时之前强制执行一个错误。就工作流而言,我认为这更容易控制,并且能够将所有错误整合到一个地方,而不必在其他地方配置设置 基本上类似于下面的代码片段:
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);
}
}
- 使用仪表板顶部的搜索框导航到“创建警报策略”
- 在“您想要跟踪什么?”下,单击“添加条件”
- 按如下方式配置新条件:
- 单击“添加”
- 单击“下一步”
- 选择通知频道或创建新的通知频道
- 我未选中“事件解决通知”
- 单击“下一步”
- 提供描述性警报名称和可选文档
- 单击“保存”
- 确保在策略顶部看到“已启用”一词以及绿色复选标记
resource.labels.function\u name=“[YOUR\u function\u name\u HERE]”
行,因此它适用于所有部署的谷歌云功能。您仍然可以恢复相同的数据,因为资源类型具有funciton_名称作为标签。缺点是日志量更大,但通常我希望在我的任何功能超时时收到警报。
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);
}
}