問題タブ [aws-transcribe]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
amazon-web-services - SDK なしの Amazon Transcribe ストリーミング API
Go 1.11 から Amazon の新しいストリーミング文字起こし API を使用しようとしています。現在、Amazon は Java SDK のみを提供しているため、低レベルの方法を試しています。
関連する唯一のドキュメントはここにありますが、エンドポイントは示されていません。私はJavaの例でそれを見つけましhttps://transcribestreaming.<region>.amazonaws.com
た.Ireland地域を試していhttps://transcribestreaming.eu-west-1.amazonaws.com
ます. HTTP/2 双方向ストリームを開くコードは次のとおりです。
問題は、リクエスト ( client.Do(req)
) の実行が 5 分間フリーズした後、「予期しない EOF」エラーで終了することです。
私が間違っていることはありますか?誰かが Java SDK なしで新しいストリーミング文字起こし API を正常に使用しましたか?
編集 (2019 年 3 月 11 日):
これをもう一度テストしたところ、タイムアウトにはなりませんが、すぐに200 OK
応答が返されます。ただし、応答本文には「例外」があります。{"Output":{"__type":"com.amazon.coral.service#SerializationException"},"Version":"1.0"}
io.Pipe
(上記のコードのように)HTTP2ストリームを開こうとしましたが、ドキュメントに記載されているJSONボディも使用しました:
結果は同じでした。
編集 (2019 年 3 月 13 日):
@gpeng で述べたように、content-type
from ヘッダーを削除すると、SerializationException
. ただし、IAM 例外があり、transcription:StartStreamTranscription
IAM ユーザーにアクセス許可を追加する必要があります。ただし、これは AWS IAM コンソールのどこにもないため、カスタム JSON アクセス許可として手動で追加する必要があります:/
ここには、正しくないことを示すhost
新しい/別のドキュメントドキュメントもありますcontent-type
(それを使用しないでくださいcontent-type
。リクエストは 404 を返します)。
を削除しcontent-type
、新しい権限を追加した後、例外が発生し{"Message":"A complete signal was sent without the preceding empty frame."}
ました。また、パイプブロックに永久に書き込むので、再び立ち往生します。新しいドキュメントに記載されているメッセージは古いものとは異なり、最終的にはバイナリですが、私はそれらを理解していません。GoでそのようなHTTP2メッセージを送信する方法はありますか?
編集(2019年15試合):*
transfer-encoding
署名の不一致に関する HTTP 403 エラーが発生した場合は、およびx-amz-content-sha256
HTTP ヘッダーを設定しないでください。それらを設定したら、AWS SDK の V4 署名者でリクエストに署名すると、HTTP 403 を受け取りますThe request signature we calculated does not match the signature you provided.