クライアントデバイスをコアデバイスに接続する - AWS IoT Greengrass

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

クライアントデバイスをコアデバイスに接続する

クラウドディスカバリを設定して、クライアントデバイスをコアデバイスに接続することができます。クラウドディスカバリを設定すると、クライアントデバイスは AWS IoT Greengrass クラウドサービスに接続して、接続可能なコアデバイスに関する情報を取得することができます。その後、クライアントデバイスは、正常に接続されるまで、各コアデバイスへの接続を試みることができます。

クラウドディスカバリを使用するには、以下の操作を行う必要があります。

  • クライアントデバイスを、接続できるコアデバイスに関連付けます。

  • クライアントデバイスが各コアデバイスに接続できる MQTT ブローカエンドポイントを指定します。

  • クライアントデバイスへのサポートを可能にするコンポーネントをコアデバイスにデプロイします。

    オプションのコンポーネントをデプロイして、次の操作を行うこともできます。

    • クライアントデバイス、Greengrass コンポーネント、AWS IoT Core クラウドサービスの間でメッセージをリレーします。

    • コアデバイスの MQTT ブローカーエンドポイントを自動で管理します。

    • ローカルクライアントのデバイスシャドウを管理し、AWS IoT Core のクラウドサービスとシャドウを同期します。

また、コアデバイスの AWS IoT ポリシーを見直して更新し、クライアントデバイスに接続するために必要な権限があることを確認する必要があります。詳細については、「要件」を参照してください。

クラウドディスカバリを設定したら、クライアントデバイスとコアデバイス間の通信をテストすることができます。詳細については、「クライアントデバイス通信をテストする」を参照してください。

要件

クライアントデバイスをコアデバイスに接続するには、以下を使用する必要があります。

  • コアデバイスで、Greengrass nucleus v2.2.0 以降が実行されている必要があります

  • コアデバイスが動作している AWS リージョン内にある、AWS アカウント の AWS IoT Greengrass に関連付けられたGreengrass サービスロール。詳細については、「Greengrass サービスロールを設定する」を参照してください。

  • コアデバイスの AWS IoT ポリシーでは以下のアクセス許可を付与する必要があります。

    • greengrass:PutCertificateAuthorities

    • greengrass:VerifyClientDeviceIdentity

    • greengrass:VerifyClientDeviceIoTCertificateAssociation

    • greengrass:GetConnectivityInfo

    • greengrass:UpdateConnectivityInfo - (オプション) このアクセス許可は、コアデバイスのネットワーク接続に関する情報を AWS IoT Greengrass クラウドサービスに報告する IP 検出コンポーネントを使用するために必要です。

    • iot:GetThingShadowiot:UpdateThingShadow、および iot:DeleteThingShadow – (オプション) これらのアクセス許可は、クライアントデバイスシャドウと AWS IoT Core を同期する、シャドウマネージャーコンポーネントを使用するために必要です。この機能を使用するには、Greengrass nucleus v2.6.0 以降、シャドウマネージャー v2.2.0 以降、および MQTT ブリッジ v2.2.0 以降が必要です。

    詳細については、「AWS IoTモノポリシーを設定する」を参照してください。

    注記

    AWS IoT Greengrass Core ソフトウェアのインストール時にデフォルトの AWS IoT ポリシーを使用した場合、コアデバイスにはすべての AWS IoT Greengrass アクション (greengrass:*) へのアクセスを許可する AWS IoT ポリシーが設定されています。

  • クライアントデバイスとして接続できる AWS IoT モノ。詳細については、「AWS IoT Core デベロッパーガイド」の「AWS IoT リソースを作成する」を参照してください。

  • クライアントデバイスは、クライアント ID を使用して接続する必要があります。クライアント ID はモノの名前です。他のクライアント ID は受け付けられません。

  • クライアントデバイスの AWS IoT ポリシーでは、greengrass:Discover アクセス許可を付与する必要があります。詳細については、「クライアントデバイス向けの最低限の AWS IoT ポリシー」を参照してください。

Greengrass サービスロールを設定する

Greengrass サービスロールは、ユーザーに代わって AWS サービスからリソースへのアクセスを AWS IoT Greengrass に許可する AWS Identity and Access Management (IAM) サービスロールです。このロールにより、AWS IoT Greengrass でクライアントデバイスの ID を確認し、コアデバイスの接続情報を管理できるようになります。

