私はデータベースに接続するPythonアプリケーションを持っています。ローカルenv(テスト用)やラムダ関数(プロダクション用)で実行されているときは、db資格情報が異なるようにしたいと思います。PythonアプリケーションがAWSラムダ関数内で実行されているかどうかを確認するにはどうすればいいですか?
Pythonアプリケーションから、ラムダ関数の中で実行されていることを検出する方法はありますか?
私はデータベースに接続するPythonアプリケーションを持っています。ローカルenv(テスト用)やラムダ関数(プロダクション用)で実行されているときは、db資格情報が異なるようにしたいと思います。PythonアプリケーションがAWSラムダ関数内で実行されているかどうかを確認するにはどうすればいいですか?
Pythonアプリケーションから、ラムダ関数の中で実行されていることを検出する方法はありますか?
ハンドラ関数内のcontext
オブジェクトの存在を確認する方法はありますか? http://docs.aws.amazon.com/lambda/latest/dg/python-programming-model-handler-types.html
は、ユニットテストのために私は構造を使用:
+ my_function/
+- __init__.py - empty files
+- code/
+- __init__.py
+- lambda_function.py
+- unittest/
+- __init__.py
+- tests.py - from ..code.lambda_function import *
lambda_function.pyに、python -m my_function.unittest.tests
と__name__ == 'my_function.code.lambda_function' をユニットテストを実行しています。
実行中のラムダでは、__name__ == 'lambda_function'です。 python -m my_function.code.lambda_function
で実行すると同じ値が得られるので、常にラッパーが必要です。
this bugのため、AWSラムダファンクション内で実行しているかどうかを確認することができます。
これを使用して、コンテキストに合ったメトリックレポートを正常に実装しました。 すぐにバグを修正しないことを願っています!
これは、ハンドラ関数でのみ機能します。世界的に知ってうれしいです。 – Jason