パイソン
npm
ドッカー
AWS SAM CLI
brew install aws/tap/aws-sam-cli
npm install
このリポジトリには、AWS Lambda をローカルで実行し、CloudFormation テンプレートを使用して AWS にデプロイするために必要なファイルが含まれています。
template.yml
で、環境変数OPENAI_API_KEY
およびOPENAI_MODEL_NAME
の値を指定します。
openai
Python パッケージのローカル Lambda レイヤーを作成します。
pip install -r requirements.txt -t libs/python
Lambda はsam
使用してローカルで実行できます。
sam local start-api
このコマンドはlocalhost:3000
で実行されているサーバーを起動します。コマンド出力は次のようになります。
Mounting GenerateKubernetesTermFunction at http://127.0.0.1:3000/generate [GET]
You can now browse to the above endpoints to invoke your functions. You do not need to restart/reload SAM CLI while working on your functions, changes will be reflected instantly/automatically. If you used sam
build before running local commands, you will need to re-run sam build for the changes to be picked up. You only need to restart SAM CLI if you update your AWS SAM template
2023-07-20 11:58:51 WARNING: This is a development server. Do not use it in a production deployment. Use a production WSGI server instead.
* Running on http://127.0.0.1:3000
2023-07-20 11:58:51 Press CTRL+C to quit
Lambda がlocalhost:3000/generate
経由で呼び出されると、さらにいくつかのログが表示されます。
Invoking lambda.lambda_handler (python3.10)
OpenAILambdaLayer is a local Layer in the template
Local image is up-to-date
Building image.....................
Using local image: samcli/lambda-python:3.10-x86_64-b22538ac72603f4028703c3d1.
Mounting kube-or-fake/lambda as /var/task:ro,delegated, inside runtime container
START RequestId: b1c733b3-8449-421b-ae6a-fe9ac2c86022 Version: $LATEST
END RequestId: b1c733b3-8449-421b-ae6a-fe9ac2c86022
REPORT RequestId: b1c733b3-8449-421b-ae6a-fe9ac2c86022
注: sam
ローカルの docker デーモンと対話できるようにするために、ローカル マシンの資格情報の提供を求められる場合があります。
Lambda コードはlambda/lambda.py
に存在し、 lambda_handler
がハンドラーになります。気軽に探索してみてください!
Lambda Docker イメージは呼び出しごとに構築されるため、Lambda コードを変更するときにsam local start-api
を再実行する必要がないことに注意してください (ただし、 template.yml
への変更には再実行が必要です)。 。
これもsam
使用して行います。
sam build
sam deploy
コマンドの出力に従って、新しい Lambda が作成される場所を確認します。
scripts/words.js
で、 GENERATOR_URL
http://127.0.0.1:3000/generate
(ローカルで実行している場合) またはリモート Lambda URL に変更します。
任意のブラウザでindex.html
開いて、再生を開始してください。正しく設定されている場合は、Lambda の呼び出しが (ローカル ログまたは CloudWatch 経由で) 表示されるはずです。