VPC内のLambdaからSQSに接続できない問題の解法

かなりハマったので記録。

ハマり状況

  • VPCのLambdaからSNSへのメッセージ送信
    (VPCSNSへのエンドポイント作成したので)送信できる。

  • Lambdaからのメッセージ送信先をSQSへ変更
    (VPCにSQSへのエンドポイント作成するも)送信できない

  • VPCのLambdaからSQSへのメッセージ送信
    送信できる

原因

クライアント作成時にエンドポイントの明示的な指定が必要でした。

client = boto3.client('sqs', endpoint_url='https://sqs.ap-northeast-1.amazonaws.com')
client.send_message(...)

最後に

SNSクライアントはエンドポイント指定しなくてもメッセージ送信できたので原因に気づくまで時間がかかってしまいました。