- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我们创建了一个基于 NodeJS 的 Lambda 函数,名为 - execInspector,每天都会触发一次。该函数是基于NodeJS中的AWS Lambda蓝图-->“inspector-scheduled-run”创建的。
我们看到的问题是计划的作业有一天或另一天随机失败。我们仅从 cloudwatch 日志流中获取以下日志。
在一周内,它随机运行 =~ 4/5 次并在剩余几天内失败。根据日志,它的执行只消耗很少的内存/时间,但不确定为什么它会随机失败。它还会在被杀死之前重试 3 次。
从下面的日志中我们还可以发现该作业平均只需要 35 MB。平均仅需 60 秒即可完成。我们尝试修改 NodeJS 运行时、增加内存、超时远远超出此限制,但没有任何效果。
您能否帮助提供一些替代方法来自动处理这些故障以及是否有人了解其发生原因?
其他输入:我们已经给出了 5 分钟的最大超时时间,但它没有显示“300 秒后超时”。
我的意思是,触发检查器的任务平均只需要不到 30 秒。由于它是基于 PaaS 的解决方案,我不能指望这总是在 30 秒内完成。但是 60 秒应该足以处理它能够在 30 秒内完成的工作。
CloudWatch 成功日志示例:
18:01:00开始请求 ID:12eb468a-4174-11e7-be7b-6d0faaa584aa 版本:$LATEST18:01:032017-05-25T18:01:02.935Z 12eb468a-4174-11e7-be7b-6d0faaa584aa {assessmentRunArn:'arn:aws:检查器:us-east-1:102461617910:目标/0-Ly60lmEP/模板/0-POpZxSLA/运行/0-MMx30fLl' }2017-05-25T18:01:02.935Z 12eb468a-4174-11e7-be7b-6d0faaa584aa {assessmentRunArn:'arn:aws:检查器:us-east-1:102461617910:目标/0-Ly60lmEP/模板/0-POpZxSLA/运行/0-MMx30fLl' }18:01:03结束请求 ID:12eb468a-4174-11e7-be7b-6d0faaa584aa结束请求 ID:12eb468a-4174-11e7-be7b-6d0faaa584aa18:01:03报告请求 ID:12eb468a-4174-11e7-be7b-6d0faaa584aa 持续时间:2346.37 毫秒 计费持续时间:2400 毫秒 内存大小:128 MB 最大使用内存:33 MB报告请求 ID:12eb468a-4174-11e7-be7b-6d0faaa584aa 持续时间:2346.37 毫秒 计费持续时间:2400 毫秒 内存大小:128 MB 最大使用内存:33 MB
Cloudwatch 日志:
下面的类似日志重复了 3 次,这似乎是一次重试尝试
06:32:52开始请求 ID:80190395-404a-11e7-845d-1f88a00ed4f3 版本:$LATEST06:32:562017-05-24T06:32:55.942Z 80190395-404a-11e7-845d-1f88a00ed4f3 执行开始...06:33:52结束请求 ID:80190395-404a-11e7-845d-1f88a00ed4f306:33:52报告请求 ID:80190395-404a-11e7-845d-1f88a00ed4f3 持续时间:60000.88 毫秒 计费持续时间:60000 毫秒 内存大小:128 MB 使用的最大内存:32 MB06:33:522017-05-24T06:33:52.437Z 80190395-404a-11e7-845d-1f88a00ed4f3 任务在 60.00 秒后超时2017-05-24T06:33:52.437Z 80190395-404a-11e7-845d-1f88a00ed4f3 任务在 60.00 秒后超时
Lambda 代码:
'use strict';
/**
* A blueprint to schedule a recurring assessment run for an Amazon Inspector assessment template.
*
* This blueprint assumes that you've already done the following:
* 1. onboarded with the Amazon Inspector service https://aws.amazon.com/inspector
* 2. created an assessment target - what hosts you want to assess
* 3. created an assessment template - how you want to assess your target
*
* Then, all you need to do to use this blueprint is to define an environment variable in the Lambda console called
* `assessmentTemplateArn` and provide the template arn you want to run on a schedule.
*/
const AWS = require('aws-sdk');
const inspector = new AWS.Inspector();
const params = {
assessmentTemplateArn: process.env.assessmentTemplateArn,
};
exports.handler = (event, context, callback) => {
try {
// Inspector.StartAssessmentRun response will look something like:
// {"assessmentRunArn":"arn:aws:inspector:us-west-2:123456789012:target/0-wJ0KWygn/template/0-jRPJqnQh/run/0-Ga1lDjhP"
inspector.startAssessmentRun(params, (error, data) => {
if (error) {
console.log(error, error.stack);
return callback(error);
}
console.log(data);
return callback(null, data);
});
} catch (error) {
console.log('Caught Error: ', error);
callback(error);
}
};
最佳答案
日志显示您的请求在 60 秒后超时。你可以按照这个https://aws.amazon.com/blogs/aws/aws-lambda-update-python-vpc-increased-function-duration-scheduling-and-more/设置最高5分钟如果您的任务大约需要 60 秒并且超时为 60 秒,那么可能有些任务超时了。这就是日志向我建议的内容。否则,发布函数中的一些代码
关于node.js - AWS Lambda 随机超时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44198782/
可以使用 lambda 和函数创建有序对(Lisp 中的缺点),如 Use of lambda for cons/car/cdr definition in SICP 所示。 它也适用于 Python
我正在尝试从另一个调用一个 AWS lambda 并执行 lambda 链接。这样做的理由是 AWS 不提供来自同一个 S3 存储桶的多个触发器。 我创建了一个带有 s3 触发器的 lambda。第一
根据以下源代码,常规 lambda 似乎可以与扩展 lambda 互换。 fun main(args: Array) { val numbers = listOf(1, 2, 3) f
A Tutorial Introduction to the Lambda Calculus 本文介绍乘法函数 The multiplication of two numbers x and y ca
我想弄清楚如何为下面的表达式绘制语法树。首先,这究竟是如何表现的?看样子是以1和2为参数,如果n是 0,它只会返回 m . 另外,有人可以指出解析树的开始,还是一个例子?我一直找不到一个。 最佳答案
在 C++0x 中,我想知道 lambda 函数的类型是什么。具体来说: #include type1 foo(int x){ return [x](int y)->int{return x * y
我在其中一个职位发布中看到了这个问题,它询问什么是 lambda 函数以及它与高阶函数的关系。我已经知道如何使用 lambda 函数,但不太自信地解释它,所以我做了一点谷歌搜索,发现了这个:What
很难说出这里问的是什么。这个问题是含糊的、模糊的、不完整的、过于宽泛的或修辞性的,无法以目前的形式得到合理的回答。如需帮助澄清此问题以便重新打开它,visit the help center 。 已关
Evaluate (((lambda(x y) (lambda (x) (* x y))) 5 6) 10) in Scheme. 我不知道实际上该怎么做! ((lambda (x y) (+ x x
我正在处理 MyCustomType 的实例集合如下: fun runAll(vararg commands: MyCustomType){ commands.forEach { it.myM
Brian 在他对问题 "Are side effects a good thing?" 的论证中的前提很有趣: computers are von-Neumann machines that are
在 Common Lisp 中,如果我希望两个函数共享状态,我将按如下方式执行 let over lambda: (let ((state 1)) (defun inc-state () (in
Evaluate (((lambda(x y) (lambda (x) (* x y))) 5 6) 10) in Scheme. 我不知道实际上该怎么做! ((lambda (x y) (+ x x
作为lambda calculus wiki说: There are several possible ways to define the natural numbers in lambda cal
我有一个数据类,我需要初始化一些 List .我需要获取 JsonArray 的值(我使用的是 Gson)。 我做了这个函数: private fun arrayToList(data: JsonAr
((lambda () )) 的方案中是否有简写 例如,代替 ((lambda () (define x 1) (display x))) 我希望能够做类似的事情 (empty-lam
我在 Java library 中有以下方法: public void setColumnComparator(final int columnIndex, final Comparator colu
我正在研究一个函数来计算国际象棋游戏中棋子的有效移动。 white-pawn-move 函数有效。当我试图将其概括为任一玩家的棋子 (pawn-move) 时,我遇到了非法函数调用。我已经在 repl
考虑这段代码(在 GCC 和 MSVC 上编译): int main() { auto foo = [](auto p){ typedef decltype(p) p_t;
我正在阅读一个在 lambda 内部使用 lambda 的片段,然后我想通过创建一个虚拟函数来测试它,该函数从文件中读取然后返回最大和最小数字。 这是我想出来的 dummy = lambda path
我是一名优秀的程序员,十分优秀!