0

サンプルAWSラムダ関数を作成し、この関数をAWS APIと統合しました。awsラムダ関数の文字列値にAWS APIリクエストでアクセスできない

リクエスト統合マッピングが以下のようになっているAPIと選択されたアプリケーション/ JSONのポストメソッドを作成しました。

{ 
    'songTitle':"$input.params('songTitle')" 
} 

APIにリクエストしてsongTitleをパラメータ(application/JSON)として送信しています。

しかし、私は$ input.params()を空として受け取っています。

私はこれに新しいので、正しい方法は何もわかりません。

私はこれがあなたの問題であるかどうかわからないんだけど、単一引用符は、JSONで二重引用符と同じではありませんこれらのparamsに

+0

'{ 'songTitle': 'いくつかのランダムな曲のタイトル' }' と 'event.songTitle'を呼び出すことで曲のタイトルを得ることができるでしょう –

+0

@DylanLaw私は同じことを試みた。 event.songTitleは空を返します。 – Spartan

+0

ラムダ関数をどのように呼び出すことができますか? –

答えて

0

にアクセスすることを案内してください。 $文字でエスケープされていないマッピングテンプレート内のものは、そのまま実際のペイロードに書き込まれます。

は次のようになります。

{ 
    "songTitle":"$input.params('songTitle')" 
} 

編集:問題が解決しない場合は、また、アプリケーション/ JSONとしてリクエストにContent-Typeヘッダを送信することでテストしてください。 Content-Typeをまったく送信しないと、デフォルトでapplication/jsonマッピングテンプレートになります。 (リクエスト統合マッピング用) 構文をリクエストヘッダ部からの入力パラメータを読み出す場合

+0

解決策が見つかりましたが、今日ここに投稿しています。要求の本体部分から値を読み取るときは、別の構文を使用する必要があります。 $ input.path( '$。key_from_request_body');を使用してください。 – Spartan

0

{ 
    'songTitle':"$input.params('songTitle')" 
} 

我々は我々のように書くべき要求本体部からパラメータを読みたい場合は

{ 
    'songTitle':"$input.path('$.songTitle')"`enter code here` 
} 
関連する問題