A route target (typically an Integration) must be defined for route XXXXX with key $disconnect というエラーへの対処法

現象

AWSのAPI GatewayでWebSocket APIをデプロイしようとすると次のようなエラーに見舞われ、デプロイが失敗した。

原因

エラー文を訳すと

「$disconnectキーで指定されるルートのターゲットが定義されていません」

となる。

$disconnectというルートで何を呼び出すのかが指定されていないので、APIを用意しようがありませんよ、という意味のようだ。

私の場合、$disconnectルートの設定を “Lambda” にしているにも関わらず、どのLambda関数を実行するのかを指定していないことが原因だった。

対処法

ルートの設定画面から$disconnectを選択し、「統合リクエスト」をクリック。

続いて、次のようにきちんとどのLambda関数を実行するのかを指定してあげるとAPIが上手くデプロイできるようになった。

コメントする