翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
EMQX MQTT ブローカーコンポーネント (aws.greengrass.clientdevices.mqtt.EMQX
) は、クライアントデバイスと Greengrass コアデバイス間の MQTT メッセージを処理します。このコンポーネントは、EMQX MQTT 5.0 ブローカー
このブローカーは、MQTT 5.0 プロトコルを実装します。セッションとメッセージの有効期限、ユーザープロパティ、共有サブスクリプション、トピックエイリアスなどのサポートが含まれます。MQTT 5 は MQTT 3.1.1 と下位互換性があるので、モケット MQTT 3.1.1 ブローカーを実行する場合、EMQX MQTT 5 ブローカーに置き換えることができ、クライアントデバイスは通常どおり接続して動作し続けることができます。
注記
クライアントデバイスは、Greengrass コアデバイスに接続し、処理するために MQTT メッセージとデータを送信するローカル IoT デバイスです。詳細については、「ローカル IoT デバイスとやり取りする」を参照してください。
バージョン
このコンポーネントには、次のバージョンがあります。
-
2.0.x
-
1.2.x
-
1.1.x
-
1.0.x
タイプ
このコンポーネントはジェネリックコンポーネント (aws.greengrass.generic
) です。Greengrass nucleus は、コンポーネントのライフサイクルスクリプトを実行します。
詳細については、「コンポーネントタイプ」を参照してください。
オペレーティングシステム
このコンポーネントは、次のオペレーティングシステムを実行するコアデバイスにインストールできます。
リナックス
Windows
要件
このコンポーネントには次の要件があります。
-
コアデバイスは、MQTT ブローカーが動作するポートで接続を受け入れられる必要があります。このコンポーネントは、デフォルトでポート 8883 で MQTT ブローカーを実行します。このコンポーネントを設定するとき、別のポートを指定できます。
別のポートを指定し、MQTT ブリッジコンポーネントを使用して MQTT メッセージを他のブローカーにリレーする場合、MQTT ブリッジ v2.1.0 以降を使用する必要があります。MQTT ブローカーが動作するポートを使用するように設定します。
別のポートを指定し、IP ディテクターコンポーネントを使用して MQTT ブローカーエンドポイントを管理する場合、IP ディテクタ v2.1.0 以降を使用する必要があります。MQTT ブローカーが動作するポートを報告するように設定します。
-
Linux コアデバイスでは、次のように Docker がコアデバイスにインストールおよび設定されています。
-
Docker Engine
1.9.1 以降が Greengrass コアにインストールされていいること。バージョン 20.10 は、 AWS IoT Greengrass Core ソフトウェアで動作することが検証された最新バージョンです。Docker コンテナを実行するコンポーネントをデプロイする前に、コアデバイスに直接、Docker をインストールしておく必要があります。 -
このコンポーネントをデプロイする前に、Docker デーモンがコアデバイス上で起動し、実行されています。
-
このコンポーネントを実行するシステムユーザーには、ルート権限または管理者権限が必要です。または、このコンポーネントを
docker
グループ内のシステムユーザーとして実行し、このコンポーネントのrequiresPrivileges
オプションをfalse
に設定して特権なしで EQMX MQTT ブローカーを実行できます。
-
-
EMQX MQTT ブローカーコンポーネントは、VPC での実行がサポートされています。
-
EMQX MQTT ブローカーコンポーネントは
armv7
プラットフォームではサポートされていません。
依存関係
コンポーネントをデプロイすると、 はその依存関係の互換性のあるバージョン AWS IoT Greengrass もデプロイします。つまり、コンポーネントを正常にデプロイするには、コンポーネントとその依存関係のすべての要件を満たす必要があります。このセクションでは、このコンポーネントのリリースされたバージョンの依存関係と、各依存関係に対するコンポーネントのバージョンを定義するセマンティックバージョン制約をリスト表示しています。コンポーネントの各バージョンの依存関係は、AWS IoT Greengrass コンソール
次の表に、このコンポーネントのバージョン 2.0.2 の依存関係を示します。
依存関係 | 互換性のあるバージョン | 依存関係タイプ |
---|---|---|
クライアントデバイス認証 | >=2.2.0 <2.6.0 | ソフト |
コンポーネントの依存関係の詳細については、「コンポーネント recipe のリファレンス」を参照してください。
設定
このコンポーネントには、コンポーネントのデプロイ時にカスタマイズできる次の設定パラメータが用意されています。
重要
MQTT 5 ブローカー (EMQX) コンポーネントのバージョン 2 を使用している場合は、設定ファイルを更新する必要があります。バージョン 1 の設定ファイルはバージョン 2 では機能しません。
- emqxConfig
-
(オプション) 使用する EMQX MQTT ブローカー
設定。このコンポーネントで EMQX 設定オプションを設定できます。 EMQX ブローカーを使用する場合、Greengrass ではデフォルト設定が使用されます。このフィールドを使用して変更しない限り、この設定が使用されます。
以下の設定を変更すると、EMQX Broker コンポーネントが再起動します。他の設定変更は、コンポーネントを再起動せずに適用されます。
-
emqxConfig/cluster
-
emqxConfig/node
-
emqxConfig/rpc
注記
aws.greengrass.clientdevices.mqtt.EMQX
は、セキュリティに配慮したオプションを設定することを許可します。これらには、TLS 設定、認証、認可プロバイダーが含まれます。相互 TLS 認証と Greengrass クライアントデバイス認証プロバイダーを使用するデフォルト設定を推奨します。例: デフォルト設定
次の例は、MQTT 5 (EMQX) ブローカーのデフォルト設定を示しています。これらの設定は、
emqxConfig
設定を使用してオーバーライドできます。{ "authorization": { "no_match": "deny", "sources": [] }, "node": { "cookie": "
<placeholder>
" }, "listeners": { "ssl": { "default": { "ssl_options": { "keyfile": "{work:path}\\data\\key.pem", "certfile": "{work:path}\\data\\cert.pem", "cacertfile": null, "verify": "verify_peer", "versions": ["tlsv1.3", "tlsv1.2"], "fail_if_no_peer_cert": true } } }, "tcp": { "default": { "enabled": false } }, "ws": { "default": { "enabled": false } }, "wss": { "default": { "enabled": false } } }, "plugins": { "states": [{"name_vsn": "gg-1.0.0", "enable": true}], "install_dir": "plugins" } } -
- authMode
-
(オプション) ブローカーの認可プロバイダーを設定します。次のいずれかの値を指定できます。
-
enabled
– (デフォルト) Greengrass 認証および認可プロバイダーを使用します。 -
bypass_on_failure
– Greengrass 認証プロバイダーを使用し、Greengrass が認証または認可を拒否する場合は、EMQX プロバイダーチェーン内の残りの認証プロバイダーを使用します。 -
bypass
– Greengrass プロバイダーが無効になっています。認証と認可は EMQX プロバイダーチェーンによって処理されます。
-
requiresPrivilege
-
(オプション) Linux コアデバイスでは、ルート権限または管理者権限なしで EMQX MQTT ブローカーを実行するように指定できます。このオプションを
false
に設定した場合、このコンポーネントを実行するシステムユーザーは、docker
グループのメンバーである必要があります。デフォルト:
true
startupTimeoutSeconds
-
(オプション) EMQX MQTT ブローカーが起動する最大時間 (秒)。このタイムアウトを超えている場合、コンポーネントの状態が
BROKEN
に変わります。デフォルト:
90
ipcTimeoutSeconds
-
(オプション) Greengrass nucleus がプロセス間通信 (IPC) リクエストに応答するまでコンポーネントが待機する最大時間 (秒)。このコンポーネントがクライアントデバイスが認証されているかどうかを確認するときにタイムアウトエラーを報告する場合は、この数値を増やします。
デフォルト:
5
crtLogLevel
-
(オプション) AWS 共通ランタイム (CRT) ライブラリのログレベル。
デフォルトは EMQX MQTT ブローカーのログレベル (
emqx
のlog.level
)。 restartIdentifier
-
(オプション) EMQX MQTT ブローカーを再起動するには、このオプションを設定します。この設定値が変更されると、このコンポーネントは MQTT ブローカーを再起動します。このオプションを使用して、クライアントデバイスを強制的に切断できます。
dockerOptions
-
(オプション) Docker コマンドラインにパラメータを追加するには、Linux オペレーティングシステムでのみこのオプションを設定します。例えば、追加のポートをマッピングするには、
-p
Docker パラメータを使用します。"-p 1883:1883"
例: v1.x 設定ファイルを v2.x に更新する
次の例は、v1.x 設定ファイルをバージョン 2.x に更新するために必要な変更を示しています。
バージョン 1.x の設定ファイル:
{
"emqx": {
"listener.ssl.external": "443",
"listener.ssl.external.max_connections": "1024000",
"listener.ssl.external.max_conn_rate": "500",
"listener.ssl.external.rate_limit": "50KB,5s",
"listener.ssl.external.handshake_timeout": "15s",
"log.level": "warning"
},
"mergeConfigurationFiles": {
"etc/plugins/aws_greengrass_emqx_auth.conf": "auth_mode=enabled\n use_greengrass_managed_certificates=true\n"
}
}
v2 と同等の設定ファイル:
{
"emqxConfig": {
"listeners": {
"ssl": {
"default": {
"bind": "8883",
"max_connections": "1024000",
"max_conn_rate": "500",
"handshake_timeout": "15s"
}
}
},
"log": {
"console": {
"enable": true,
"level": "warning"
}
}
},
"authMode": "enabled"
}
listener.ssl.external.rate_limit
設定エントリに相当するものはありません。use_greengrass_managed_certificates
設定オプションは削除されました。
例: ブローカーに新しいポートを設定する
次の例では、MQTT ブローカーが動作するポートをデフォルトの 8883 からポート 1234 に変更します。Linux を使用している場合は、dockerOptions
フィールドを含めてください。
{
"emqxConfig": {
"listeners": {
"ssl": {
"default": {
"bind": 1234
}
}
}
},
"dockerOptions": "-p 1234:1234"
}
例: MQTT ブローカーのログレベルの調整
次の例では、MQTT ブローカーのログレベルを debug
に変更しています。次のログレベルから選択できます。
-
debug
-
info
-
notice
-
warning
-
error
-
critical
-
alert
-
emergency
デフォルトのログレベルは warning
です。
{
"emqxConfig": {
"log": {
"console": {
"level": "debug"
}
}
}
}
例: EMQX ダッシュボードを有効にする
次の例では EMQX ダッシュボードを有効にして、ブローカーの監視と管理を行えるようにします。Linux を使用している場合は、dockerOptions
フィールドを含めてください。
{
"emqxConfig": {
"dashboard": {
"listeners": {
"http": {
"bind": 18083
}
}
}
},
"dockerOptions": "-p 18083:18083"
}
ローカルログファイル
このコンポーネントは次のログファイルを使用します。
/logs/aws.greengrass.clientdevices.mqtt.EMQX.log
/greengrass/v2
このコンポーネントのログを確認するには
-
コアデバイスに次のコマンドを実行して、このコンポーネントのログファイルをリアルタイムに確認します。
または/greengrass/v2
C:\greengrass\v2
を AWS IoT Greengrass ルートフォルダへのパスに置き換えます。sudo tail -f
/logs/aws.greengrass.clientdevices.mqtt.EMQX.log/greengrass/v2
ライセンス
Windows オペレーティングシステムでは、このソフトウェアには、マイクロソフト ソフトウェア ライセンス条項 - MICROSOFT VISUAL STUDIO COMMUNITY 2022
このコンポーネントは、Greengrass Core ソフトウェアライセンス契約
変更ログ
次の表は、コンポーネントの各バージョンにおける変更を示します。
バージョン |
変更 |
---|---|
2.0.2 |
|
2.0.1 |
クライアントデバイス認証バージョン 2.5.0 リリース用に、バージョンが更新されました。 |
2.0.0 |
MQTT 5 ブローカー (EMQX) のこのバージョンでは、バージョン 1.x とは異なる設定パラメータが必要です。バージョン 1.x でデフォルト以外の設定を使用している場合は、2.x のコンポーネント設定を更新する必要があります。詳細については、「設定」を参照してください。
|