仕事でAWS+WebSocketを使うことになりそうだったので予習していたが、AWSのサンプルがそもそもちゃんと動かなかった。
何故かメッセージ送信しても{"message": "Forbidden", ...}
で返ってくるため途方に暮れていたが、よく確認するとGitHubのほうのIssuesに全く同じ内容のIssueがあった。
masterブランチは修正されているがAWSのほうからデプロイするとその修正が反映されていないらしい。
恐らくリポジトリをローカルにダウンロードしてデプロイしなおせばちゃんと動くのだろうが、面倒だったので直接修正した。
コメントにある通りsendMessageのLambdaのRuntimeをNode.js 10に変更し、コード内のrequire('aws-sdk/clients/apigatewaymanagementapi');
をコメントアウトするとちゃんとメッセージ送信できるようになった。