2016-02-26 139 views
0

中設置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); 

回答

1

我覺得retryDelayOption是JavaScript的SDK中的新功能,在[email protected](2016年2月11日)增加,但尚未在Lambda中默認部署。從快速檢查實驗中,Lambda的[email protected](2016年1月22日)。

如果Lambda更新到2.2.35,可能需要一個月左右的時間,您將不得不捆綁並上傳一個更新的SDK與Lambda一起工作。

1
  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超時