2017-10-01 4 views
0

アレクサのスマートホームスキルを設定しようとしていて、aws sqsを使用してクライアントがメッセージを聞いて、私はそれをどのようにして各クライアントがそれらのために意図された特定のメッセージを聞くことができるようにするのかという問題があります。私はメッセージや何かのauthトークンを持つ特定のユーザのturnOnキューにメッセージを入れて、その認証トークンで聞いているユーザだけがそのメッセージを受信できるようにします。基本的に私はそれを設定しようとしているので、各ユーザーは自分のデバイス用のメッセージしか受信できません。これは可能ですか?私はチュートリアルの周りを見て、これについてのドキュメントを見つけることができません。amazon sqsを使用して、すべてのクライアントが自分のメッセージを聞いています

これが可能でない場合は、メッセージをクライアントに直接送信して、メッセージをオンまたはオフにするように指示することができます。 MQTTのようなものを想定しています。

答えて

3

ユーザまたはデバイスごとに専用のSQSキューを作成することは可能ですが、保守性の見込みとコスト見積もりの​​両方からは優れた設計ではありません。

アカウントに含めることができるSQSキューの数には公開されている制限はありませんが、専用キューをポーリングする多数のデバイスが非常に高価になるため、SQSは投票に基づいて請求されます。

しかし、セキュリティの見込みから、このアプローチを確保することは可能です。トークンを認可し、適切なSQSキューをポーリングするAPIをSQSの前に置くことができます。または、STSを使用して、中間処理を回避するためにAPIを使用して特定のキューに資格情報を一時的に提供することもできます。

このアプローチは、ハカソーンや個人的な用途のためのものなどのおもちゃの例にのみおすすめします。たとえそれが実際にどのように動作するかをコード化して理解するのはかなり簡単だからですが、これは本当に効率的ではありません。


この問題の適切な解決策は、AWS IoTを使用することです。これにより、管理対象のMQTT実装が提供され、デバイスを登録し、適切なトピックに許可を割り当てることができます。ここでの請求はメッセージごとです。

AWS IoTを使用して設定し理解することはますます増えていますが、全体的には、多数のデバイスで効率的であり、スケーラビリティと生産性が向上しています。

関連する問題