このリージョンでまだ Greengrass サービスロールを設定していない場合は、このリージョンの AWS アカウント の AWS IoT Greengrass に Greengrass サービスロールに関連付ける必要があります。

AWS IoT Greengrass コンソール[Configure core device discovery] (コアデバイスディスカバリを設定する) ページを使用すると、AWS IoT Greengrass が Greengrass サービスロールを設定します。そうでない場合は、AWS IoT コンソールや AWS IoT Greengrass APIを使って、手動で設定することができます。

このセクションでは、Greengrass サービスロールが設定されているかどうかを確認します。設定されていない場合は、このリージョンの AWS アカウント の AWS IoT Greengrass のために関連付ける新しい Greengrass サービスロールを作成します。

  1. Greengrass サービスロールが、このリージョンの AWS アカウント の AWS IoT Greengrass に関連付けられていることを確認します。以下の操作を実行します。

    1. AWS IoT コンソールに移動します。

    2. ナビゲーションペインで [設定] を選択します。

    3. [Greengrass service role] (Greengrass サービスロール) セクションで、[Current service role] (現在のサービスロール) をクリックし、Greengrass サービスロールが関連付けられているかどうかを確認します。

      Greengrass サービスロールが関連付けられている場合、IP ディテクターコンポーネントを使用する要件を満たしています。「AWS IoTモノポリシーを設定する」へ進んでください。

  2. Greengrass サービスロールがこのリージョンの AWS アカウント の AWS IoT Greengrass に関連付けられていない場合は、Greengrass サービスロールを作成して関連付けます。以下の操作を実行します。

    1. [IAM console] (IAM コンソール) に入ります。

    2. [Roles (ロール)] を選択します。

    3. [Create role] (ロールの作成) を選択します。

    4. [Create role] (ロールの作成) ページで、次の手順を実行します。

      1. [Trusted entity type] (信頼できるエンティティタイプ) で、[AWS サービス] を選択します。

      2. [ユースケース] の下にある [その他の AWS サービス のユースケース] で、[Greengrass] を選択し、さらに [Greengrass] を選択します。このオプションは、このロールを継承することができる信頼できるエンティティとして AWS IoT Greengrass を追加することを指定します。

      3. [次へ] をクリックします。

      4. [Permissions policies] (アクセス許可ポリシー) で、AWSGreengrassResourceAccessRolePolicy を選択し、ロールにアタッチします。

      5. [次へ] をクリックします。

      6. [Role name] (ロール名) に、このロールの名前 (Greengrass_ServiceRole など) を入力します。

      7. [ロールの作成] を選択します。

    5. AWS IoT コンソールに移動します。

    6. ナビゲーションペインで [設定] を選択します。

    7. [Greengrass service role] (Greengrass サービスロール) セクションで、[Attach role] (ロールを添付する) を選択します。

    8. [Update Greengrass service role] (Greengrass サービスロールを更新する) モーダルで作成した IAM ロールを選択し、[Attach role] (ロールを割り当てる) を選択します。

  1. Greengrass サービスロールが、このリージョンの AWS アカウント の AWS IoT Greengrass に関連付けられていることを確認します。

    aws greengrassv2 get-service-role-for-account

    Greengrass サービスロールが関連付けられている場合、この動作により、ロールに関する情報が含まれたレスポンスが返されます。

    Greengrass サービスロールが関連付けられている場合、IP ディテクターコンポーネントを使用する要件を満たしています。「AWS IoTモノポリシーを設定する」へ進んでください。

  2. Greengrass サービスロールがこのリージョンの AWS アカウント の AWS IoT Greengrass に関連付けられていない場合は、Greengrass サービスロールを作成して関連付けます。以下の操作を実行します。

    1. AWS IoT Greengrass がロールを継承できるように許可する信頼ポリシーを持つロールを作成します。この例では、Greengrass_ServiceRole という名前のロールを作成しますが、別の名前を使用できます。また、信頼ポリシーには、aws:SourceArn および aws:SourceAccount グローバル条件コンテキストキーも含めて、混乱した代理によるセキュリティ問題を防止することをお勧めします。条件コンテキストキーを使用すると、指定したアカウントと Greengrass ワークスペースからのリクエストのみを許可するようにアクセスを制限できます。混乱した代理に関する問題の詳細については、「サービス間の混乱した代理の防止」を参照してください。

      Linux or Unix
      aws iam create-role --role-name Greengrass_ServiceRole --assume-role-policy-document '{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "greengrass.amazonaws.com" }, "Action": "sts:AssumeRole", "Condition": { "ArnLike": { "aws:SourceArn": "arn:aws:greengrass:region:account-id:*" }, "StringEquals": { "aws:SourceAccount": "account-id" } } } ] }'
      Windows Command Prompt (CMD)
      aws iam create-role --role-name Greengrass_ServiceRole --assume-role-policy-document "{\\"Version\\":\\"2012-10-17\\",\\"Statement\\":[{\\"Effect\\":\\"Allow\\",\\"Principal\\":{\\"Service\\":\\"greengrass.amazonaws.com\\"},\\"Action\\":\\"sts:AssumeRole\\",\\"Condition\\":{\\"ArnLike\\":{\\"aws:SourceArn\\":\\"arn:aws:greengrass:region:account-id:*\\"},\\"StringEquals\\":{\\"aws:SourceAccount\\":\\"account-id\\"}}}]}"
      PowerShell
      aws iam create-role --role-name Greengrass_ServiceRole --assume-role-policy-document '{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "greengrass.amazonaws.com" }, "Action": "sts:AssumeRole", "Condition": { "ArnLike": { "aws:SourceArn": "arn:aws:greengrass:region:account-id:*" }, "StringEquals": { "aws:SourceAccount": "account-id" } } } ] }'
    2. 出力のロールメタデータからロールの ARN をコピーします。ARN を使用して、ロールをアカウントに関連付けます。

    3. AWSGreengrassResourceAccessRolePolicy ポリシーをロールにアタッチします。

      aws iam attach-role-policy --role-name Greengrass_ServiceRole --policy-arn arn:aws:iam::aws:policy/service-role/AWSGreengrassResourceAccessRolePolicy
    4. Greengrass サービスロールを AWS アカウント の AWS IoT Greengrass に関連付けます。role-arn をサービスロールの ARN に置き換えます。

      aws greengrassv2 associate-service-role-to-account --role-arn role-arn

      成功すると、次のレスポンスが返されます。

      { "associatedAt": "timestamp" }

