0

サーバーレス フレームワークの環境変数に関するベスト プラクティスは何ですか。

python dotenv 環境に関する議論を聞いたことがありますが、python の経験があまりないので、これを設定して使用するためのガイダンスを探しています (例が良いでしょう!)

たとえば、サーバーレス ハンドラー関数で db_arn の環境変数を使用したいと考えています。

db_arn = "ec2-xx-xx-xx-xxx.eu-west-1.compute.amazonaws.com"

def getCustomer(): #db_arn を使用して接続

ハードコードされた文字列ではなく、db_arn を環境変数 (dev、test、prod など) にしたいと考えています。

これを dotenv でどのように行うことができますか?また、これを可能にするためにサーバーレス サービスをどのように編成しますか?

よろしくお願いします!

4

1 に答える 1

-1

次のように、serverless-plugin-write-env-varsプラグインを使用して、で環境変数を定義できますserverless.yml

service: my-service

custom:
   writeEnvVars:
      DB_ARN: "ec2-xx-xx-xx-xxx.eu-west-1.compute.amazonaws.com"

plugins:
   - serverless-plugin-write-env-vars

変数はcustom:およびで定義する必要があることに注意してくださいwriteEnvVars:

プラグインは、.envAWS Lambda へのコードのデプロイ中にファイルを作成します。

コードでは、python-dotenv.envを使用して、ファイルをロードすることで環境変数を読み取ることができます。

import os.path
from dotenv import load_dotenv

dotenv_path = os.path.join(os.path.dirname(__file__), '.env')
load_dotenv(dotenv_path)

db_arn = os.environ.get('DB_ARN')

念のため、外部依存関係のデプロイとロードについてサポートが必要な場合は、https://stackoverflow.com/a/39791686/1111215をご覧ください。

于 2016-10-18T08:27:57.590 に答える