2016-03-21 9 views
12

私はこの単純な私はAWSラムダ経由nodejsで実行しようとしているインスタンス機能について説明します:AWSラムダは、インスタンスの時間を記述して

var AWS = require('aws-sdk'); 
AWS.config.region = 'us-east-1'; 

exports.handler = function(event, context) { 
    console.log("\n\nLoading handler\n\n"); 
    var ec2 = new AWS.EC2(); 
    ec2.describeInstances(function(err, data) { 
     console.log("\nIn describe instances:\n"); 
     if (err) { 
     console.log(err, err.stack); 
     context.done(null, 'Function Finished from error!'); // an error occurred 
     }else { 
     console.log("\n\n" + data + "\n\n"); 
     context.done(null, 'Function Finished with data!'); // successful response 
     } 
    }); 
}; 

これは私のCloudWatchの中のみ出力がこれですすべてのエラーを返しませんが:

2016-03-21T17:01:59.085Z xxxxxxx-xx.... Task timed out after 3.00 seconds 

誰かが何らかの問題が考えられますか?

+1

ラムダ関数のVPCアクセスを有効にしましたか? –

+0

@ MarkBはいVPC、サブネット、およびセキュリティグループを選択しました – Tomas

+0

タイムアウトを長くするとタイムアウトになりますか? –

答えて

0

このチェック:あなたがVPC内にある場合、あなたはもうインターネットにアクセスすることはできませんhttps://medium.com/@philippholly/aws-lambda-enable-outgoing-internet-access-within-vpc-8dd250e11e12#.2sdn5oyd1

を!

ラムダでインターネットにアクセスできるようにNATを設定する必要があります。

+2

リンクのみの回答はしないでください。答えの本文には、常に(最小限の)必要なステップを含める必要があります。リンクが下がり、答えが無意味になります。だから、必要なステップを引用して、クレジットが支払うべき場所にクレジットを与えてください。 –

2

実行の役割は、EC2の権限を持っており、使用してみていることを確認してください:

context.done()

+0

このアプローチについて詳しく説明できるソースはありますか? – Doug

9

context.fail()またはcontext.succeed()

を私も同じ問題に直面していました。私は、ラムダ(タイムアウトを増加 - - >設定 - >詳細設定)を3秒から5秒に変更すると正常に動作しました。

+0

もう1つの方法は、メモリの設定を増やし、タイムアウト時間を30秒に設定することです。テストを実行すると、必要な時間が表示されます。 –

関連する問題