2017-01-28 11 views
5

App Engine Flex環境用のローカルマシンでnodejを開発するときに、環境変数を設定する最も良い方法は何ですか? app.yamlに設定されている場合は、ローカル開発中に設定されません。これを強制する方法はありますか、またはdotenvのようなものを使用して、2つの場所で同じ環境変数を追跡する必要がありますか?App Engineのローカル変数用の環境変数

答えて

0

オプション1:

require('dotenv').config({path: '/custom/project/root/app.yaml'})

オプション2:

.envファイルと同じキーを持つ.yamlファイルが異なる値(ローカルとGAEの両方を維持しますそれぞれ)。 app.yamlを、私は次の行を追加して、私の.envファイルを展開していないことを確認してください。

skip_files : .env

あなたはその後、(「dotenv」)のチェックを追加する必要があります設定()にします。 .envファイルが検出されない場合は、プロセス変数のエラーや上書きはしないでください。

2

機密データ(APIキーなど)はソースコードにコミットするべきではありません。

私の周りの道は、.envファイルをGoogle Storageに保存しています。次に@google-cloud/storageを使用して(prestartフックを使用して)プロダクションでダウンロードし、dotenvを使用して変数をメモリにロードすることができます。 http://gunargessner.com/gcloud-env-vars/


PS:

あなたはここに完全なガイドを見つけることが、私は敏感ではありません任意のデータを格納するためのエイダンの答えのために行くだろう。私は自分で過去に満足してdotenvを使用しました。 同様に、nconfgcloudそのものuses for examplesというパッケージがあります。かなりきれい!

+0

これは素晴らしいです!私が追加する唯一のことは、この行 '' dskey = ds.key(['ENV_VAR'、 'production'])で環境変数 'production'を冗長に宣言するのではなく、' NODE_ENV'変数を使用することです。このようにすると、 'dskey = ds.key([ENV_VAR '、process.env.NODE_ENV])'のようになります。この方法で、2つのキー(開発と生産)だけですべての設定ファイルを置くことができます。 –

+0

ありがとう、@GarrettTacoronte。私は同意しますが、今私はずっと簡単な選択肢を使用する答えを更新しました。あなたはそれをチェックアウトする必要があります! –