LoginSignup
1
0

More than 1 year has passed since last update.

LamdaとCloudWatch Eventsでnode.js 18を定期実行する

Last updated at Posted at 2023-04-05

目的

API連携をしてみたくて何作るかchatGPTと話していたら、
いつの間にか今日はLamdaとCloudWatch Eventsでnode.js 18を定期実行してみることになりました。
AWSとnode.jsはどっちも初めてなので勉強しながら備忘録!

今回やること

今回の目標は以下の2つ。

  1. Lamdaでnode.jsのコードを実行してみる
  2. CloudWatch Eventsで定期実行する

環境

  • windows 10
  • node.js 18
  • リージョン 東京

いざ出陣

AWSアカウントの発行

ここからAWSアカウントを作成します。

英語ですが画面見ながら手順に進めると作成できました。
英語で住所書くときの順番が覚えられないのですが、chatGPTに

「自分の住所」を英語で書きたい。
Address、City、State, Province, or Region、Postal Codeに分けて書いて。

とか聞いて教えてもらいました。神。

LambdaでHello World!

これ見ながらやります。

Lambdaの設定項目は以下の通り

オプション
一から作成
関数名
HelloWorld
ランタイム
Node.js 18.x
アーキテクチャ
x86_64
index.mjs
export const handler = async(event) => {
    // TODO implement
    const response = {
        statusCode: 200,
        body: JSON.stringify('Hello World!'),
    };
    return response;
};

ルールを作成する前に、適当にテストイベントを設定して実行してみたら「Excution results」の「Response」に結果が表示されました。
image.png

CloudWatchで定期実行

ルールを作成 > スケジュールから実行スケジュールを設定します。
スケジュールを選ぶと、「Amazon EventBridge」に飛ばされます。
調べてみたら「Amazon EventBridge」は「CloudWatch Events発展版のサービス」みたいな感じらしいです。
詳しいことは後で。

実行時間を設定する「corn」は最近やったので何かは分かってました。
以下を入力して、日本時間で毎日00:10に設定します。
タイムゾーンは、OSのタイムゾーン設定で決まるようなので気にせず日本時間で入力しました。

cron
corn(10 0 * * ? *)

ターゲットに先ほど作成したLmbda関数が表示されない場合、右上のリージョンが一致しているか確認してください。
僕は、それで困りました...

ルールを設定したら、cronで入力した時間に実行されるはずです。
CloudWatch > ログ > ロググループから、ロググループを選択して実行を確認できます。
「Hello World!」がどこに出るかは分からなかったですが...
多分、出ないんでしょう。終わり!

余談

そういえば、料金のこと考えていませんでした。
以下のサイトで無料枠を確認できます。

無料枠は以下の通りです。

1,000,000 件/月の無料リクエスト
1 か月あたり最大 320 万秒のコンピューティング時間

なんか大丈夫そうですね。
一応、ルールと関数は削除しときます。
次は本来の目的であるAPI連携のコード実行します!

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0