AWS IoTモノポリシーを設定する

コアデバイスは X.509 デバイス証明書を使用して、AWS への接続を許可します。デバイス証明書に AWS IoT ポリシーをアタッチして、コアデバイスのアクセス許可を定義します。詳細については、「データプレーンオペレーションの AWS IoT ポリシークライアントデバイスをサポートするための最低限の AWS IoT ポリシー」を参照してください。

クライアントデバイスをコアデバイスに接続するには、コアデバイスの AWS IoT ポリシーで、次のアクセス許可を許可する必要があります。

  • greengrass:PutCertificateAuthorities

  • greengrass:VerifyClientDeviceIdentity

  • greengrass:VerifyClientDeviceIoTCertificateAssociation

  • greengrass:GetConnectivityInfo

  • greengrass:UpdateConnectivityInfo - (オプション) このアクセス許可は、コアデバイスのネットワーク接続に関する情報を AWS IoT Greengrass クラウドサービスに報告する IP 検出コンポーネントを使用するために必要です。

  • iot:GetThingShadowiot:UpdateThingShadow、および iot:DeleteThingShadow – (オプション) これらのアクセス許可は、クライアントデバイスシャドウと AWS IoT Core を同期する、シャドウマネージャーコンポーネントを使用するために必要です。この機能を使用するには、Greengrass nucleus v2.6.0 以降、シャドウマネージャー v2.2.0 以降、および MQTT ブリッジ v2.2.0 以降が必要です。

