Akira ee59724093 server.js を3点変更しました:
locale: 'ja-JP' → locale: ''(ローカルPCで成功していた設定)
Content-Length ヘッダーを除去(test_tts.js では送っていなかった、これが差異の一つ)
デバッグログを追加(Amazonへのリクエスト内容とレスポンスをログ出力)
認証問題について

test_tts.js(ローカルで成功)と server.js(サーバーで失敗)を比較した結果、実は使っているCookieは全く同じもの(.env から読み込んでいる)なので、認証情報自体の差は本来ないはずです。

ただし、気になる点が1つあります:

test_tts.js は locale: 'ja-JP' でローカルから成功しているのに、server.js は locale: 'ja-JP' でサーバーから失敗している

これは実は「どこから接続しているか(IPアドレス) で Amazon 側の挙動が変わっている」可能性を示唆します。ただし、先ほど確認したように keinafarm.net は大阪のIPなので、この説明も矛盾します。

デプロイ手順:

bash
# ローカルから scp でサーバーへ転送
scp alexa-api/server.js keinafarm-claude:/home/claude/alexa-api/server.js
# サーバーへSSHしてビルド&再起動
ssh keinafarm-claude 'cd /home/claude/alexa-api && sudo docker compose build && sudo docker compose up -d && sudo docker restart traefik'
デプロイ後、sudo docker logs alexa_api -f でログを確認して、[DEBUG] 行の内容を教えてください。どんな JSON が Amazon に送られているか、Amazon が何を返しているかが見えてきます。
2026-03-03 11:46:02 +09:00
Description
No description provided
432 KiB
Languages
JavaScript 43%
Shell 31.9%
Python 24.2%
TypeScript 0.6%
Dockerfile 0.3%