2017-08-23 8 views
2

APIゲートウェイから呼び出されるラムダ関数で、アクションオングーグルパッケージとApiAiAppクラスを使用したいと考えています。すべての配管がうまく動作し、手動で構築された応答を返すことができますが、Node.jsのLambda関数でApiAiAppオブジェクトを使用することをお勧めします。AWS + API Gateway + Lambda + Node.js actions-on-google ApiAiApp

Firebaseを使用して機能を正常に動作させることもできます。

このタイプの開発について私の知らないことを許してください。しかし、検索の方法は私に必要な解決策を与えてくれないようです。

Firebase上のエントリポイントが

exports.myTip = functions.https.onRequest((request, response) => { 

であると私はちょうどApiAiAppコンストラクタに要求+応答を渡すことができますし、ラムダのように、それは

exports.handler = function(event, context, callback) 
ある場合は、すべての甘い

です

ラムダ関数で同じApiAppAppコンストラクタを呼び出すために、イベントをリクエスト+レスポンスに変換するにはどうすればよいですか?

TL:DR - ラムダ関数でactions-on-google ApiAiAppコンストラクタを呼び出すにはどうすればよいですか?

答えて

0

awslabs/aws-serverless-expressを使って、ApiAiAppが期待するExpressのようなリクエスト/レスポンスオブジェクトを作成できたようです。

私は最初に思ったほど役に立つとは思われません。あなたはExpressのような結果/レスポンスを嘲笑するようなことをしたいと思うように思えます。私はこれのためのいくつかのモジュールを見る(lykmapipo/mock-express-response)。

APIゲートウェイインテグレーションに、hereの表示方法を設定することで、リクエストが得られます。あなたの子羊はこのように見えるかもしれません:

const MockExpressResponse = require('mock-express-response'); 
exports.handler = (event, context, callback) => { 
    const response = new MockExpressResponse({ 
    request: event, 
    }); 
    const app = new ApiAiApp({ request: event, response }); 
    // do stuff with app 
    callback(null, response._getString()); 
}; 

Idk、これまでのところあなたのボートを浮かべています。確かにラムダでAPIAiAppやExpressを実行していることはわかりませんが、私の子羊はすべてAPIであり、ユーザーが直面しているわけではありません。

関連する問題