私はserverlessフレームワークの助けを借りてawsプロジェクトを開始しましたが、ラムダ関数の実行に関する質問が1つあります。サーバレスフレームワークコマンドラインで入力パラメータ付きラムダ関数を実行
ラムダ関数を入力パラメータで実行するにはどうすればよいですか?私はアマゾンコンソール、ラムダテスト設定 - >テストイベントを通じてそれを行うことができます。しかし、私はserverlessで対応する関数を見つけることができません、誰も知っていますか?ラムダの部分については
おかげ
私はserverlessフレームワークの助けを借りてawsプロジェクトを開始しましたが、ラムダ関数の実行に関する質問が1つあります。サーバレスフレームワークコマンドラインで入力パラメータ付きラムダ関数を実行
ラムダ関数を入力パラメータで実行するにはどうすればよいですか?私はアマゾンコンソール、ラムダテスト設定 - >テストイベントを通じてそれを行うことができます。しかし、私はserverlessで対応する関数を見つけることができません、誰も知っていますか?ラムダの部分については
おかげ
あなたはevent.json
ファイルを使用することができます
{
"principalId": "1234",
"inputVar": "foo"
}
をしてからsls function run
を実行します。
docsによると、ステージを指定しないと関数がローカルで実行されます。ステージを指定すると、関数は対応するステージでデプロイされたコードを実行します。しかしドキュメントは時代遅れと思われる、あなたも同じよう-d
フラグを渡す必要があります:このコマンドは、ここでは、ローカルevent.json
ファイル
からのパラメータで、あなたの展開ラムダ関数を呼び出します
sls function run myFunction -s dev -d
機能の実行オプションについてsource codeです。 APIG統合のための
はdocumentationでいくつかのサンプルがあります。
テンプレートを使用したくない場合は、s-function.json
に関連するコードをエンドポイントの説明の中に挿入するだけです。
"endpoints": [
...
"requestTemplates": {
"application/json": {
"principalId": "$context.authorizer.principalId",
"apiKey": "$context.identity.apiKey",
"inputVar": "$input.json('inputVar')"
}
}
...
]
構文は、API Gateway Accessing the $input Variable docに記載されているとおりです。
ありがとうAlper、それは今私のために働く。あなたがmetioned-dオプションを使用している間に、ラムダ関数とエンドポイント(apiゲートウェイ)をアマゾンにデプロイせずにアップロードするだけです(新しいバージョンを毎回作成せずに)、時にはamazon 。 –
afaik no。自動バージョン管理は常に起動されます。 pruneプラグインを使用して古いバージョンを削除することができます。 –
関数 '$ serverless deploy function -f functionName'を使用して1つをデプロイできます。プロジェクト全体を展開するよりもはるかに高速です。 CloudFrontの更新をスキップします。ここにいくつかのサンプルコード - [http://serverless-stack.com/chapters/deploy-the-apis.html](http://serverless-stack.com/chapters/deploy-the-apis.html?utm_source= ) – Frank