AWS Lambdaサービスの利用
AWSのサービスの一つであるLambdaを使用し、プログラムを実行しました。
今回もDocker imageであるtomomano/labcのhandsonフォルダ中のファイルを利用させていただきました。
スタックのデプロイ
まず、handsonフォルダ内に用意されたファイルを利用するために、以下のよにプロジェクトのディレクトリに移動しました。
$ cd handson/serverless/lambda
次にvenvを用いて、Pythonの依存ライブラリをインストールしました。
$ python3 -m venv .env $ source .env/bin/activate $ pip install -r requirement.txt
最後にデプロイを実行しました。
$ cdk deploy
デプロイに成功すると以下のような出力を得ることができます。
この画像の"SimpleLambda.FunctionName=" 以降の文字列は次からのコマンド入力に必要です。
また、AWSコンソールのLambdaのページに行くと以下のように関数が追加されているのを確認することができました。
このページでは今回用いるプログラムも確認することができます。
Lambda関数の実行
Lambda関数を実行するには以下のコマンドよりおこなうことができます。
コマンド内には先をどターミナル上に出力された文字列が必要です。
$ python invoke_one.py <SimpleLambda.FunctionName>
出力結果は以下のようになりました。
このコマンドは一つの関数を実行したものですが、Lambdaは同時に複数のタスクを処理することが可能です。
以下のコマンドより同時に100個のタスクを命令することができます。
$ python invoke_many.py <SimpleLambda.FunctionName> 100
ターミナル上では以下のように出力されました。
また、コンソール上では以下のような結果を得ることができました。
上の画像より、同時に100個のタスクを処理していることが確認できます。
続けて、以下のコマンドで同時に1000個のタスクを命令しました。
$ python invoke_many.py <SimpleLambda.FunctionName> 1000
コンソール上の結果は以下のようになりました。
上の画像のように、同時に823個、合計で1000個のタスクを処理することができました。
スタックの削除
スタックの削除は以下のコマンドより行うことができます。
$ cdk destroy