web-dev-qa-db-ja.com

SNS / SQSの命名規則

実装しているETLプロセスでは、Amazon SQSキューにメッセージを送信するAmazon SNSトピックを作成します。

ドキュメントでは名前に関する特定の仕様を確認しなかったため、SNSトピックとSQSキューの命名規則に関するベストプラクティスを誰かが推奨できるかどうか疑問に思いました。

スコープは、ネーミングの最良のアプローチに従うために、トピック(SNS)およびキュー(SQS)のネーミングにベストプラクティスがあるかどうかを知ることです。たとえば、キャメルケースはお勧めですか?トピック名/キュー名はドメインを表す必要がありますか?

10
Aurélien

私たちは fanout pattern を実装し、SNSトピック名を継承するSQSキューが、開発、デバッグ、およびドメインの知識の表現を支援する上で最善のアプローチであることを発見しました。

たとえば、StrawberryShakerというアプリケーションがあるとします。トピックはStrawberryShakerと呼ばれ、サブスクライブされたキューにはすべてStrawberryShakerがプレフィックスとして付けられます。

注意する必要がある名前の長さがあります:-

キュー名は最大80文字です。使用できる文字は、英数字、ハイフン(-)、下線(_)です。

https://docs.aws.Amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-limits.html

トピック名は256文字に制限されています。英数字とハイフン(-)およびアンダースコア(_)を使用できます。

https://aws.Amazon.com/sns/faqs/

お役に立てば幸いです。

4
user9244629

SNSトピックとSQSキューには、文句を言わない限り(スペースや不正な文字など)、好きな名前を付けることができます。

時間の経過とともに、多くのトピックとキューが存在する可能性があり、それらはARNの一部を形成するため、将来変更することが困難になることに注意してください。アプリケーションのプレフィックスと説明部分をお勧めします。たとえば、nicornアプリケーションがinvoiceをキューにプッシュしている場合は、キューを呼び出します。

Unicorn_invoice

名前に「トピック」または「キュー」を含めないでください(例:Unicorn_invoice よりも良い Unicorn_invoice_queue)。

多くの異なるチームが同じAWSアカウントを使用している場合は、次のように、リソースの「所有者」を示すために追加の階層を追加できます。

lawson_Unicorn_invoice

それがあなたの会社で一般的である場合、キャメルケースも問題ありません:

lawsonUnicornInvoice
3
John Rotenstein