概要
AWS Lambdaを使ってcronのようにジョブを実行する方法をご紹介します。
以下の記事ではSQSトリガーを用いることで繰り返し実行するジョブの作成方法をご紹介しましたが、繰り返しの間隔は最大で15分という制約がありました。本Tipsにより、それ以上の間隔等、cronで表現できる範囲であれば、自由に繰り返しのルールを設定できます。
SQSトリガーを使って15分ごとに繰り返し実行する運用ジョブを作成する
設定例
- 任意の内容でHTTPトリガーの運用ジョブを作成します(手順は省略します)。
- AWS Lambdaで、1. で作成した運用ジョブを実行するLambdaファンクションを作成します。
以下にRubyを用いた簡単なサンプル例を示します(URLやAPIキー等は読み替えて頂ますようお願いします)。
require 'json'
require 'net/http'
def lambda_handler(event:, context:)
url = URI.parse("https://manager.cloudautomator.com/trigger/xxxxxxxxxx")
header = { Authorization: "CAAuth xxxxxxxxx" }
res = Net::HTTP.post(url, "",header)
{ statusCode: 200, body: JSON.generate('Success') }
end - 作成しているLambdaファンクションのイベントトリガーに「CloudWatch Events」を追加し、スケジュール式のルールを設定します。このときのスケジュール式に運用ジョブを実行したい間隔を設定するようにします。例えば、以下のように設定すると20分毎の設定となります。
rate(20 minutes)
- Lambdaファンクションを保存し、20分ごとに運用ジョブが実行されることを確認します。
以上になります。