状態ストアでのデータの保持
状態ストアは、Azure IoT Operations の一部として配置される分散ストレージ システムです。 状態ストアを使用すると、アプリケーションはキーと値のペアを取得、設定、削除できます。Redis などのサービスをさらにインストールする必要はありません。 また、状態ストアには、データのバージョン管理と、高可用性アプリケーションに最適な分散ロックを構築するためのプリミティブも用意されています。
Redis と同様に、状態ストアはメモリ ストレージを使用します。 Kubernetes クラスターを停止または再起動すると、状態ストアの内容が失われます。
状態ストアは MQTTv5 を介して実装されます。 そのサービスは MQTT ブローカーに直接統合され、ブローカーの開始時に自動的に開始されます。 状態ストアは、MQTT ブローカーと同じ高可用性を提供します。
状態ストアを使用する理由
状態ストアを使用すると、エッジ アプリケーションでエッジにデータを保持することができます。 状態ストアの一般的な用途は次のとおりです。
- ステートレス アプリケーションの作成
- アプリケーション間での状態の共有
- 高可用性アプリケーションの構築
- データフローで使用するデータの保存
状態ストアの承認
状態ストアは MQTT ブローカーの承認メカニズムを拡張し、個々のクライアントが特定のキーへの読み取りと書き込みのアクセスをオプションで持つことができます。 詳細については、状態ストアの MQTT ブローカー承認を構成する方法に関する記事を参照してください。
状態ストアの操作
ステート ストア CLI ツールを使用すると、クラスター外のコンピューターで実行されているシェルからステート ストアを操作できます。 このドキュメントでは、次の手順について説明します。
- MQTT ブローカーで認証するための X.509 証明書チェーンの生成
- x.509 証明書を使用した
BrokerAuthentication
の作成 - クラスター外アクセスを有効にする LoadBalancer 型の
BrokerListener
の作成
ツールを使用する手順については、ステート ストア CLI GitHub ページを参照してください。
Note
状態ストアを操作する SDK は現在アクティブな開発段階にあり、近い将来、エッジ アプリケーションが状態ストアを操作できるようになる予定です。