BFT名古屋 TECH BLOG

日々の業務で得た知識を所属するエンジニアたちがアウトプットしていきます。

【AWS】CloudWatchにわざとエラーログを出す方法

はじめに

こんにちは 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 レベルのメッセージを記録するようになっているので、目的を達成できます。

まとめ

わざとエラーログを出力させる方法をご紹介しました。
コードに関しては、改善できる余地があると思いますが、一旦はこれでよいとします。