PythonLambdaそのようなファイルまたはディレクトリが見つかりません実行時の問題
そのようなファイルまたはディレクトリが見つからないというエラーを返すラムダ関数があります。
明確にするために、以下の画像はファイル構造がラムダに存在することを示しており、探しているディレクトリが存在することは明らかです。
ラムダ関数の現在のファイル構造
私が受け取っているエラーメッセージ:
[ERROR] FileNotFoundError: [Errno 2] No such file or directory: 'config'
Traceback (most recent call last):
File "/var/task/lambda_function.py", line 23, in lambda_handler
os.chdir("config")
以下はlambda_handlerです:
import os
import json
def lambda_handler(event, context):
print(event)
os.chdir("config")
loginInfo = json.load(open('secrets.json'))
return loginInfo
ディレクトリをconfigに変更する理由は、secrets.jsonファイルにアクセスできるようにするためです。
これが再現するのに十分な詳細であるかどうか私に知らせてください。
回答
Lambdaとして実行することは、開発マシンで実行することと同じではありません。configを読みたい場合は、いくつかのオプションがあります。
- 環境変数
- 設定ファイルをs3にアップグレードし、そこから読み取ります
- AWSパラメータストアを使用して、そこから設定を読み取ります。
ローカルで実行する必要がある場合は、を確認できますaws sam cli
。
https://github.com/awslabs/aws-sam-cli
template.yml
ラムダ関数のセットアップでデフォルトのクラウドフォーメーションを定義する必要があります。
最後に実行するだけです
sam local invoke -e lambda-event.json
私はここに投稿された詳細を無視しています-それらは価値があると確信しています-そしてあなたが秘密を扱っているので、将来の証拠秘密管理ポリシーに投資する価値があると言います。
https://dev.to/dvddpl/where-do-you-keep-credentials-for-your-lambda-functions-5dno
PythonでのAWSSecrets Managerの使用(Lambdaコンソール)