AWSラムダ関数をスケジュールする方法


効率的かつ簡単にタスクやコードのピースを自動化することは、生産性を維持したい人のために重要です.私は私の作業負荷のスケジューリングの巨大なファンですので、退屈な、反復的なタスクの世話をする必要はありません.Amazon EventBridge(別名CloudWatchイベント)のおかげで、我々は簡単に我々のラムダ関数のルールを作成することができますし、必要なときにそれらをスケジュールします.このブログの記事では、どのように行うかを見てみましょう!

AWSラムダとは何か


AWSラムダはおそらく最も古い、最も人気のないServerlessサービスです.プロビジョニングやメンテナンスの面倒を見るのではなく、コードに集中することができます.それはそのような従来の計算サービスのために必要性を取り除き、したがって、また、複雑さおよび操作コストを減らす.ラムダ関数の制限がありますが、孤立したタスクの小さな部分に最適です.彼らはServerlessウェブサイト、リアルタイムのデータ変換、Web認証、チャットボット、IOTのワークロードと全体の多くのために大きいです.私がそれをするのが好きであるものの1つは、スケジュール私の仕事です.

ラムダ関数をスケジュールする方法?


' Serverless 'という言葉はすでに、サーバーがないと言う!まあ、実際にあるが、それを管理する必要はありません.これが意味するのは、あなたが実際にあなたのラムダ関数を呼び出す/使用する時間を支払うだけであるということです.それはあなたのマシンを使用していない場合でも、常に支払う伝統的なコンピューティングサービスと比較して革命的です!これはスケジューリングをさらに魅力的にします.そのやり方を見てみましょう.次のようにします.
  • ラムダ関数
  • を作成する
    Amazon EventBridge の規則を設定する
  • は、N秒(分か時間など)ごとに実行されている我々の機能を見ます
  • ほとんど簡単すぎる右の音?それは間違いなくセットアップに超簡単です!

    1ラムダ関数の作成


    簡単なラムダ関数を作成する最も速い方法は、AWSコンソールを通してこれを行うことです.あなたがより複雑なアプリケーションを持っているとき、私はServerless Frameworkに移動します.AWSを使用する最初のルールは、どの地域にチェック!私はロンドンを使用していますが、ラムダがサポートされているいずれかを選択することができます.

    次のステップは、関数を作成し、名前を与えることです.私は、私の' Schedulelambdafunction 'を呼び出しました、しかし、あなたはこの何かを呼び出すことができます(1).この後、ランタイム( 2 )を選択する必要があります.私は最もJavaScriptに慣れているので、私はnodejsを使用していますが、runTimesのいずれかを選択することができます.最後に必要なのは、ラムダ関数( 3 )を実行するための正しい権限を持っている実行ロールを作成または選択することです.私は新しいものを作るつもりです.


    関数が作成されたときは、コードエディターでコードを記述できます.このチュートリアルでは、コードが何をするか非常に重要ではありませんので、現在の日付と時刻をログに記録します.次のコードをコピーすることができます.
    exports.handler = async (event) => {
    const response = {
            statusCode: 200,
            body: JSON.stringify(`This fuction ran at ${new Date(Date.now())}`),
    };
            console.log(response)
            return response;
    };
    

    あなたがコードを編集したときに保存ヒットを確認してください!

    アマゾンでのルールの設定


    一度、関数が作成され、EventBridgeでルールを設定する必要があるコードを変更しました.コンソールに戻って、' Amazon Eventbridge 'に移動します.また、CloudWatch 'イベント'でラムダ関数をスケジューリングするのと全く同じプロセスを行うことができますが、最も簡単なことはEventBridgeでこれを行うことです.フードの下で、これらの2つのサービスは、全く同じAPIを使用します.主な違いは、EventBridgeを使用すると、サードパーティ製のSaaSアプリケーションなどのZendesk、DataDogとShopifyを統合することができます.

    これらの規則の設定はかなり簡単です.ルール(1)を作成し、パターンを定義し、イベントバスを選択する(2)ターゲット(ラムダ関数)(3)を割り当てる必要があります.あなたは人間の読み込み可能な形式を使用するかcronを使用していずれかを実行するスケジュールを設定できます.cronはあなたに多くの柔軟性を与えます、そして、cron式が実際に書かれる方法を学ぶ必要はありません.あなた自身のスケジュール式を構成して、AWSコンソールに彼らをコピーするために、Crontab.guruに頭を向けてください.このチュートリアルでは、1分ごとにイベントを実行することを選択します.

    必要に応じてスケジュールを説明し、いくつかのタグを追加できます.ヒット'作成'後、あなたのスケジュールラムダ関数が作成されている!かなり簡単右?

    3 .関数の実行が成功したかどうかを調べる


    今、すべてのハードワークが行われており、あなたの機能の結果を表示するCloudWatchログに向かうことができます.この関数は毎分実行されます.

    結論として


    このブログ記事では、非常にシンプルなラムダ関数を作成し、スケジュールします.これは実際にのみ現在の日付と時刻を記録します.ないスーパーエキサイティング.しかし、あなたはそんなに多くを行うことができます!ラムダ関数のコンソールに戻ると、トリガと目的地がたくさんあることがわかります.たとえば、Webサイトから情報を抽出し、ロードしてS 3バケットで結果を保存するためにいくつかのWebを行うことができます.別のユースケースは、一定時間で何かをつぶやきツイッターボットを作成することです.多くのオプションがあります、そして、私はあなたが予定されたラムダで何をするかについて理解するのに本当に熱心です.以下のコメントで知っているか、私を殴ってください!