2017-08-17 29 views
0

APIゲートウェイ経由でAmazonラムダからの応答を返すカスタムスラックコマンドを開発したいと思います。突然、私はAWS APIゲートウェイを使用したカスタムスラックコマンド - 500_service_error

'Darn - that slash command didn't work (error message: `500_service_error` 

経由カールを返さずに任意の電話をかけることができなかったとき、すべてがうまく働いていた、レスポンスのステータスは「200」であると私はまだ正確に私のラムダのJSONレスポンスを受信して​​います。

  • このバグの原因は考えられますか?
  • カスタムアプリケーションをスラック用にデバッグできる方法はありますか?あなたのアプリで問題のような音

おかげ

答えて

1

私はあなたのために彼らの内部ログを確認することができスラックチームと議論してきました:

を「残念ながら、我々は、開発者 ために利用可能なデバッグコンソールを持っていないだけで、まだ」

「Iあなたのスラッシュコマンドのエンドポイントへの接続時に そのスラックが500サーバーエラーを受信して​​確認することができます。残念ながら、私は は本当に私たちの終わり」

から任意のより多くの情報を持っていません

実際の問題は、APIゲートウェイのレベルでフォームからjsonへの呼び出し本体の変換です。スラックは、lamdaのjsonで変換されなければならないフォーム本体を送信しています。ゲートウェイはhttps://gist.github.com/vpasquier/ecded1546c0b736ecf4a5670b4328269 を発行

  • しかし、スラックを送っていた、それは特定のパラメータ文字
  • で、時には破ることができるとの情報に応じて、私は私のAPIを修正するためにAWSテンプレートを更新しました:私はこのスレッドhttps://forums.aws.amazon.com/thread.jspa?messageID=673012&tstart=0#673012次ました

    それはランダムなバグを確認するために、直接API GatewayのCloudWatchのログを有効にする代わりに、フォームのと同じ時間でJSONペイロードを持つように、スラック機能のログを持っているために、将来的に素敵になります:)

    ありがとう

+0

あなたの特定の問題についてSlackサポートチームと協力して解決策を投稿してくれてありがとう。しかし、Slackでデバッグ機能がない場合、現在利用可能な唯一のデバッグオプションは、私の答えで説明した方法であなたのアプリにスラックリクエストをシミュレートすることです。 –

0

。あなたのアプリをテストしたいのであれば、あなたがコマンドを呼び出すときにSlackが送信するPOST要求をシミュレートするだけで済みます。

これは簡単なHTML形式で、またはより高度な使い方が必要な場合はhttps://www.hurl.it/またはpostmanとすることができます。 Hurlはウェブページで、Postmanはデスクトップアプリです。両方とも、任意のURLにカスタムGETリクエストとPOSTリクエストを送信できます。 Postmanは構造化されたテストを可能にするより高度なソリューションです。

スラッシュコマンドのSlackからのPOSTリクエストの例(offical documentatioから)を以下に示します。明らかに、設定に合わせて調整したいと思うでしょう。

token=gIkuvaNzQIHg97ATvDxqgjtO 
team_id=T0001 
team_domain=example 
enterprise_id=E0001 
enterprise_name=Globular%20Construct%20Inc 
channel_id=C2147483705 
channel_name=test 
user_id=U2147483697 
user_name=Steve 
command=/weather 
text=94070 
response_url=https://hooks.slack.com/commands/1234/5678 

あなたの他のポイント。特定の問題について具体的な助けが必要な場合は、コードを投稿する必要があります。

+0

また、カールもうまくいきます:)私は今スラックチームと議論しています。文字列を返すときに動作していました。私は私のアプリ用のSlack設定コンソールでいくつかの点を変更したので、理解した後ですぐに解決の詳細を投稿します。ご協力ありがとうございました。 – Vlad

+0

私の答えは以下の通りです。他の人が必要とする場合に備えて私の質問も編集しました – Vlad

関連する問題