Aws-lambda-function-in-python
AWS Lambda – Pythonの関数
この章では、Pythonで簡単なAWS Lambda関数を作成し、詳細に従ってその動作概念を理解します。
AWSでのLambda関数の作成に進む前に、PythonのAWSツールキットサポートが必要です。 この目的のために、以下の手順に従って、添付の対応するスクリーンショットを観察します-
ステップ1
AWSコンソールにログインしてLambda関数を作成し、言語をPythonとして選択します。
ステップ2
次に、[関数を作成]ボタンをクリックして、Pythonで簡単なAWS Lambdaを作成するための詳細を入力します。 このコードは、Pythonを使用してLambdaからメッセージ* Helloを返し、ここに示すように見えます-
ステップ3
次に、変更を保存し、コードをテストして出力を確認します。 UIのテストボタンを使用してAWSコンソールでテストすると、次の出力とログが表示されます。
ステップ4
これで、任意のエディターまたはPython用IDE内でコードを作成できます。 ここでは、コードの記述にVisual Studioコードを使用しています。 後でファイルを圧縮し、AWSコンソールでアップロードする必要があります。
ここでは、コードを圧縮し、AWSコンソールを使用しています。
ステップ5
次に、以下に示すように、*。ZIPファイル*アップロードオプションを選択します-
Pythonのハンドラーの詳細
ハンドラーは、関数の名前が後に続くファイルの名前でなければならないことに注意してください。 上記の場合、ファイル名は hellopython.py で、関数の名前は my_handler; なので、ハンドラーは hellopython.my_handler になります。
アップロードが完了して変更が保存されると、AWS Lambdaコンソールのオンラインエディターにzipファイルの詳細が実際に表示されます。 次に、コードをテストして出力とログを確認します。
さて、次のサンプルコードを使用してLambda関数の詳細を理解しましょう-
def my_handler(event, context):
return "aws lambda in python using zip file"
上記のコードでは、関数名my_handlerには、イベントとコンテキストの2つのパラメーターがあります。
Pythonのコンテキストオブジェクト
Contextオブジェクトは、Lambda関数の名前、ミリ秒単位の残り時間、リクエストID、クラウドウォッチグループ名、タイムアウトの詳細などの詳細を提供します。
コンテキストオブジェクトで利用可能なメソッドと属性は、以下の表に示されています-
Sr.No | Method Name & Description |
---|---|
1 |
get_remaining_time_in_millis() このメソッドは、ラムダ関数が関数を終了するまでの残り時間をミリ秒で示します |
Sr.No | Attribute & Description |
---|---|
1 |
function_name これはawsラムダ関数名を与えます |
2 |
function_version これは、実行するawsラムダ関数のバージョンを提供します |
3 |
invoked_function_arn これにより、ARNの詳細が表示されます。 |
4 |
memory_limit_in_mb これは、ラムダ関数の作成中に追加されたメモリ制限を示しています |
5 |
aws_request_id これにより、awsリクエストIDが得られます。 |
6 |
og_group_name これにより、クラウドウォッチグループの名前が表示されます。 |
7 |
log_stream_name これにより、ログが書き込まれるcloudwatchログストリーム名がわかります。 |
8 |
identity これにより、aws mobile sdkで使用した場合のAmazon Cognito IDプロバイダーに関する詳細が提供されます。 与えられた詳細は次のとおりです-
|
9 |
これは、aws mobile sdkで使用した場合のクライアントアプリケーションの詳細です。 与えられた詳細は次のとおりです-
|
コンテキストの詳細を出力するPythonの実用的な例を見てみましょう。 以下のコードを確認してください-
def my_handler(event, context):
print("Log stream name:", context.log_stream_name)
print("Log group name:", context.log_group_name)
print("Request ID:",context.aws_request_id)
print("Mem. limits(MB):", context.memory_limit_in_mb)
print("Time remaining (MS):", context.get_remaining_time_in_millis())
return "aws lambda in python using zip file"
上記のコードの対応する出力は以下のとおりです-
Pythonを使用したロギング
Pythonを使用して情報を記録するには、使用可能なprintまたはlogger機能を使用できます。 上記のコンテキストの例を使用し、inCloudWatchをチェックして、ログが出力されるかどうかを確認します。 次のコードを観察してください-
def my_handler(event, context):
print("Log stream name:", context.log_stream_name)
print("Log group name:", context.log_group_name)
print("Request ID:",context.aws_request_id)
print("Mem. limits(MB):", context.memory_limit_in_mb)
print("Time remaining (MS):", context.get_remaining_time_in_millis())
return "aws lambda in python using zip file"
CloudWatchでのこのコードの出力は以下のとおりです-
ロガーを使用してログをCloudWatchに出力する方法を理解するには、次の例をご覧ください-
import logging
logger = logging.getLogger()
logger.setLevel(logging.INFO)
def my_handler(event, context):
logger.info('Using logger to print messages to cloudwatch logs')
return "aws lambda in python using zip file"
このための出力は、以下のスクリーンショットに示すようになります-
Python for Lambda関数のエラー処理
このセクションでは、Pythonでエラーを処理する方法を示す実用的な例を見てみましょう。 ここで与えられたコードの一部を観察します-
def error_handler(event, context):
raise Exception('Error Occured!')
ログ表示は、ここの画像に示されているとおりです-