ネームスペースの作成
EMQXでは、ネームスペースを作成する方法が2つあります。明示的作成と自動作成です。これらの方法により、ニーズに応じて柔軟にネームスペースの作成方法を選択できます。
- 明示的作成は、厳密に管理された環境に適しています。
- 自動作成は、手動操作を減らして動的かつ大規模なデプロイに適しています。
EMQX 6.3.0以降、multi_tenancy.deny_namespacesにリストされている名前は、どちらの作成方法でも使用できません。デフォルトリストおよび設定方法については、Denied Namespace Namesを参照してください。
ネームスペースを明示的に作成する
ネームスペースは、ダッシュボードまたはREST APIを通じて手動で作成できます。明示的に作成されたネームスペースは、直接管理、編集、削除が可能です。
ユースケース:存在するネームスペースを明確に制御し、細かい管理が必要な場合に推奨されます。
ダッシュボードでネームスペースを作成する
ダッシュボードでネームスペースを素早く作成するには、以下の手順を実行します。
- ダッシュボードの左メニューから 管理 -> ネームスペース に移動します。
- 作成 をクリックします。表示される ネームスペース作成 ダイアログで、ネームスペース名を入力します。他のオプションはデフォルトのままにしてください。最大セッション数やレート制限の設定については、ダッシュボードでのネームスペース設定と管理を参照してください。
- 作成 をクリックします。作成したネームスペースがリストに表示されます。
REST APIでネームスペースを作成する
ネームスペース固有の設定を適用する前に、以下のAPIでネームスペースを明示的に作成する必要があります。
POST /mt/ns/<namespace><namespace> は作成したいネームスペースIDに置き換えてください。リクエストボディは不要です。
名前が multi_tenancy.deny_namespaces に含まれている場合、EMQXはHTTP 400でリクエストを拒否します。
ネームスペースを自動で作成する
EMQXでは、クライアント接続時にネームスペースを自動で作成することも可能です。
自動ネームスペース作成は、client_attrs.tns フィールド自体に直接依存するのではなく、Take Namespace From 設定に基づいています。
クライアントが接続すると、EMQXは設定された Take Namespace From ルールを評価し、クライアント接続メタデータから tns(テナントネームスペース)属性を導出します。解決された名前が multi_tenancy.deny_namespaces に含まれている場合、EMQXは not_authorized で接続を拒否します。そうでなければ、自動作成が許可されていて対応するネームスペースが存在しない場合、EMQXは自動的にネームスペースを作成します。
典型的なユースケース:クライアント接続が信頼できるソースから発生し、接続メタデータからネームスペース識別子を確実に導出でき、多数のテナントや事業部門のために動的にネームスペースを作成する必要がある場合に適しています。
注意
自動作成されたネームスペースは読み取り専用であり、ダッシュボードで編集できません。
セッション制限やレート制限などの設定も変更できません。これらのネームスペースはネームスペースソースルールに基づいて自動生成されるためです。
注意
自動ネームスペース作成は、multi_tenancy.allow_only_managed_namespaces = false の場合にのみ許可されます。
この設定が true の場合、明示的に作成されたネームスペースのみが許可され、自動作成は無効になります。
この動作は、ダッシュボードの Allow Only Explicitly Created Namespaces 設定からも制御可能です。