このセクションでは、コアデバイスの AWS IoT ポリシーを確認し、必要なアクセス許可が不足している場合には追加します。AWS IoT Greengrass Core ソフトウェアインストーラを使用してリソースをプロビジョニングした場合、コアデバイスには、すべての AWS IoT Greengrass アクション (greengrass:*) へのアクセスを許可する AWS IoT ポリシーが存在します。この場合に、デバイスシャドウを AWS IoT Core と同期するためにシャドウマネージャーコンポーネントをデプロイする予定ならば、AWS IoT ポリシーを更新する必要があります。それ以外の場合、このセクションはスキップできます。

  1. AWS IoT Greengrass コンソールのナビゲーションメニューで、[Core devices] (コアデバイス) を選択します。

  2. [Core devices] (コアデバイス) ページで、更新するコアデバイスを選択します。

  3. コアデバイスの詳細ページで、コアデバイスの [Thing] (モノ) へのリンクを選択します。このリンクをクリックすると、AWS IoT コンソールの [thing details] (モノ詳細) ページが開きます。

  4. [thing details] (モノ詳細) ページで、[Certificates] (証明書) を選択します。

  5. [Certificates] (証明書) タブで、モノのアクティブな証明書を選択します。

  6. [certificate details] (証明書詳細) ページで、[Policies] (ポリシー) を選択します。

  7. [Policies] (ポリシー) タブで、確認して更新する AWS IoT ポリシーを選択します。コアデバイスのアクティブな証明書にアタッチされている任意のポリシーに、必要なアクセス許可を追加できます。

    注記

    リソースのプロビジョニングに AWS IoT Greengrass Core ソフトウェアインストーラを使用している場合、2 つの AWS IoT ポリシーが存在します。存在する場合は、GreengrassV2IoTThingPolicy という名前のポリシーを選択することをお勧めします。クイックインストーラで作成するコアデバイスは、デフォルトでこのポリシー名を使用します。このポリシーにアクセス許可を追加すると、このポリシーを使用する他のコアデバイスにもこれらのアクセス許可が付与されます。

  8. [policy overview] (ポリシーの概要) で、[Edit active version] (アクティブなバージョンの編集) を選択します。

  9. 必要なアクセス許可についてポリシーを確認し、不足していれば必要なアクセス許可を追加します。

    • greengrass:PutCertificateAuthorities

    • greengrass:VerifyClientDeviceIdentity

    • greengrass:VerifyClientDeviceIoTCertificateAssociation

    • greengrass:GetConnectivityInfo

    • greengrass:UpdateConnectivityInfo - (オプション) このアクセス許可は、コアデバイスのネットワーク接続に関する情報を AWS IoT Greengrass クラウドサービスに報告する IP 検出コンポーネントを使用するために必要です。

    • iot:GetThingShadowiot:UpdateThingShadow、および iot:DeleteThingShadow – (オプション) これらのアクセス許可は、クライアントデバイスシャドウと AWS IoT Core を同期する、シャドウマネージャーコンポーネントを使用するために必要です。この機能を使用するには、Greengrass nucleus v2.6.0 以降、シャドウマネージャー v2.2.0 以降、および MQTT ブリッジ v2.2.0 以降が必要です。

  10. (オプション) コアデバイスがシャドウを AWS IoT Core と同期できるようにするには、ポリシーに次のステートメントを追加します。クライアントのデバイスシャドウとやり取りは行うものの、それらを AWS IoT Core と同期させない場合には、この手順をスキップしてください。region および account-id は、使用するリージョンと、自分の AWS アカウント 番号に置き換えます。

    • このサンプルステートメントは、すべてのモノのデバイスシャドウへのアクセスを許可します。セキュリティのベストプラクティスに従うには、コアデバイスと、コアデバイスに接続するクライアントデバイスのみにアクセスを制限します。詳細については、「クライアントデバイスをサポートするための最低限の AWS IoT ポリシー」を参照してください。

    { "Effect": "Allow", "Action": [ "iot:GetThingShadow", "iot:UpdateThingShadow", "iot:DeleteThingShadow" ], "Resource": [ "arn:aws:iot:region:account-id:thing/*" ] }

    このステートメントを追加した後のポリシードキュメントは、次の例のようになります。

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "iot:Connect", "iot:Publish", "iot:Subscribe", "iot:Receive", "greengrass:*" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "iot:GetThingShadow", "iot:UpdateThingShadow", "iot:DeleteThingShadow" ], "Resource": [ "arn:aws:iot:region:account-id:thing/*" ] } ] }
  11. 新しいポリシーバージョンをアクティブなバージョンとして設定するには、[Policy version status] (ポリシーバージョンのステータス) で、[Set the edited version as the active version for this policy] (編集したバージョンをこのポリシーのアクティブバージョンとして設定) を選択します。

  12. [Save as new version] (新しいバージョンとして保存) を選択します。

  1. コアデバイスの AWS IoT モノのプリンシパルをリスト表示します。モノのプリンシパルは X.509 デバイス証明書またはその他の識別子にすることができます。次のコマンドを実行し、 をコアデバイスの名前MyGreengrassCoreに置き換えます。

    aws iot list-thing-principals --thing-name MyGreengrassCore

    この動作は、コアデバイスのモノのプリンシパルをリスト表示するレスポンスを返します。

    { "principals": [ "arn:aws:iot:us-west-2:123456789012:cert/certificateId" ] }
  2. コアデバイスのアクティブな証明書を特定します。以下のコマンドを実行して、アクティブな証明書が見つかるまで、certificateId を前の手順からの各証明書の ID に置き換えます。証明書 ID は、証明書 ARN の末尾にある 16 進数の文字列です。--query 引数は、証明書のステータスのみを出力するように指定しています。

    aws iot describe-certificate --certificate-id certificateId --query 'certificateDescription.status'

    この操作では、証明書の状態が文字列で返されます。例えば、証明書がアクティブな場合、この操作は "ACTIVE" を出力します。

  3. 証明書にアタッチされている AWS IoT ポリシーをリスト表示します。次のコマンドを実行し、証明書 ARN を証明書の ARN に置き換えます。

    aws iot list-principal-policies --principal arn:aws:iot:us-west-2:123456789012:cert/certificateId

    この操作は、証明書にアタッチされている AWS IoT ポリシーのリストを返します。

    { "policies": [ { "policyName": "GreengrassTESCertificatePolicyMyGreengrassCoreTokenExchangeRoleAlias", "policyArn": "arn:aws:iot:us-west-2:123456789012:policy/GreengrassTESCertificatePolicyMyGreengrassCoreTokenExchangeRoleAlias" }, { "policyName": "GreengrassV2IoTThingPolicy", "policyArn": "arn:aws:iot:us-west-2:123456789012:policy/GreengrassV2IoTThingPolicy" } ] }
  4. 表示して更新するポリシーを選択します。

    注記

    リソースのプロビジョニングに AWS IoT Greengrass Core ソフトウェアインストーラを使用している場合、2 つの AWS IoT ポリシーが存在します。存在する場合は、GreengrassV2IoTThingPolicy という名前のポリシーを選択することをお勧めします。クイックインストーラで作成するコアデバイスは、デフォルトでこのポリシー名を使用します。このポリシーにアクセス許可を追加すると、このポリシーを使用する他のコアデバイスにもこれらのアクセス許可が付与されます。

  5. ポリシーのドキュメントを取得します。次のコマンドを実行し、GreengrassV2IoTThingPolicy をポリシーの名前に置き換えます。

    aws iot get-policy --policy-name GreengrassV2IoTThingPolicy

    この操作は、ポリシーのドキュメントとポリシーに関するその他の情報が含まれるレスポンスを返します。ポリシードキュメントは、文字列としてシリアル化された JSON オブジェクトです。

    { "policyName": "GreengrassV2IoTThingPolicy", "policyArn": "arn:aws:iot:us-west-2:123456789012:policy/GreengrassV2IoTThingPolicy", "policyDocument": "{\ \\"Version\\": \\"2012-10-17\\",\ \\"Statement\\": [\ {\ \\"Effect\\": \\"Allow\\",\ \\"Action\\": [\ \\"iot:Connect\\",\ \\"iot:Publish\\",\ \\"iot:Subscribe\\",\ \\"iot:Receive\\",\ \\"greengrass:*\\"\ ],\ \\"Resource\\": \\"*\\"\ }\ ]\ }", "defaultVersionId": "1", "creationDate": "2021-02-05T16:03:14.098000-08:00", "lastModifiedDate": "2021-02-05T16:03:14.098000-08:00", "generationId": "f19144b798534f52c619d44f771a354f1b957dfa2b850625d9f1d0fde530e75f" }
  6. オンラインコンバータまたはその他のツールを使用して、ポリシードキュメント文字列を JSON オブジェクトに変換し、iot-policy.json という名前のファイルに保存します。

    例えば、jq ツールがインストールされている場合には、次のコマンドを実行してポリシードキュメントを取得し、JSON オブジェクトに変換してから、ポリシードキュメントを JSON オブジェクトとして保存することができます。

    aws iot get-policy --policy-name GreengrassV2IoTThingPolicy --query 'policyDocument' | jq fromjson >> iot-policy.json
  7. 必要なアクセス許可についてポリシーを確認し、不足していれば必要なアクセス許可を追加します。

    例えば、Linux ベースのシステムでは、次のコマンドを実行し、GNU nano を使用してファイルを開きます。

    nano iot-policy.json
    • greengrass:PutCertificateAuthorities

    • greengrass:VerifyClientDeviceIdentity

    • greengrass:VerifyClientDeviceIoTCertificateAssociation

    • greengrass:GetConnectivityInfo

    • greengrass:UpdateConnectivityInfo - (オプション) このアクセス許可は、コアデバイスのネットワーク接続に関する情報を AWS IoT Greengrass クラウドサービスに報告する IP 検出コンポーネントを使用するために必要です。

    • iot:GetThingShadowiot:UpdateThingShadow、および iot:DeleteThingShadow – (オプション) これらのアクセス許可は、クライアントデバイスシャドウと AWS IoT Core を同期する、シャドウマネージャーコンポーネントを使用するために必要です。この機能を使用するには、Greengrass nucleus v2.6.0 以降、シャドウマネージャー v2.2.0 以降、および MQTT ブリッジ v2.2.0 以降が必要です。

  8. 変更をポリシーの新しいバージョンとして保存します。次のコマンドを実行し、GreengrassV2IoTThingPolicy をポリシーの名前に置き換えます。

    aws iot create-policy-version --policy-name GreengrassV2IoTThingPolicy --policy-document file://iot-policy.json --set-as-default

    成功すると、次の例に類似したレスポンスが返されます。

    { "policyArn": "arn:aws:iot:us-west-2:123456789012:policy/GreengrassV2IoTThingPolicy", "policyDocument": "{\ \\"Version\\": \\"2012-10-17\\",\ \\"Statement\\": [\ {\ \\"Effect\\": \\"Allow\\",\ \\"Action\\": [\ \\t\\t\\"iot:Connect\\",\ \\t\\t\\"iot:Publish\\",\ \\t\\t\\"iot:Subscribe\\",\ \\t\\t\\"iot:Receive\\",\ \\t\\t\\"greengrass:*\\"\ ],\ \\"Resource\\": \\"*\\"\ }\ ]\ }", "policyVersionId": "2", "isDefaultVersion": true }

