はじめに
こんにちは BFT名古屋支店のマカビです!
CloudWatchにわざとエラーログを出力する方法を考えたのでご紹介します。
どのサービスでエラーを出すか?
方法を考えるにあたって、どのサービスを使用したら一番よいか考えました。
その結果、選ばれたのはAWS Lambdaでした。
サーバを用意する必要がない、実行したときだけに生じる課金制度という面で、一番扱いやすいのかなと思います。
Lambdaについて
ランタイムはPython2.7を使用します。
現在、利用可能なバージョンは 2.7 / 3.6 / 3.7 / 3.8となります。(2021年5月時点)
また、利用するPython2.7ランタイムは2021年7月15日でサポート終了します。
ランタイムサポートポリシー ‐ AWS Lambda
実際のコード
CloudWatchに [ERROR] を出力できるようなコードを考えます。
Pythonはおろかコーディングも初心者なので、すごく簡単なものにしました。
import logging logger = logging.getLogger() staff_id = 4 def lambda_handler(event, context): try: name = {1:'Tanaka', 2:'Suzuki', 3:'Kimura'} print(name[staff_id]) except: logger.error("ERROR: No such staff_id")
「staff_id」を 4 と決めていますが、ディクショナリ(name)内には 4 を持つデータがないため、必ず例外処理の方に流れるものとなっています。
例外処理では、 ERROR レベルのメッセージを記録するようになっているので、目的を達成できます。
まとめ
わざとエラーログを出力させる方法をご紹介しました。
コードに関しては、改善できる余地があると思いますが、一旦はこれでよいとします。