2016-02-08 5 views
5

AWSラムダを定期的に呼び出す方法は、です。具体的には、1分ごとに実行します。? 現在の機能により、Lambdaは5 minute triggerでセットアップできますが、私ははるかに短い時間間隔を探しています。 私は永遠にラムダを実行していると考えるが、それはこの正確なトピックをカバーした2015年にAWS改革のセッションがありました Maximum execution duration per request 300 seconds1分ごとにAWSラムダを定期的に呼び出します。

答えて

3

[前の回答と更新を削除しました] AWS Lambdaでは、1分あたりの頻度CloudWatch Events - Scheduleをトリガーオプションとして提供しています。 enter image description here

3

以降に実行することができないように、あなたがユーチューブにここでそれを見ることができますになります。https://www.youtube.com/watch?v=FhJxTIq81AUラムダとクラウドウォッチを使用して外部依存関係のない1分の頻度を得る方法を示しています。

イベントを呼び出さずに、スケジュールに沿ってAWSラムダ関数を実行する必要がありますか?このセッションでは、 Amazon CloudWatchメトリックとCloudWatchアラーム、Amazon SNS、およびLambda を使用して、Lambdaが毎分トリガーするようにする方法を示します。外部サービスは不要です !ここから他のLambdaジョブを crontabのような形式でスケジュールして、Lambda スケジュールされたタスクに分レベルの解決を与えることができます。セッション中に、ラムダ関数、CloudWatchメトリックとアラーム、 サンプルトリガ、およびタスクを使用して、ゼロからこの機能を構築します( )。

AWSはある時点でこの方法を使用しないで1分間隔を許可すると思われますが、これはあなたを一時的に保持する可能性があります。

+0

私はそれを試して、それが私のために働くかどうかを確認します。ありがとう – blueskin

+0

これについてのコードのレポはhttps://github.com/g-a-d/lambda-cronにあります。 – blueskin

0

botoモジュールを使用すると、ラムダ関数が自身を呼び出すinvoke文を実行できるようになります。以下は60秒ごとに実行されます。もちろん、適切な役割に権限を割り当てるようにしてください。また、あなたの限界に注意してください。

import boto3,time 
def lambda_handler(event, context): 
#do something 
time.sleep(60) 
client = boto3.client('lambda') 
response = client.invoke(FunctionName='YOUR-FUNCTION-NAME')