クライアントデバイスサポート用の Greengrass コンポーネント

重要

コアデバイスでクライアントデバイスをサポートするため、Greengrass nucleus v2.2.0 以降が実行されている必要があります

クライアントデバイスがコアデバイスに接続して通信できるようにするには、コアデバイスに次の Greengrass コンポーネントをデプロイします。

  • クライアントデバイス認証 (aws.greengrass.clientdevices.Auth)

    クライアントデバイス認証コンポーネントをデプロイして、クライアントデバイスを認証し、クライアントデバイスのアクションを承認します。このコンポーネントは、AWS IoT モノがコアデバイスに接続できるようにします。

    このコンポーネントを使用するには、いくつかの設定が必要です。クライアントデバイスのグループを指定して、MQTT を介した接続や通信などの各グループが実行することができる操作を指定する必要があります。詳細については、「クライアントデバイス認証コンポーネントの設定」を参照してください。

  • MQTT 3.1.1 ブローカー (モケット) (aws.greengrass.clientdevices.mqtt.Moquette)

    軽量な MQTT ブローカーを実行するため、Moquette MQTT ブローカーコンポーネントをデプロイします。Moquette MQTT ブローカーは MQTT 3.1.1 に準拠しており、QoS 0、QoS 1、QoS 2、保持されたメッセージ、Last Will メッセージ、および永続サブスクリプションに対するローカルサポートが含まれます。

    使用するにあたり、このコンポーネントを設定する必要はありません。ただし、このコンポーネントが MQTT ブローカを操作するポートを設定することができます。デフォルトではポート 8883 が使用されます。

  • MQTT 5 ブローカー (EMQX) (aws.greengrass.clientdevices.mqtt.EMQX)

    注記

    EMQX MQTT 5 ブローカーを使用するには、Greengrass nucleus v2.6.0 以降と、クライアントデバイスの v2.2.0 以降による認証を使用する必要があります。

    クライアントデバイスとコアデバイス間の通信で MQTT 5.0 機能を使用するために、EMQX MQTT ブローカーコンポーネントをデプロイします。EMQX MQTT ブローカーは MQTT 5.0 に準拠しており、セッションとメッセージの有効期限、ユーザープロパティ、共有サブスクリプション、トピックエイリアスなどのサポートが含まれます。

    使用するにあたり、このコンポーネントを設定する必要はありません。ただし、このコンポーネントが MQTT ブローカを操作するポートを設定することができます。デフォルトではポート 8883 が使用されます。

  • MQTT ブリッジ (aws.greengrass.clientdevices.mqtt.Bridge)

    (オプション) MQTT ブリッジコンポーネントをデプロイして、クライアントデバイス (ローカル MQTT)、ローカルパブリッシュ/サブスクライブ、および AWS IoT Core MQTT 間でメッセージをリレーします。クライアントデバイスを AWS IoT Core と同期するようにこのコンポーネントを設定し、Greengrass コンポーネントからクライアントデバイスとやり取りします。

    このコンポーネントを使用するには、設定する必要があります。このコンポーネントがメッセージをリレーするトピックマッピングを指定する必要があります。詳細については、「MQTT ブリッジコンポーネントの設定」を参照してください。

  • IP ディテクター (aws.greengrass.clientdevices.IPDetector)

    (オプション) IP 検出コンポーネントをデプロイして、コアデバイスの MQTT ブローカエンドポイントを AWS IoT Greengrass クラウドサービスに自動的に報告します。ルータがコアデバイスに MQTT ブローカポートを転送する場合など、複雑なネットワーク設定がある場合には、このコンポーネントを使用することはできません。

    使用するにあたり、このコンポーネントを設定する必要はありません。

  • シャドウマネージャー (aws.greengrass.ShadowManager)

    注記

    クライアントデバイスのシャドウを管理するには、Greengrass nucleus v2.6.0 以降、シャドウマネージャー v2.2.0 以降、および MQTT ブリッジ v2.2.0 以降を使用する必要があります。

    (オプション) シャドウマネージャーコンポーネントをデプロイして、コアデバイスのクライアントのデバイスシャドウを管理します。Greengrass コンポーネントは、クライアントデバイスとのやり取りのため、クライアントのデバイスシャドウを取得、更新、削除します。クライアントのデバイスシャドウを AWS IoT Core のクラウドサービスを同期するように、シャドウマネージャーコンポーネントを設定することも可能です。

    このコンポーネントをクライアントのデバイスシャドウとともに使用するには、クライアントデバイスとシャドウマネージャー間でメッセージを伝達するように、(ローカルの公開/サブスクライブを使用する) MQTT ブリッジコンポーネントを設定する必要があります。それ以外の場合、このコンポーネントの使用には設定を必要としませんが、デバイスシャドウを同期する際には設定が必要となります。

注記

デプロイする MQTT ブローカーコンポーネントは、1 つだけにすることをお勧めします。MQTT ブリッジIP ディテクターコンポーネントは、一度に 1 つの MQTT ブローカーコンポーネントとのみ動作します。デプロイする MQTT ブローカーコンポーネントが複数ある場合は、それぞれが異なるポートを使用する設定を行う必要があります。

クラウドディスカバリを設定する (コンソール)

AWS IoT Greengrass コンソールを使用して、クライアントデバイスを関連付けて、コアデバイスのエンドポイントを管理し、コンポーネントをデプロイして、クライアントデバイスへのサポートを有効にすることができます。詳細については、「ステップ 2: クライアントデバイスのサポートを有効にする」を参照してください。

クラウドディスカバリを設定する (AWS CLI)

AWS Command Line Interface (AWS CLI) を使用して、クライアントデバイスを関連付けて、コアデバイスのエンドポイントを管理し、コンポーネントをデプロイして、クライアントデバイスへのサポートを有効にすることができます。詳細については、次を参照してください。