2017-07-14 105 views
3

我試圖訪問AWS lambda函數中的參數存儲。這是我的代碼,根據該文件的位置:http://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/SSM.htmlAWS參數存儲在lambda函數中的訪問

var ssm = new AWS.SSM({apiVersion: '2014-11-06'}); 
var ssm_params1 = { 
    Name: 'XXXX', /* required */ 
    WithDecryption: true 
}; 

ssm.getParameter(ssm_params1, function(err, data) { 
    if (err) console.log(err, err.stack); // an error occurred 
    else  clientId = data.value; 
}); 

在執行時,我得到的錯誤:

「類型錯誤:ssm.getParameter是不是一個函數」

亞馬遜有沒有這個變化不改變文檔?這個函數是否移動到另一種類型的對象?

+0

我有一個C#拉姆達,我試圖得到一個參數。由於IAM許可,似乎有麻煩。 lambda需要什麼樣的策略來獲取參數值?當它的時候,你在另一個答案評論暗示。例如添加了新的功能 – Anthony

回答

2

這裏的答案是,亞馬遜必須拋棄getParameter()方法,而僅僅維護一個方法getParameter(s)()。但他們沒有更新文件。該方法似乎工作得很好。

+0

的SDK客戶端的API版本不改變,S3仍處於版「2006-03-01」,表示向後兼容,不最後更新。 Lambda不會在最新的sdk版本上運行。在寫這個的時候,它的運行「2.108.0」,而最新的是「2.131.0」。你試圖使用的方法非常多,在sdks中,你很可能碰巧在這個問題發生時不支持它的sdk版本。您也可以選擇自己捆綁SDK。 – polythene

3

請檢查並試用最新版本的SDK。亞馬遜並沒有拋棄getParameter方法而僅僅支持getParameters。事實是,方法是getParameter和getParametersByPath,是新添加的方法。舊版本的SDK不能解決這些方法。

+0

這是由Lambda函數執行的。我使用了文檔中相同的API版本的SSM庫。 –