2017-07-12 8 views
0

私は現在、AWS Lambda関数用のデプロイヤーの構築に取り組んでいます。AWS Lambda関数のコードをダウンロードせずに別のAWS Lambda関数にコピーすることはできますか?

AWSのバージョンはすべての設定を共有しているので、私はがしたいのように、これは代わりにエイリアスを使用しての我々のコードのさまざまなバージョンである複数の機能(foo_prod、foo_staging、foo_whatever)を有する必要です。

だから私の質問は:コードを再配備する健全な方法があります

1)かどうか。 (IE:Staging to Prod)をデスクトップにダウンロードしてから再アップロードする必要はありません。

2)共有設定ビットが間違っているかどうか、実際のラムダでどのエイリアスが実行されているかをそれぞれの環境ごとに複数の環境変数を作成できるようにすることができるかどうか。

+0

を試してみました)?そこにいくつかの例があります。また、serverless.ymlファイルで環境変数を定義することもできます。 –

+0

問題は、これを自動化したくないということです。少なくともステージングとProdのデプロイを手作業(そして別の場所ではスクリプト化)して、すべてのラムダ機能を完全に制御できるようにしたいということです。 –

答えて

3

ラムダ関数は、コードのダウンロードや再アップロードを伴わないさまざまな方法で展開できます。 SAM(http://docs.aws.amazon.com/lambda/latest/dg/with-s3-example-use-app-spec.html)のようなものを使用する場合は、コードを保持しているS3バケットを指し示すことができます。 CloudFormationをGithubやAWS CodeCommitのようなgitリポジトリにフックして、コミットをリポジトリにプッシュするときに自動的に関数を更新するようにすることもできます。 Severless(https://serverless.com)のような、反復可能で管理しやすい方法で展開を抽象化して自動化できるシステムもあります。

ラムダのバージョンは、コンテキストオブジェクトで使用できます。あなたはARNを見てどのエイリアスが呼び出されたかを知ることができます。 ARNSは、次のような接尾辞として別名を持っています。ここ

arn:aws:lambda:aws-region:acct-id:function:helloworld:PROD  

情報:あなたは、[サーバレスフレームワーク](https://serverless.com/framework/docs/providers/aws/を使用してhttp://docs.aws.amazon.com/lambda/latest/dg/python-context-object.html

+0

[https://sigma.slappforge.com](https://sigma.slappforge.com)はラムダ関連のプロジェクトを管理するのに最適なオンラインIDEです。 –

関連する問題