2017-02-14 6 views
2

私はAWS Lambda関数の初心者です。 Node.jsにaws関数を作成するために、AWS CLIでスクリプトを使用しました。このスクリプトにはconfig.jsonという設定ファイルがあります。ファンクションを作成した後、Lambda AWS Consoleのコードを見ることができます。ここで疑問があります。コードには次の行があります。 var config = require( './ config.json'); したがって、この "./config.json"ファイルは実際に格納されます。ラムダ関数のデプロイメント後にconfig.jsonの内容を編集できますか? ありがとうございます。AWSラムダ関数のライブラリはどこに保存されていますか?

答えて

4

この./config.jsonのファイルは実際に格納されていますか?

Lambdaハンドラ関数と同じディレクトリに格納する必要があります。それらはzipファイルにバンドルされ、AWSにデプロイされる必要があります。そのように展開しなかった場合、そのファイルは現在存在しません。

ラムダ機能が複数のファイルで構成されている場合は、ファイルをバンドルする必要があり、deploy it to AWS as a zip fileをバンドルする必要があります。

外部ライブラリ/ファイルのソースは、AWSラムダウェブコンソールで編集することはできません。ラムダ関数ハンドラのソースは、Webコンソールを介してのみ編集できます。

+0

この場合、config.jsonをローカルで編集してから、その機能を再デプロイする必要があります。私は正しい? – blackjack

+0

はい、この関数を 'config.json'ファイルを含むzip展開パッケージとしてデプロイするとします。 –

1

ファイルは、環境変数LAMBDA_TASK_ROOTで指定されたディレクトリに配置されます。あなたはnodejs経由でprocess.env.LAMBDA_TASK_ROOTと読むことができます。

config.jsonファイルを含めて展開するコードは読み取り専用ですが、サーバー上のファイルを変更する場合は、/tmpの下に変更することができます。注意してください。これらの変更は、ライフサイクル(4m30s〜4hrs)の間、単一のコンテナに対してのみ有効です。 Lambdaはデフォルトで0から100のコンテナの間で自動的にスケールアップします。

グローバル変数も呼び出しごとに保持されるため、config.jsonをグローバル変数に読み込み、その変数を変更すると、それらの変更は、基本となるコンテナのライフサイクル全体にわたって維持されます。これは、例えば呼び出し間で情報をキャッシュする場合に便利です。