[AWS] Lambdaでpost_to_connectionを呼び出すとタイムアウトしてしまうときの対処法

使用言語はPython3.8

boto3のpost_to_connectionメソッドを呼び出す箇所で頻繁にタイムアウトするようになり、ちょっとハマった。

agma = boto3.client('apigatewaymanagementapi', endpoint_url=<エンドポイントURL>)
_ = agma.post_to_connection(ConnectionId=<WebSocket接続の識別ID>, Data=<送りたいデータ>)

post_to_connectionメソッドを使う前にそのclientインスタンスを生成する必要があるが、

このときにエンドポイントURLを確実に指定しておかないと

post_to_connectionメソッド呼出でタイムアウトしてしまうらしい。

LambdaからLambdaを呼び出すなどしてこの辺りがおろそかになってしまっていたけど、

エンドポイントURLをきちんと指定するようにしたらちゃんと通信して処理を正常終了してくれるようになった。

めでたしめでたし。

参考

https://stackoverflow.com/questions/62043874/lambda-times-out-when-calling-post-to-connection

コメントする