2

私は初心者のレールプログラマーであり、私はすべてのAWS製品での経験がより少なくなっています。私はラムダを使用してYouTubeのRSSフィードを購読して消費しようとしています。私は私のローカルでホストされたレールのアプリからHTTPartyとうまくサブスクリプション要求を送信することができています:AWSラムダとAPIゲートウェイでRSSフィードを使用する

query = {'hub.mode':'subscribe', 'hub.verify':'sync', 'hub.topic': 'https://www.youtube.com/feeds/videos.xml?channel_id=CHANNELID', 'hub.callback':'API Endpoint for Lambda'} 
subscribe = 'HTTParty.post(https://pubsubhubbub.appspot.com/subscribe, :query=>query) 

、それはGETリクエストとラムダ関数をpingします。私はhub.challenge文字列をエコーバックする必要があることを知っていますが、私はどのようにわからないのですか。ラムダイベントは空ですが、私はそのコンテキストで役に立つものは何も見ませんでした。私は、APIゲートウェイで応答をフォーマットしようとしましたが、どちらもうまくいきませんでした。だから、今私が購読しようとすると、私は「チャレンジミスマッチ」エラーに戻ります。

私はこれを知っています:https://pubsubhubbub.googlecode.come/git/pubsubhubbub-core-0.3.html#subscribingは、私がやったことよりもうまくいっていることを説明し、セクション6.2.1は内訳です。 「hub.challenge」確認トークン文字列を反映するために、AWS Lambda関数またはAPI Gatewayのどちらかを設定するにはどうすればよいですか?

+0

問題のリンクがダウンしています。誰かがこの情報の代替ソースを知っていますか? – rofls

+1

このhttps://pubsubhubbub.github.io/PubSubHubbub/pubsubhubbub-core-0.3.html#subscribing – vulcanluver

答えて

2

APIゲートウェイのパラメータマッピング機能を使用して、受信クエリ文字列のパラメータをラムダ関数に渡すパラメータにマップする必要があります。提供したドキュメントのリンクから、少なくともhub.challengeクエリ文字列パラメータをマップする必要があるようですが、他のパラメータ(hub.mode、hub.topic、およびhub.verify_token)も必要になる場合があります実装している検証ロジック(存在する場合)

最初の手順は、メソッド要求ページでクエリ文字列パラメータを宣言することです。パラメータを宣言したら、統合リクエストページ(APIゲートウェイが呼び出すラムダ関数を指定する場所)を開き、 "+"アイコンを使用して新しいテンプレートを追加します。テンプレートでは、コンテンツタイプ(application/json)を指定し、次にLambdaに送信するボディを指定する必要があります。 params()関数を使用して、クエリ文字列とヘッダーパラメータの両方を読み取ることができます。その入力マッピングフィールドでは、AWS Lambdaに投稿されるイベント本文を作成しています。例:{ "挑戦": "$ input.params( 'hub.challenge')"}

Documentation for mapping query string parameters

+0

ありがとうございます! – vulcanluver

関連する問題