2016-07-31 9 views
2

私は次のようにadminInitiateAuthを呼び出すようにしようとしています:NodeJS LambdaからadminInitiateAuthをどのように呼び出すのですか?

var params = { 
     AuthFlow: 'ADMIN_NO_SRP_AUTH', 
     ClientId: 'xxxxxxxxx', 
     UserPoolId: 'eu-west-1_xxxxxx', 
     AuthParameters: { 
      email: email, 
      password: password 
     } 
    }; 

    var cognitoidentityserviceprovider = new AWS.CognitoIdentityServiceProvider({apiVersion: '2016-04-18'}); 
    cognitoidentityserviceprovider.adminInitiateAuth(params, function(err, data) { 
     if (err) { 
      console.log(err, err.stack); 
     } else { 
      console.log(data); 
     } 
    }); 

をしかし、私は次のエラーを取得しています:

TypeError: cognitoidentityserviceprovider.adminInitiateAuth is not a function

私はここで間違ってやっているものを任意のアイデア? signUpなどの他の関数は、同じ方法で呼び出されたときに機能します。私もこのに見てきた、ラムダ関数のために提供されているNodeJS AWS SDKには、バージョン2.4.9で、あなたが実行することで確認することができますことが表示されます

答えて

5

console.log('SDK Version is ' + AWS.VERSION) 

バージョンadminInitiateAuthでリリースされたのはバージョン2.4.11です。私はAmazonがすぐに自分のラムダマシンを更新することを前提としていますが、その間に、あなたは

npm install aws-sdk 

、その後zipping up your lambda file with the node_modules folderにより手動で新しいSDKを追加追加してみてください。

+0

一時的な修正として、これは動作します - ありがとう!私は公式のフォーラムでこれに注意を引くために投稿しました:https://forums.aws.amazon.com/thread.jspa?messageID=734141򳎽 – RossP

0

前述のように、ラムダコンテナの現在のSDKバージョンは、このAPIに先立っています。解決策は、必要なSDKバージョンをラムダzipファイルにバンドルすることです。

信頼性が重要なアプリケーションでは、すべての依存関係を明示的にバンドルする必要があります。これにより、Lambdaがコンテナ内のAPIを更新するたびに、動作の変更やバグの導入から関数が分離されます。

関連する問題