无法在AWS lambda

无法在AWS lambda

问题描述:

中设置retryDelayOptions我想设置customBackOff函数来跟踪我的Kinesis lambda函数。 下面是一段代码片段。无法在AWS lambda

var AWS = require('aws-sdk'); 

AWS.config.update({ 
    retryDelayOptions: { 
    customBackoff: function(retryCount) { 
     console.info('Within Retry.. ' + retryCount); 
     return 100; 
    } 
    } 
}); 

根据aws文档Lambda服务支持customBackoffFuction。

链接

AWS lambda class

AWS config class

在AWS-SDK源代码

我没有看到retryDealayOptions属性。你可以请建议我在lambda函数中设置重试策略时忽略了这里的任何内容。

AWS开发工具包无法设置此属性。 下面的代码返回retryDelayOption关键未定义的值,缺少Config.js

console.log(AWS.config.retryDelayOption); 

我觉得retryDelayOption是JavaScript的SDK中的新功能,在[email protected](2016年2月11日)增加,但尚未在Lambda中默认部署。从快速检查实验中,Lambda的[email protected](2016年1月22日)。

如果Lambda更新到2.2.35,可能需要一个月左右的时间,您将不得不捆绑并上传一个更新的SDK与Lambda一起工作。

  1. 你缺少s
    console.log(AWS.config.retryDelayOptions);

AWS lambda class用于就像你在AWS控制台做管理您的lambda表达式。你也可以用它来运行这样的lambda。但我认为这不是你想做什么。 您可能试图在您的Lambda内部向DynamoDB写入内容,并且您的customBackoff未触发。
AWS config class
Note: This works with all services except DynamoDB.
因为他们hardcoded retry logic for DynamoDB

在这种情况下,一般建议将使用maxRetries您DynamoDB构造某种原因。

var dynamoDB = new AWS.DynamoDB({maxRetries: 8}); 

我发现maxRetries: 8最适合我的lambda表达式。为所有重试提供关于7 sec的信息。这完全适合我的10 sec lambda超时