2017-02-05 12 views
1

私はAWS Lambdaを使用しており、エイリアス機能を使用して、複数のコードプロモーション段階(たとえば、dev、qa、prodなど)を指し示すことができます。別名をステージと同じ名前に設定しました。これらの関数のほとんどは、各ステージで異なるインスタンスを持つS3またはSNSからトリガーされます。Amazon Lambda - エイリアス固有の環境変数

関数が特定の情報を取得できるように、エイリアスベースの環境変数を設定する方法を教えてください。ベース関数(通常はdev)の環境設定は、デプロイメントでは動作しないすべてのエイリアスに引き継がれます。

私はAPIゲートウェイでステージ変数を使用する方法を知っていますが、現在の使用方法はゲートウェイ経由ではありません。

任意の助けが理解されるであろう、Thxを

答えて

3

は、私はあなたがしようとしているものを達成するための方法があるとは思いません。ラムダ関数の3つのバージョンをそれぞれ正しい環境変数で公開し、各エイリアスが正しいバージョンの関数を指すようにする必要があります。

エイリアスをポイントする前に、説明フィールドを使用してバージョンを説明し、変更をよりわかりやすくすることができます。

+1

返信いただきありがとうございます。ちょうど私がここで何かを逃していないことを確認したかった私はそれをあなたが提案した方法とまったく同じにしていますが、問題はまだオートメーションがないのでコードを同期させておくことです。 AWS Lambda imhoには非常に素晴らしい機能が追加されます。 – psuhas

+1

バージョン管理とエイリアシングラムダに関するAWSのドキュメントでは、環境ごとにエイリアスを持ち、あるものから別のものへ昇格しているものの、環境固有の変数がないため、環境変数を導入する必要がある瞬間、エイリアシングとバージョン管理は完全に分離されます。 – duhseekoh

2

私はまた、しかし、あなたのコードで利用可能なコンテキスト持っている、これは別名のための計画の一部ではない、それは面白い - Context.InvokedFunctionArn

私は考え方は、あなたが、たとえば、呼び出すことだと思うが、S3バケット、および接頭辞TESTまたはDEVまたはPROD(コンテキストに基づいてInvokedFunctionArnあなたがどのエイリアスを知っているか)を持っています。 ARNに基づいたこのコンテキストとセキュリティを使用すると、バケットポリシー/ IAMを使用してテストARNがTEST s3プレフィックスファイルにのみアクセスできるようにすることができます。これにより、環境間のセキュリティが解決されます。

注:私はこのモデルに同意せず、エイリアスに環境変数を入れるべきだと考えています。エイリアスに指定されていない場合、バージョンに含まれるものに置き換えられます。

プレフィックスなどの余分な条件の複雑さは、何度も間違った設定になることがあります。バケットを別にすると、サーバーレスアプリケーションモデルのドキュメントがよりよく見えるようになります。

関連する問題