4

私はAWSサーバレスアプリケーションで作業しています。私はAWSを初めて使用していますので、この質問の誤解を修正してください。 RDSでホストされているSQLデータベースに対して基本的なCRUD操作を実行する約30のラムダ関数があります。 EntityFramework Coreを使用してデータベースを作成しました。これは、データベースを使用するために、ラムダ関数がそれぞれEF接続文字列にアクセスする必要があることを意味します。私は暗号化された環境変数に入れるためにメモリに接続文字列を残したくない(それには平文のパスワードが含まれています)。環境変数を複数のラムダ関数に簡単に追加する方法は?

これを行う方法を理解する唯一の方法は、暗号化された環境変数をラムダ管理コンソールのGUIを通じてすべてのラムダ関数に個別に追加することでした。面倒だったが、うまくいった。私は今では解決策を少し変更しました。ラムダ関数の別のセットが必要です。これらには環境変数が必要です。手動でもう一度やりたくはありません。

私の質問:

は私のラムダ関数の全てがアクセスすることができる暗号化された環境変数(または同様のもの)を追加する簡単な方法はありますか?それらを一括して追加する方法はありますか?私が使用できるより高いレベルの変数?

Amazonのドキュメント(here for example)で情報を検索しようとしましたが、ほとんど成功しませんでした。

答えて

2

ラムダは、それが必要と、それは責任を負いませんことを、環境変数を得ることについてだけ心配です環境変数を一元的に管理します。

実行する必要があるのは、展開プロセスで環境変数を処理することです。

どのように現在30ラムダ関数を展開していますか?

CodeBuildを使用する場合は、重要な環境変数を一元的に保存および管理できるAWS EC2 Parameter Storeにアクセスできます。

他のCI/CDツールには、環境変数を集中管理する独自の方法もあります。

更新

あなたは、プログラムAWS EC2 Parameter Storeを使用することができます。これは、起動時にラムダ関数内から格納された環境変数を取得できるため、デプロイメント時にこれを行う必要がないことを意味します。

デプロイメント時にそれを行うのは、ユースケースで可能な場合はさらに優れています。

+0

私はVisual Studio用のAWSツールキットを使用しています。デプロイウィザードが組み込まれています.CodeBuildを調査します。 – SBaker

0

AWSコンソールでConnectionStringを追加し、設定ファイルでプロダクション接続文字列を使用しないことをお勧めします。 AWSコンソールにログインし、ラムダ関数に行き、接続文字列を環境変数として追加します。 PS。あなたが構文に苦労する場合に備えて。あなたのJSONの設定ファイルは次のようになります場合は、次の接続文字列を設定するには

{ 
    "Settings": 
    { 
     "ConnectionString":"", 
     "SomethingElse" 
    } 
} 

使用この構文:

Settings__ConnectionString

+0

お返事ありがとうございます。私はすでにこれをやっています。私の質問:私は400ラムダ機能を持っていたと言う。各機能に1つずつ、400の環境変数を追加する必要がありますか?それは年を取るだろう。簡単な方法がありますか? – SBaker

+0

@SBaker私は設定を一元管理する方法がないと思う。私もこのソリューションを探していました。 – OlegI

2

私はあなたの問題に対処するための解決策として、これを解決策と呼んでいません。 環境変数を設定し、S3バケットに格納することができます。 それぞれのラムダ内でS3クライアントを使用すると、あなたが興味のある変数を読むことができます。 これが役立つことを願っています。

関連する問題