初心者向け『チュートリアル: スケジュールされたイベントでの AWS Lambda の使用』をやってみた

2019.09.20

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

概要

大阪オフィスのちゃだいんです。

手を動かして学ぶために、公式ドキュメントのチュートリアルをやってみました。

Lambdaファンクション(関数)の更新をしたくてやってみました。

チュートリアル: スケジュールされたイベントでの AWS Lambda の使用 - AWS Lambda

  • [lambda-canary] 設計図を使用して Lambda 関数を作成します。毎分ごとに実行されるように Lambda 関数を設定します。関数がエラーを帰す場合、AWS Lambda が CloudWatch にエラーメトリクスを記録することに注意してください。

  • Lambda 関数の Errors メトリクスに CloudWatch アラームを設定して、AWS Lambda が CloudWatch にエラーメトリクスを送信すると、Amazon SNS トピックにメッセージを投稿するようにします。Amazon SNS トピックに、電子メール通知を受け取るようにサブスクライブします。

前提条件

AWS CLIが使用できる環境で行ってます。

早速やってみた

1.Lambda関数を作成する

  • 今回のチュートリアルでは、設計図(Blueprint)の[lambda-canary]を使用します。

  • Create FunctionからBlueprintを選び、Lambda-canaryを探して選択します。

  • 設定画面では、ドキュメントから引用している以下項目を埋めていきます。 (一部項目名などが変更しているので注意ください)
  • Name (名前) – lambda-canary。
  • [ロール] – [Create a new role from one or more templates (1 つ以上のテンプレートから新しいロールを作成)]。
  • ロール名 – lambda-apigateway-role。
  • [ポリシーテンプレート] – [シンプルなマイクロハーネスのアクセス権限]。
  • [ルール] – [Create a new rule (新しいルールの作成)]。
  • [Rule name (ルール名)] – CheckWebsiteScheduledEvent。
  • [Rule description (ルールの説明)] – CheckWebsiteScheduledEvent trigger。
  • [スケジュール式] – rate(1 minute)。
  • [有効] – True (オン)。 環境変数
  • [site (サイト)] – https://docs.aws.amazon.com/lambda/latest/dg/welcome.html
  • [expected (予定)] – What Is AWS Lambda?
  • Create functionで作成完了です。

2.Lambda関数をテストする

  • Lambdaコンソールを開いて、[Lambda-canary]を開きます。

  • テストイベントの設定を行い、新しいイベントを作成します。

  • [Test]を実行すると、以下のようにテストが成功したことが表示されます。

  • 詳細を見てみるとCheck passed!の文言を発見しました。

  • 試しに、ファンクションの設定時の環境変数部分で[expected(予定)]にて、What Is AWS Lambda?という文言がありましたが、これをWhat Is AWS Lambda??と?を1つ増やしてみました。

  • それでもう一度テストを行うと、今度はCheck failed!となりました。

3.(脱線)Lambda関数のバージョンを発行し、関数を更新する

  • チュートリアルとしては以上にして、ここからは脱線して別のことを試してみます。

  • 関数を更新するために、バックアップとしてバージョンを発行します。

  • [Lambda-canary]ページ上部の[Actions]から[Publish new version]を選びます。

  • するとVersionのDescriptionを聞かれたのでTestVersion1と入力し発行しました。

  • 以下はVersion発行前のLambdaコンソール画面です。

  • 以下はVersion発行後の発行した新しいVersionを選んだ際の画面です。

※いきなりVersion4になってて驚きますが、これは私がすでに練習で1〜3を試していたので、今回発行分が4となっています。

  • ご覧の通り、発行されたVersionには先ほどアタッチされていたCloudWatch Eventsが無くなっています。

  • LambdaのVersionは発行後変更不可で、いわば関数のスクリーンショットのようなものなので、トリガーは発行されたVersionにではなく、オリジナルの方にアタッチされています。

AWS Lambda 関数のバージョニングとエイリアス - AWS Lambda

  • この状態でオリジナルの方を変更したとしても、すぐ更新前に戻りたいとなれば発行したVersionに戻ることができます。

  • 具体的には、CloudWatch EventsのTargetがデフォルトでは最新の$Latest(オリジナルの方)に向くようになっていますが、これをVersion4を選んであげればOKです。

感想

今回は、Lambda関数のVersion機能を使用して、関数のバックアップが取れることがわかりました。今回はVersion発行に関連した機能である、Aliasを使用しませんでしたが、またの機会で使用してみたいと思います。

どなたかの参考になれば幸いです。それではまた、大阪オフィスのちゃだいんでした。