

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

# デバイスを設定する
<a name="configure-device"></a>

このセクションでは、デバイスを設定して AWS IoT Coreに接続する方法について説明します。の使用を開始する AWS IoT Core が、まだデバイスがない場合は、Amazon EC2 を使用して仮想デバイスを作成するか、Windows PC または Mac を IoT デバイスとして使用できます。

試す最適なデバイスオプションを選択します AWS IoT Core。もちろん、すべてを試すこともできますが、一度に試すのは 1 つのみにしてください。どのデバイスオプションが最適かわからない場合は、[最適なデバイスオプションを選択する方法](iot-gs-first-thing.md#choosing-a-gs-system)を読んでから、このページに戻ってください。

**デバイスオプション**
+ [Amazon EC2 を使用して仮想デバイスを作成する](creating-a-virtual-thing.md)
+ [Windows または Linux の PC または Mac を AWS IoT デバイスとして使用する](using-laptop-as-device.md)
+ [Raspberry Pi または他のデバイスを接続する](connecting-to-existing-device.md)

# Amazon EC2 を使用して仮想デバイスを作成する
<a name="creating-a-virtual-thing"></a>

このチュートリアルでは、クラウドで仮想デバイスとして機能する Amazon EC2 インスタンスを作成します。

このチュートリアルを完了するには、 が必要です AWS アカウント。アカウントをお持ちではない場合、続行する前に、[セットアップ AWS アカウント](setting-up.md) に記載されている手順を完了してください。

**Topics**
+ [Amazon EC2 インスタンスをセットアップする](#set-up-ec2)
+ [Git、Node.js をインストールし、 を設定する AWS CLI](#install-git-node)
+ [仮想デバイスの AWS IoT リソースを作成する](#ec2-create-certificate)
+ [AWS IoT Device SDK for JavaScript をインストールする](#ec2-sdk)
+ [サンプルアプリケーションを実行する](#ec2-run-app)
+ [AWS IoT コンソールでサンプルアプリからのメッセージを表示する](#ec2-view-msg)

## Amazon EC2 インスタンスをセットアップする
<a name="set-up-ec2"></a>

次の手順は、物理デバイスの代わりに仮想デバイスとして機能する Amazon EC2 インスタンスを作成する方法を示しています。

これが作成する最初の Amazon EC2 インスタンスの場合、「[Amazon EC2 Linux インスタンスの開始方法](https://docs.aws.amazon.com//AWSEC2/latest/UserGuide/EC2_GetStarted.html)」を参照してください。

**インスタンスを起動するには**

1. Amazon EC2 コンソールの [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/) を開いてください。

1. 左側のコンソールメニューから **[Instances]** (インスタンス) セクションを展開し、**[Instances]** (インスタンス) を選択します。**[Instances]** (インスタンス) ダッシュボードから、右側の **[Launch instances]** (インスタンスの起動) を選択すると、基本設定のリストが表示されます。

1. **[Name and tags]** (名前とタグ) セクションで、インスタンスの名前を入力し、オプションでタグを追加します。

1. **[Application and OS Images (Amazon Machine Image)]** (アプリケーションと OS イメージ (Amazon マシンイメージ) ) セクションで、*Amazon Linux 2 AMI (HVM)* など、インスタンス用の AMI テンプレートを選択します。この AMI が「Free tier eligible」(無料利用枠対象) としてマークされていることに注意してください。

1. **[Instance type]** (インスタンスタイプ) セクションで、インスタンスのハードウェア設定を選択できます。デフォルトで選択されている `t2.micro` タイプを選択します。このインスタンスタイプは無料利用枠の対象であることに注意してください。

1. **[Key pair (login)]** (キーペア (ログイン)) セクションでドロップダウンリストからキーペア名を選択するか、**[Create a new key pair]** (新しいキーペアの作成) を選択して新しいキーペアを作成します。新しいキーペアを作成するときは、プライベートキーファイルをダウンロードして安全な場所に保存してください。これは、ダウンロードして保存する唯一の機会だからです。インスタンスを起動する際はキーペアの名前を指定する必要があり、インスタンスに接続する際は毎回対応するプライベートキーを指定する必要があります。
**警告**  
**[Proceed without a key pair]** (キーペアオプションなしで続行) を選択しないでください。キーペアなしでインスタンスを起動すると、インスタンスに接続できません。

1. **[Network settings]** (ネットワーク設定) セクションと **[Configure storage**] (ストレージの設定) セクションでは、デフォルト設定のままでかまいません。準備ができたら、**[Launch Instances]** (インスタンスの起動) を選択します。

1. インスタンスを起動することを知らせる確認ページが表示されます。**インスタンスの表示**を選択して確認ページを閉じ、コンソールに戻ります。

1. **インスタンス**画面で、起動のステータスを確認できます。インスタンスの起動には短時間かかります。インスタンスを起動すると、その初期状態は `pending` です。インスタンスがスタートすると、その状態は `running` に変わり、公開 DNS 名を受け取ります。(**公開 DNS (IPv4)** 列が非表示の場合は、ページの右上隅にある **列の表示 / 非表示** (歯車のシェープをしたアイコン) を選択してから、**公開 DNS (IPv4)** を選択します。)

1. インスタンスが接続できるようになるまで、インスタンスの準備が整うまでに数分かかる場合があります。インスタンスのステータスチェックが正常に終了したことを確認してください。この情報は [**Status Checks**] 列で確認できます。

   新しいインスタンスがステータスチェックに合格したら、次の手順に進み、それに接続します。

**インスタンスに接続するには**

Amazon EC2 コンソールからインスタンスを選択し、Amazon EC2 Instance Connect を使用して接続することを選択することにより、ブラウザベースのクライアントを使用してインスタンスに接続できます。Instance Connect はアクセス許可を処理し、正常な接続を提供します。

1. Amazon EC2 コンソールの [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/) を開いてください。

1. 左のメニューで、**[Instances]** (インスタンス) を選択します。

1. インスタンスを選択し、[**接続**] を選択してください。

1. **[Amazon EC2 Instance Connect]**、**[Connect]** (接続) を選択します。

これで、新しい Amazon EC2 インスタンスにログインする **Amazon EC2 Instance Connect** ウィンドウができたはずです。

## Git、Node.js をインストールし、 を設定する AWS CLI
<a name="install-git-node"></a>

このセクションでは、Git と Node.js を Linux インスタンスにインストールします。

**Git をインストールするには**

1. **Amazon EC2 Instance Connect** ウィンドウで、次のコマンドを使用してインスタンスを更新します。

   ```
   sudo yum update -y
   ```

1. **Amazon EC2 Instance Connect**ウィンドウで、次のコマンドを使用して Git をインストールします。

   ```
   sudo yum install git -y
   ```

1. Git がインストールされているかどうか、および Git の現在のバージョンを確認するには、次のコマンドを実行します。

   ```
   git --version
   ```

**Node.js をインストールするには**

1. **Amazon EC2 Instance Connect** ウィンドウで、次のコマンドを使用してノードバージョンマネージャー (nvm) をインストールします。

   ```
   curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.34.0/install.sh | bash
   ```

   nvm では Node.js の複数のバージョンをインストールすることができ、またそれらの切り替えもできるため、nvm を使用して Node.js をインストールします。

1. **Amazon EC2 Instance Connect** ウィンドウで、このコマンドを使用して nvm を有効にします。

   ```
   . ~/.nvm/nvm.sh
   ```

1. **Amazon EC2 Instance Connect** ウィンドウで、このコマンドを使用して、nvm を使用し、最新バージョンの Node.js をインストールします。

   ```
   nvm install 16
   ```
**注記**  
Node.js の最新の LTS リリースがインストールされます。

   Node.js をインストールすると、Node Package Manager (npm) もインストールされるため、必要に応じて追加のモジュールをインストールできます。

1. **Amazon EC2 Instance Connect** ウィンドウで、このコマンドを使用して、その Node.js がインストールされ、正しく実行されていることをテストします。

   ```
   node -e "console.log('Running Node.js ' + process.version)"
   ```

    このチュートリアルでは Node v10.0 以降が必要です。詳細については、「[チュートリアル: Amazon EC2 インスタンスでの Node.js のセットアップ](https://docs.aws.amazon.com/sdk-for-javascript/v2/developer-guide/setting-up-node-on-ec2-instance.html)」を参照してください。

**を設定するには AWS CLI**

Amazon EC2 インスタンスには、 AWS CLIがプリロードされています。ただし、 AWS CLI プロファイルを完了する必要があります。CLI の設定方法の詳細については、「[AWS CLIの設定](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-configure.html)」を参照してください。

1. 次の例は、サンプル値を示しています。それらを自分の値に置き換えます。これらの値は、[AWS コンソールの **[My Security Credentials]** (セキュリティ認証情報) の下のアカウント情報](https://console.aws.amazon.com//iam/home#/security_credentials)で確認できます。

   **Amazon EC2 Instance Connect** ウィンドウで、次のコマンドを入力します。

   ```
   aws configure
   ```

   その後、表示されるプロンプトでアカウントの値を入力します。

   ```
   AWS Access Key ID [None]: AKIAIOSFODNN7EXAMPLE
   AWS Secret Access Key [None]: wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY
   Default region name [None]: us-west-2
   Default output format [None]: json
   ```

1. 次のコマンドを使用して AWS CLI 設定をテストできます。

   ```
   aws iot describe-endpoint --endpoint-type iot:Data-ATS
   ```

   が正しく設定されている場合、 コマンド AWS CLI は からエンドポイントアドレスを返す必要があります AWS アカウント。

## 仮想デバイスの AWS IoT リソースを作成する
<a name="ec2-create-certificate"></a>

このセクションでは、 を使用してモノのオブジェクトとその証明書ファイルを仮想デバイスに直接 AWS CLI 作成する方法について説明します。これは、別のコンピュータからデバイスにコピーすることで生じる可能性のある複雑さを避けるために、デバイス上で直接行われます。このセクションでは、仮想デバイス用に次のリソースを作成します。
+ 仮想デバイスを表すモノのオブジェクト AWS IoT。
+ 仮想デバイスを認証するための証明書。
+ 仮想デバイスが AWS IoTに接続し、メッセージを発行、受信、およびサブスクライブすることを許可するポリシードキュメント。

**Linux インスタンスで AWS IoT モノのオブジェクトを作成するには**

に接続されたデバイスは AWS IoT 、 AWS IoT レジストリ内の*モノのオブジェクト*によって表されます。*モノのオブジェクト*は、特定のデバイスまたは論理エンティティを表します。この場合、*モノのオブジェクト*は仮想デバイス、つまりこの Amazon EC2 インスタンスを表します。

1. **Amazon EC2 Instance Connect** ウィンドウで、次のコマンドを実行してモノのオブジェクトを作成します。

   ```
   aws iot create-thing --thing-name "MyIotThing"
   ```

1. JSON レスポンスは以下のようになります。

   ```
   {
       "thingArn": "arn:aws:iot:your-region:your-aws-account:thing/MyIotThing", 
       "thingName": "MyIotThing",
       "thingId": "6cf922a8-d8ea-4136-f3401EXAMPLE"
   }
   ```

**Linux インスタンスで AWS IoT キーと証明書を作成してアタッチするには**

**[create-keys-and-certificate](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/iot/create-keys-and-certificate.html)** コマンドを実行すると、Amazon ルート認証局によって署名されたクライアント証明書が作成されます。この証明書は、仮想デバイスの ID を認証するために使用されます。

1. **Amazon EC2 Instance Connect**ウィンドウで、証明書とキーファイルを保存するディレクトリを作成します。

   ```
   mkdir ~/certs
   ```

1. **Amazon EC2 Instance Connect** ウィンドウで、このコマンドを使用して、Amazon 認証機関 (CA) 証明書のコピーをダウンロードします。

   ```
   curl -o ~/certs/Amazon-root-CA-1.pem \
       https://www.amazontrust.com/repository/AmazonRootCA1.pem
   ```

1. **Amazon EC2 Instance Connect** ウィンドウで、次のコマンドを実行して、プライベートキー、パブリックキー、および X.509 証明書ファイルを作成します。このコマンドは、証明書を に登録してアクティブ化します AWS IoT。

   ```
   aws iot create-keys-and-certificate \
       --set-as-active \
       --certificate-pem-outfile "~/certs/device.pem.crt" \
       --public-key-outfile "~/certs/public.pem.key" \
       --private-key-outfile "~/certs/private.pem.key"
   ```

   レスポンスは次のようになります。`certificateArn` を保存して、後続のコマンドで使用できるようにします。証明書をモノにアタッチし、後の手順で証明書にポリシーをアタッチするには、この証明書が必要になります。

   ```
   {
       "certificateArn": "arn:aws:iot:us-west-2:123456789012:cert/9894ba17925e663f1d29c23af4582b8e3b7619c31f3fbd93adcb51ae54b83dc2",
       "certificateId": "9894ba17925e663f1d29c23af4582b8e3b7619c31f3fbd93adcb51ae54b83dc2",
       "certificatePem": "
   -----BEGIN CERTIFICATE-----
   MIICiTCCEXAMPLE6m7oRw0uXOjANBgkqhkiG9w0BAQUFADCBiDELMAkGA1UEBhMC
   VVMxCzAJBgNVBAgEXAMPLEAwDgYDVQQHEwdTZWF0dGxlMQ8wDQYDVQQKEwZBbWF6
   b24xFDASBgNVBAsTC0lBTSEXAMPLE2xlMRIwEAYDVQQDEwlUZXN0Q2lsYWMxHzAd
   BgkqhkiG9w0BCQEWEG5vb25lQGFtYEXAMPLEb20wHhcNMTEwNDI1MjA0NTIxWhcN
   MTIwNDI0MjA0NTIxWjCBiDELMAkGA1UEBhMCEXAMPLEJBgNVBAgTAldBMRAwDgYD
   VQQHEwdTZWF0dGxlMQ8wDQYDVQQKEwZBbWF6b24xFDAEXAMPLEsTC0lBTSBDb25z
   b2xlMRIwEAYDVQQDEwlUZXN0Q2lsYWMxHzAdBgkqhkiG9w0BCQEXAMPLE25lQGFt
   YXpvbi5jb20wgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAMaK0dn+aEXAMPLE
   EXAMPLEfEvySWtC2XADZ4nB+BLYgVIk60CpiwsZ3G93vUEIO3IyNoH/f0wYK8m9T
   rDHudUZEXAMPLELG5M43q7Wgc/MbQITxOUSQv7c7ugFFDzQGBzZswY6786m86gpE
   Ibb3OhjZnzcvQAEXAMPLEWIMm2nrAgMBAAEwDQYJKoZIhvcNAQEFBQADgYEAtCu4
   nUhVVxYUntneD9+h8Mg9qEXAMPLEyExzyLwaxlAoo7TJHidbtS4J5iNmZgXL0Fkb
   FFBjvSfpJIlJ00zbhNYS5f6GuoEDEXAMPLEBHjJnyp378OD8uTs7fLvjx79LjSTb
   NYiytVbZPQUQ5Yaxu2jXnimvw3rrszlaEXAMPLE=
   -----END CERTIFICATE-----\n",
       "keyPair": {
           "PublicKey": "-----BEGIN PUBLIC KEY-----\nMIIBIjANBgkqhkEXAMPLEQEFAAOCAQ8AMIIBCgKCAQEAEXAMPLE1nnyJwKSMHw4h\nMMEXAMPLEuuN/dMAS3fyce8DW/4+EXAMPLEyjmoF/YVF/gHr99VEEXAMPLE5VF13\n59VK7cEXAMPLE67GK+y+jikqXOgHh/xJTwo+sGpWEXAMPLEDz18xOd2ka4tCzuWEXAMPLEahJbYkCPUBSU8opVkR7qkEXAMPLE1DR6sx2HocliOOLtu6Fkw91swQWEXAMPLE\GB3ZPrNh0PzQYvjUStZeccyNCx2EXAMPLEvp9mQOUXP6plfgxwKRX2fEXAMPLEDa\nhJLXkX3rHU2xbxJSq7D+XEXAMPLEcw+LyFhI5mgFRl88eGdsAEXAMPLElnI9EesG\nFQIDAQAB\n-----END PUBLIC KEY-----\n",
           "PrivateKey": "-----BEGIN RSA PRIVATE KEY-----\nkey omitted for security reasons\n-----END RSA PRIVATE KEY-----\n"
       }
   }
   ```

1. **Amazon EC2 Instance Connect** ウィンドウで、次のコマンドと、前のコマンドからの応答に含まれている *certificateArn* を使用して、作成したばかりの証明書にモノのオブジェクトをアタッチします。

   ```
   aws iot attach-thing-principal \
       --thing-name "MyIotThing" \
       --principal "certificateArn"
   ```

   成功した場合、このコマンドは出力を表示しません。

**ポリシーを作成してアタッチするには**

1. **Amazon EC2 Instance Connect**ウィンドウで、このポリシードキュメントをコピーして **\$1/policy.json**という名前のファイルに貼り付け、ポリシーファイルを作成します。

   お気に入りの Linux エディタがなければ、このコマンドを使用して **nano** を開くことができます。

   ```
   nano ~/policy.json
   ```

   その中に `policy.json` のポリシードキュメントを貼り付けます。ctrl-x で **nano** エディタを終了し、ファイルを保存します。

   `policy.json` のポリシードキュメントの内容。  
****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Effect": "Allow",
               "Action": [
                   "iot:Publish",
                   "iot:Subscribe",
                   "iot:Receive",
                   "iot:Connect"
               ],
               "Resource": [
                   "*"
               ]
           }
       ]
   }
   ```

1. **Amazon EC2 Instance Connect **ウィンドウで、次のコマンドを使用してポリシーを作成します。

   ```
   aws iot create-policy \
       --policy-name "MyIotThingPolicy" \
       --policy-document "file://~/policy.json"
   ```

   出力:  
****  

   ```
   {
       "policyName": "MyIotThingPolicy",
       "policyArn": "arn:aws:iot:us-east-1:your-aws-account:policy/MyIotThingPolicy",
       "policyDocument": "{
           \"Version\": \"2012-10-17\",
           \"Statement\": [
               {
                   \"Effect\": \"Allow\",
                   \"Action\": [
                       \"iot:Publish\",
                       \"iot:Receive\",
                       \"iot:Subscribe\",
                       \"iot:Connect\"
                   ],
                   \"Resource\": [
                       \"*\"
                   ]
           }
           ]
       }",
       "policyVersionId": "1"
   }
   ```

1. **Amazon EC2 Instance Connect**ウィンドウで、次のコマンドを使用して、仮想デバイスの証明書にポリシーをアタッチします。

   ```
   aws iot attach-policy \
       --policy-name "MyIotThingPolicy" \
       --target "certificateArn"
   ```

   成功した場合、このコマンドは出力を表示しません。

## AWS IoT Device SDK for JavaScript をインストールする
<a name="ec2-sdk"></a>

このセクションでは、 AWS IoT Device SDK for JavaScript をインストールします。これには、アプリケーションが AWS IoT およびサンプルプログラムとの通信に使用できるコードが含まれています。詳細については、「[AWS IoT Device SDK for JavaScript GitHub repository](https://github.com/aws/aws-iot-device-sdk-js-v2)」(Device SDK for JavaScript GitHub リポジトリ) を参照してください。

**Linux インスタンスに AWS IoT Device SDK for JavaScript をインストールするには**

1. **Amazon EC2 Instance Connect** ウィンドウで、このコマンドを使用して AWS IoT Device SDK for JavaScript リポジトリをホーム`aws-iot-device-sdk-js-v2`ディレクトリの ディレクトリにクローンします。

   ```
   cd ~
   git clone https://github.com/aws/aws-iot-device-sdk-js-v2.git
   ```

1. 前のステップで作成した `aws-iot-device-sdk-js-v2` ディレクトリに移動します。

   ```
   cd aws-iot-device-sdk-js-v2
   ```

1. npm を使用して SDK をインストールします。

   ```
   npm install
   ```

## サンプルアプリケーションを実行する
<a name="ec2-run-app"></a>

 次のセクションのコマンドは、次の表に示すように、キーおよび証明書ファイルがご利用の仮想デバイスに保存されていることを前提としています。


**証明書ファイル名**  

|  ファイル  |  ファイルパス  | 
| --- | --- | 
|  プライベートキー  |  `~/certs/private.pem.key`  | 
|  デバイス証明書  |  `~/certs/device.pem.crt`  | 
|  ルート CA 証明書  |  `~/certs/Amazon-root-CA-1.pem`  | 

このセクションでは、 AWS IoT Device SDK for JavaScript の `aws-iot-device-sdk-js-v2/samples/node` ディレクトリにある`pub-sub.js`サンプルアプリケーションをインストールして実行します。このアプリケーションは、デバイス (Amazon EC2 インスタンス) が MQTT ライブラリを使用して MQTT メッセージを発行およびサブスクライブする方法を示します。`pub-sub.js` サンプルアプリケーションは、トピック、`topic_1` をサブスクライブし、そのトピックに対して 10 個のメッセージを発行し、メッセージブローカーから受信したメッセージを表示します。

**サンプルアプリケーションをインストールして実行するには**

1. **Amazon EC2 Instance Connect** ウィンドウで、SDK が作成した `aws-iot-device-sdk-js-v2/samples/node/pub_sub` ディレクトリに移動し、これらのコマンドを使用してサンプルアプリケーションをインストールします。

   ```
   cd ~/aws-iot-device-sdk-js-v2/samples/node/pub_sub
   npm install
   ```

1. **Amazon EC2 Instance Connect** ウィンドウで、このコマンド AWS IoT を使用して から *your-iot-endpoint* を取得します。

   ```
   aws iot describe-endpoint --endpoint-type iot:Data-ATS
   ```

1. **Amazon EC2 Instance Connect** ウィンドウで、示されているように *your-iot-endpoint* を挿入し、このコマンドを実行します。

   ```
   node dist/index.js --topic topic_1 --ca_file ~/certs/Amazon-root-CA-1.pem --cert ~/certs/device.pem.crt --key ~/certs/private.pem.key --endpoint your-iot-endpoint
   ```

サンプルアプリケーション:

1.  AWS IoT Core アカウントの に接続します。

1. メッセージトピック **topic\$11** をサブスクライブし、そのトピックで受信したメッセージを表示します。

1. 10 個のメッセージをトピック、**topic\$11** に発行します。

1. 次のような出力を表示します。

   ```
   Publish received. topic:"topic_1" dup:false qos:1 retain:false
   {"message":"Hello world!","sequence":1}
   Publish received. topic:"topic_1" dup:false qos:1 retain:false
   {"message":"Hello world!","sequence":2}
   Publish received. topic:"topic_1" dup:false qos:1 retain:false
   {"message":"Hello world!","sequence":3}
   Publish received. topic:"topic_1" dup:false qos:1 retain:false
   {"message":"Hello world!","sequence":4}
   Publish received. topic:"topic_1" dup:false qos:1 retain:false
   {"message":"Hello world!","sequence":5}
   Publish received. topic:"topic_1" dup:false qos:1 retain:false
   {"message":"Hello world!","sequence":6}
   Publish received. topic:"topic_1" dup:false qos:1 retain:false
   {"message":"Hello world!","sequence":7}
   Publish received. topic:"topic_1" dup:false qos:1 retain:false
   {"message":"Hello world!","sequence":8}
   Publish received. topic:"topic_1" dup:false qos:1 retain:false
   {"message":"Hello world!","sequence":9}
   Publish received. topic:"topic_1" dup:false qos:1 retain:false
   {"message":"Hello world!","sequence":10}
   ```

サンプルアプリケーションの実行に問題がある場合は、[サンプルアプリケーションの問題をトラブルシューティングする](gs-device-troubleshoot.md) を確認してください。

コマンドラインに `--verbosity debug` パラメータを追加して、サンプルアプリケーションが実行内容に関する詳細なメッセージを表示するようにすることもできます。この情報は、問題の修正に役立つ場合があります。

## AWS IoT コンソールでサンプルアプリからのメッセージを表示する
<a name="ec2-view-msg"></a>

**AWS IoT コンソール**の**MQTT テストクライアント**を使用することで、サンプルアプリケーションメッセージがメッセージブローカーを通過するときにそれらを見ることができます。

**サンプルアプリケーションによって発行された MQTT メッセージを表示するには**

1. 確認[MQTT クライアントで AWS IoT MQTT メッセージを表示する](view-mqtt-messages.md)。これは、**AWS IoT コンソール**で **MQTT テストクライアント**を使用して、メッセージブローカーを通過する MQTT メッセージを表示する方法を学ぶのに役立ちます。

1. **AWS IoT コンソール**で **MQTT テストクライアント**を開きます。

1. 「**トピックへのサブスクライブ**」で、「**topic\$11**」というトピックをサブスクライブします。

1. **Amazon EC2 Instance Connect** ウィンドウで、サンプルアプリケーションを再度実行し、**AWS IoT コンソール**の **MQTT テストクライアント**のメッセージを確認します。

   ```
   cd ~/aws-iot-device-sdk-js-v2/samples/node/pub_sub
   node dist/index.js --topic topic_1 --ca_file ~/certs/Amazon-root-CA-1.pem --cert ~/certs/device.pem.crt --key ~/certs/private.pem.key --endpoint your-iot-endpoint
   ```

MQTT と がプロトコル AWS IoT Core をサポートする方法の詳細については、[「MQTT](https://docs.aws.amazon.com//iot/latest/developerguide/mqtt.html)」を参照してください。

# Windows または Linux の PC または Mac を AWS IoT デバイスとして使用する
<a name="using-laptop-as-device"></a>

このチュートリアルでは、 で使用するパーソナルコンピュータを設定します AWS IoT。これらの手順は、Windows および Linux の PC および Mac をサポートしています。これを行うには、コンピュータにソフトウェアをインストールする必要があります。コンピュータにソフトウェアをインストールしたくない場合は、すべてのソフトウェアを仮想マシンにインストールする [Amazon EC2 を使用して仮想デバイスを作成する](creating-a-virtual-thing.md) を試すことができます。

**Topics**
+ [パーソナルコンピュータを設定する](#gs-pc-prereqs)
+ [Git、Python、および AWS IoT Device SDK for Python のインストール](#gs-pc-sdk-node)
+ [ポリシーを設定し、サンプルアプリケーションを実行する](#gs-pc-python-app-run)
+ [AWS IoT コンソールでサンプルアプリからのメッセージを表示する](#gs-pc-view-msg)
+ [Python で共有サブスクリプションのサンプルを実行する](#gs-pc-shared-subscription-example)

## パーソナルコンピュータを設定する
<a name="gs-pc-prereqs"></a>

このチュートリアルを完了するには、インターネットに接続した Windows もしくは Linux PC または Mac が必要です。

次のステップに進む前に、コンピュータでコマンドラインウィンドウを開くことができることを確認してください。Windows PC で **cmd.exe** を使用します。Linux PC または Mac では、**Terminal** を使用します。

## Git、Python、および AWS IoT Device SDK for Python のインストール
<a name="gs-pc-sdk-node"></a>

このセクションでは、Python と AWS IoT Device SDK for Python をコンピュータにインストールします。

### Git と Python の最新バージョンをインストールする
<a name="gs-pc-node-runtime"></a>

この手順では、最新バージョンの Git と Python をパーソナルコンピュータにインストールする方法について説明します。

**Git と Python をダウンロードしてコンピュータにインストールするには**

1. Git がコンピュータにインストールされているかどうかを確認します。このコマンドをコマンドラインに入力します。

   ```
   git --version
   ```

   コマンドが Git バージョンを表示する場合は、Git がインストールされており、次のステップに進むことができます。

   コマンドがエラーを表示する場合は、[https://git-scm.com/download](https://git-scm.com/download)を開いてコンピュータに Git をインストールします。

1. Python が既にインストールされているかどうかを確認します。このコマンドをコマンドラインに入力します。

   ```
   python -V
   ```
**注記**  
このコマンドがエラー `Python was not found` を表示する場合、オペレーティングシステムが Python v3.x 実行可能ファイルを `Python3` として呼び出していることが原因である可能性があります。その場合は、`python` のすべてのインスタンスを `python3` に置き換えて、このチュートリアルの残りの部分を続行してください。

   コマンドが Python のバージョンを表示する場合、Python は既にインストールされています。このチュートリアルには、Python v3.7 以降が必要です。

1. Python がインストールされている場合は、このセクションの残りの手順を省略できます。インストールされていない場合は、続行します。

1. [https://www.python.org/downloads/](https://www.python.org/downloads/) を開き、コンピュータ用のインストーラをダウンロードします。

1. ダウンロードが自動的にインストールを開始しなかった場合は、ダウンロードしたプログラムを実行して Python をインストールします。

1. Python のインストールを確認します。

   ```
   python -V
   ```

   コマンドが Python バージョンを表示することを確認します。Python のバージョンが表示されない場合は、再度 Python をダウンロードしてインストールしてください。

### AWS IoT Device SDK for Python のインストール
<a name="gs-pc-python-intall-sdk"></a>

**Device AWS IoT SDK for Python をコンピュータにインストールするには**

1.  AWS IoT Device SDK for Python の v2 をインストールします。

   ```
   python3 -m pip install awsiotsdk
   ```

1.  AWS IoT Device SDK for Python リポジトリをホームディレクトリの aws-iot-device-sdk-python-v2 ディレクトリにクローンします。この手順は、*ホーム*としてインストールするファイルのベースディレクトリを参照しています。

   *ホーム*ディレクトリの実際の場所は、オペレーティングシステムによって異なります。

------
#### [ Linux/macOS ]

   macOS および Linux では、*ホーム*ディレクトリは `~` です。

   ```
   cd ~ 
   git clone https://github.com/aws/aws-iot-device-sdk-python-v2.git
   ```

------
#### [ Windows ]

   Windows では、 `cmd`ウィンドウでこのコマンドを実行すると、*ホーム*ディレクトリパスを見つけることができます。

   ```
   echo %USERPROFILE%
   cd %USERPROFILE%
   git clone https://github.com/aws/aws-iot-device-sdk-python-v2.git
   ```

------
**注記**  
**cmd.exe** ではなく Windows PowerShell を使用している場合は、次のコマンドを使用します。  

   ```
   echo $home
   ```

詳細については、「[AWS IoT Device SDK for JavaScript GitHub repository](https://github.com/aws/aws-iot-device-sdk-python-v2)」(Device SDK for JavaScript GitHub リポジトリ) を参照してください。

### サンプルアプリケーションの実行を準備する
<a name="gs-pc-python-config-app"></a>

**サンプルアプリケーションを実行するためにシステムを準備するには**
+ `certs` ディレクトリを作成します。`certs` でモノのオブジェクトを作成および登録したときに保存したプライベートキー、デバイス証明書、およびルート CA 証明書ファイルを [AWS IoT リソースの作成](create-iot-resources.md) ディレクトリにコピーします。送信先ディレクトリ内の各ファイルのファイル名は、テーブル内のファイル名と一致する必要があります。

   次のセクションのコマンドは、次の表に示すように、キーおよび証明書ファイルがデバイスに保存されていることを前提としています。

------
#### [ Linux/macOS ]

  このコマンドを実行して、`certs` サブディレクトリを作成します。このサブディレクトリは、サンプルアプリケーションの実行に使用します。

  ```
  mkdir ~/certs
  ```

  新しいサブディレクトリの、次の表に示す送信先ファイルのパスにファイルをコピーします。  
**証明書ファイル名**    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/iot/latest/developerguide/using-laptop-as-device.html)

  このコマンドを実行して、`certs` ディレクトリ内のファイルを一覧表示し、それらを表に一覧表示されているファイルと比較します。

  ```
  ls -l ~/certs
  ```

------
#### [ Windows ]

  このコマンドを実行して、`certs` サブディレクトリを作成します。このサブディレクトリは、サンプルアプリケーションの実行に使用します。

  ```
  mkdir %USERPROFILE%\certs
  ```

  新しいサブディレクトリの、次の表に示す送信先ファイルのパスにファイルをコピーします。  
**証明書ファイル名**    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/iot/latest/developerguide/using-laptop-as-device.html)

  このコマンドを実行して、`certs` ディレクトリ内のファイルを一覧表示し、それらを表に一覧表示されているファイルと比較します。

  ```
  dir %USERPROFILE%\certs
  ```

------

## ポリシーを設定し、サンプルアプリケーションを実行する
<a name="gs-pc-python-app-run"></a>

このセクションでは、ポリシーを設定し、 AWS IoT Device SDK for Pythonの `aws-iot-device-sdk-python-v2/samples` ディレクトリにある `pubsub.py` サンプルスクリプトを実行します。このスクリプトは、デバイスが MQTT ライブラリを使用して MQTT メッセージを発行およびサブスクライブする方法を示します。

`pubsub.py`サンプルアプリケーションは、トピック、`test/topic` をサブスクライブし、そのトピックに対して10 個のメッセージを発行し、メッセージブローカーから受信したメッセージを表示します。

`pubsub.py` サンプルスクリプトを実行するには、次の情報が必要です。


**アプリケーションパラメータ値**  

|  Parameter  |  値がある場所  | 
| --- | --- | 
| your-iot-endpoint |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/iot/latest/developerguide/using-laptop-as-device.html)  | 

*your-iot-endpoint* 値の形式は `endpoint_id-ats.iot.region.amazonaws.com` です (例: `a3qj468EXAMPLE-ats.iot.us-west-2.amazonaws.com`)。

スクリプトを実行する前に、モノのポリシーが、接続、サブスクライブ、発行、および受信するためのアクセス許可をサンプルスクリプトに提供していることを確認してください。

**モノのリソースのポリシードキュメントを検索して確認するには**

1. [AWS IoT コンソール](https://console.aws.amazon.com//iot/home#/thinghub)の **[Things]** (モノ) リストで、デバイスを表すモノのリソースを検索します。

1. デバイスを表すモノのリソースの **[Name]** (名前) リンクを選択して、**[Thing details]** (モノの詳細) ページを開きます。

1. **[Thing details]** (モノの詳細) ページの **[Certificates]** (証明書) タブで、モノのリソースにアタッチされている証明書を選択します。リストに含まれる証明書は 1 つだけにする必要があります。複数の証明書がある場合は、デバイスにインストールされているファイルを含み、そのファイルが AWS IoT Coreへの接続に使用される証明書を選択します。

   **[Certificate]** (証明書) 詳細ページの **[Policies]** (ポリシー) タブで、証明書にアタッチされているポリシーを選択します。1 つだけにする必要があります。複数のポリシーがある場合は、それぞれについて次の手順を繰り返して、少なくとも 1 つのポリシーで必要なアクセスが許可されていることを確認します。

1. **[Policy]** (ポリシー) 概要ページで、JSON エディタを検索し、**[Edit policy document]** (ポリシードキュメントの編集) を選択して、必要に応じてポリシードキュメントを確認および編集します。

1. 次の例では、ポリシー JSON が表示されます。`"Resource"` 要素で、 を各`Resource`値の AWS アカウント AWS リージョン と `region:account`に置き換えます。  
****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Effect": "Allow",
               "Action": [
                   "iot:Publish",
                   "iot:Receive"
               ],
               "Resource": [
               "arn:aws:iot:us-east-1:123456789012:topic/test/topic"
               ]
           },
           {
               "Effect": "Allow",
               "Action": [
                   "iot:Subscribe"
               ],
               "Resource": [
               "arn:aws:iot:us-east-1:123456789012:topicfilter/test/topic"
               ]
           },
           {
               "Effect": "Allow",
               "Action": [
                   "iot:Connect"
               ],
               "Resource": [
               "arn:aws:iot:us-east-1:123456789012:client/test-*"
               ]
           }
       ]
   }
   ```

------
#### [ Linux/macOS ]

**Linux/macOS でサンプルスクリプトを実行するには**

1. コマンドラインウィンドウで、SDK がこれらのコマンドを使用して作成した `~/aws-iot-device-sdk-python-v2/samples/node/pub_sub` ディレクトリに移動します。

   ```
   cd ~/aws-iot-device-sdk-python-v2/samples
   ```

1. コマンドラインウィンドウに示されているように、*your-iot-endpoint* を置き換えて、このコマンドを実行します。

   ```
   python3 pubsub.py --endpoint your-iot-endpoint --ca_file ~/certs/Amazon-root-CA-1.pem --cert ~/certs/device.pem.crt --key ~/certs/private.pem.key
   ```

------
#### [ Windows ]

**Windows PC でサンプルアプリケーションを実行するには**

1. コマンドラインウィンドウで、SDK が作成した `%USERPROFILE%\aws-iot-device-sdk-python-v2\samples` ディレクトリに移動し、これらのコマンドを使用してサンプルアプリケーションをインストールします。

   ```
   cd %USERPROFILE%\aws-iot-device-sdk-python-v2\samples
   ```

1. コマンドラインウィンドウに示されているように、*your-iot-endpoint* を置き換えて、このコマンドを実行します。

   ```
   python3 pubsub.py --endpoint your-iot-endpoint --ca_file %USERPROFILE%\certs\Amazon-root-CA-1.pem --cert %USERPROFILE%\certs\device.pem.crt --key %USERPROFILE%\certs\private.pem.key
   ```

------

サンプルスクリプト:

1.  AWS IoT Core アカウントの に接続します。

1. メッセージトピックの **test/topic** をサブスクライブし、そのトピックで受信したメッセージを表示します。

1. トピック **test/topic** に 10 個のメッセージを発行します。

1. 次のような出力を表示します。

```
Connected!
Subscribing to topic 'test/topic'...
Subscribed with QoS.AT_LEAST_ONCE
Sending 10 message(s)
Publishing message to topic 'test/topic': Hello World! [1]
Received message from topic 'test/topic': b'"Hello World! [1]"'
Publishing message to topic 'test/topic': Hello World! [2]
Received message from topic 'test/topic': b'"Hello World! [2]"'
Publishing message to topic 'test/topic': Hello World! [3]
Received message from topic 'test/topic': b'"Hello World! [3]"'
Publishing message to topic 'test/topic': Hello World! [4]
Received message from topic 'test/topic': b'"Hello World! [4]"'
Publishing message to topic 'test/topic': Hello World! [5]
Received message from topic 'test/topic': b'"Hello World! [5]"'
Publishing message to topic 'test/topic': Hello World! [6]
Received message from topic 'test/topic': b'"Hello World! [6]"'
Publishing message to topic 'test/topic': Hello World! [7]
Received message from topic 'test/topic': b'"Hello World! [7]"'
Publishing message to topic 'test/topic': Hello World! [8]
Received message from topic 'test/topic': b'"Hello World! [8]"'
Publishing message to topic 'test/topic': Hello World! [9]
Received message from topic 'test/topic': b'"Hello World! [9]"'
Publishing message to topic 'test/topic': Hello World! [10]
Received message from topic 'test/topic': b'"Hello World! [10]"'
10 message(s) received.
Disconnecting...
Disconnected!
```

サンプルアプリケーションの実行に問題がある場合は、[サンプルアプリケーションの問題をトラブルシューティングする](gs-device-troubleshoot.md) を確認してください。

コマンドラインに `--verbosity Debug` パラメータを追加して、サンプルアプリケーションが実行内容に関する詳細なメッセージを表示するようにすることもできます。この情報は、問題の修正に役立ちます。

## AWS IoT コンソールでサンプルアプリからのメッセージを表示する
<a name="gs-pc-view-msg"></a>

**AWS IoT コンソール**の**MQTT テストクライアント**を使用することで、サンプルアプリケーションメッセージがメッセージブローカーを通過するときにそれらを見ることができます。

**サンプルアプリケーションによって発行された MQTT メッセージを表示するには**

1. 確認[MQTT クライアントで AWS IoT MQTT メッセージを表示する](view-mqtt-messages.md)。これは、**AWS IoT コンソール**で **MQTT テストクライアント**を使用して、メッセージブローカーを通過する MQTT メッセージを表示する方法を学ぶのに役立ちます。

1. **AWS IoT コンソール**で **MQTT テストクライアント**を開きます。

1. 「**トピックへのサブスクライブ**」で、トピック、「**テスト/トピック**」をサブスクライブします。

1. コマンドラインウィンドウで、サンプルアプリケーションを再度実行し、**AWS IoT コンソール**の **MQTT クライアント**でメッセージを確認します。

------
#### [ Linux/macOS ]

   ```
   cd ~/aws-iot-device-sdk-python-v2/samples
   python3 pubsub.py --topic test/topic --ca_file ~/certs/Amazon-root-CA-1.pem --cert ~/certs/device.pem.crt --key ~/certs/private.pem.key --endpoint your-iot-endpoint
   ```

------
#### [ Windows ]

   ```
   cd %USERPROFILE%\aws-iot-device-sdk-python-v2\samples
   python3 pubsub.py --topic test/topic --ca_file %USERPROFILE%\certs\Amazon-root-CA-1.pem --cert %USERPROFILE%\certs\device.pem.crt --key %USERPROFILE%\certs\private.pem.key --endpoint your-iot-endpoint
   ```

------

MQTT と がプロトコル AWS IoT Core をサポートする方法の詳細については、[「MQTT](https://docs.aws.amazon.com//iot/latest/developerguide/mqtt.html)」を参照してください。

## Python で共有サブスクリプションのサンプルを実行する
<a name="gs-pc-shared-subscription-example"></a>

AWS IoT Core は、MQTT 3 と MQTT 5 の両方[の共有サブスクリプション](mqtt.md#mqtt5-shared-subscription)をサポートしています。共有サブスクリプションを使用すると、1 つのトピックへのサブスクリプションを複数のクライアントで共有できますが、そのトピックに公開されたメッセージをランダム配信を使って受信できるのは 1 つのクライアントのみです。共有サブスクリプションを使用するには、クライアントで共有サブスクリプションの[トピックフィルター](https://docs.aws.amazon.com//iot/latest/developerguide/topics.html#topicfilters): `$share/{ShareName}/{TopicFilter}` をサブスクライブします。

**ポリシーを設定し、共有サブスクリプションのサンプルを実行するには**

1. 共有サブスクリプションのサンプルを実行するには、「[MQTT 5 共有サブスクリプション](https://github.com/aws/aws-iot-device-sdk-python-v2/blob/main/samples/mqtt5_shared_subscription.md#mqtt5-shared-subscription)」に記載されているようにモノのポリシーを設定する必要があります。

1. 共有サブスクリプションのサンプルを実行するには、次のコマンドを実行します。

------
#### [ Linux/macOS ]

**Linux/macOS でサンプルスクリプトを実行するには**

   1. コマンドラインウィンドウで、SDK がこれらのコマンドを使用して作成した `~/aws-iot-device-sdk-python-v2/samples` ディレクトリに移動します。

      ```
      cd ~/aws-iot-device-sdk-python-v2/samples
      ```

   1. コマンドラインウィンドウに示されているように、*your-iot-endpoint* を置き換えて、このコマンドを実行します。

      ```
      python3 mqtt5_shared_subscription.py --endpoint your-iot-endpoint --ca_file ~/certs/Amazon-root-CA-1.pem --cert ~/certs/device.pem.crt --key ~/certs/private.pem.key --group_identifier consumer
      ```

------
#### [ Windows ]

**Windows PC でサンプルアプリケーションを実行するには**

   1. コマンドラインウィンドウで、SDK が作成した `%USERPROFILE%\aws-iot-device-sdk-python-v2\samples` ディレクトリに移動し、これらのコマンドを使用してサンプルアプリケーションをインストールします。

      ```
      cd %USERPROFILE%\aws-iot-device-sdk-python-v2\samples
      ```

   1. コマンドラインウィンドウに示されているように、*your-iot-endpoint* を置き換えて、このコマンドを実行します。

      ```
      python3 mqtt5_shared_subscription.py --endpoint your-iot-endpoint --ca_file %USERPROFILE%\certs\Amazon-root-CA-1.pem --cert %USERPROFILE%\certs\device.pem.crt --key %USERPROFILE%\certs\private.pem.key --group_identifier consumer
      ```

------
**注記**  
オプションとして、必要に応じ、サンプルを実行する際にグループ識別子を指定できます (例: `--group_identifier consumer`)。グループ識別子を指定しなかった場合、`python-sample` がデフォルトのグループ識別子です。

1. コマンドラインの出力は次のようになります。

   ```
   Publisher]: Lifecycle Connection Success
   [Publisher]: Connected
   Subscriber One]: Lifecycle Connection Success
   [Subscriber One]: Connected
   Subscriber Two]: Lifecycle Connection Success
   [Subscriber Two]: Connected
   [Subscriber One]: Subscribed to topic 'test/topic' in shared subscription group 'consumer'.
   [Subscriber One]: Full subscribed topic is: '$share/consumer/test/topic' with SubAck code: [<SubackReasonCode.GRANTED_QOS_1: 1>]
   [Subscriber Two]: Subscribed to topic 'test/topic' in shared subscription group 'consumer'.
   [Subscriber Two]: Full subscribed topic is: '$share/consumer/test/topic' with SubAck code: [<SubackReasonCode.GRANTED_QOS_1: 1>]
   [Publisher]: Sent publish and got PubAck code: <PubackReasonCode.SUCCESS: 0>
   [Subscriber Two] Received a publish
           Publish received message on topic: test/topic
           Message: b'"Hello World!  [1]"'
   [Publisher]: Sent publish and got PubAck code: <PubackReasonCode.SUCCESS: 0>
   [Subscriber One] Received a publish
           Publish received message on topic: test/topic
           Message: b'"Hello World!  [2]"'
   [Publisher]: Sent publish and got PubAck code: <PubackReasonCode.SUCCESS: 0>
   [Subscriber Two] Received a publish
           Publish received message on topic: test/topic
           Message: b'"Hello World!  [3]"'
   [Publisher]: Sent publish and got PubAck code: <PubackReasonCode.SUCCESS: 0>
   [Subscriber One] Received a publish
           Publish received message on topic: test/topic
           Message: b'"Hello World!  [4]"'
   [Publisher]: Sent publish and got PubAck code: <PubackReasonCode.SUCCESS: 0>
   [Subscriber Two] Received a publish
           Publish received message on topic: test/topic
           Message: b'"Hello World!  [5]"'
   [Publisher]: Sent publish and got PubAck code: <PubackReasonCode.SUCCESS: 0>
   [Subscriber One] Received a publish
           Publish received message on topic: test/topic
           Message: b'"Hello World!  [6]"'
   [Publisher]: Sent publish and got PubAck code: <PubackReasonCode.SUCCESS: 0>
   [Subscriber Two] Received a publish
           Publish received message on topic: test/topic
           Message: b'"Hello World!  [7]"'
   [Publisher]: Sent publish and got PubAck code: <PubackReasonCode.SUCCESS: 0>
   [Subscriber One] Received a publish
           Publish received message on topic: test/topic
           Message: b'"Hello World!  [8]"'
   [Publisher]: Sent publish and got PubAck code: <PubackReasonCode.SUCCESS: 0>
   [Subscriber Two] Received a publish
           Publish received message on topic: test/topic
           Message: b'"Hello World!  [9]"'
   [Publisher]: Sent publish and got PubAck code: <PubackReasonCode.SUCCESS: 0>
   [Subscriber One] Received a publish
           Publish received message on topic: test/topic
           Message: b'"Hello World!  [10]"'
   [Subscriber One]: Unsubscribed to topic 'test/topic' in shared subscription group 'consumer'.
   [Subscriber One]: Full unsubscribed topic is: '$share/consumer/test/topic' with UnsubAck code: [<UnsubackReasonCode.SUCCESS: 0>]
   [Subscriber Two]: Unsubscribed to topic 'test/topic' in shared subscription group 'consumer'.
   [Subscriber Two]: Full unsubscribed topic is: '$share/consumer/test/topic' with UnsubAck code [<UnsubackReasonCode.SUCCESS: 0>]
   Publisher]: Lifecycle Disconnected
   [Publisher]: Lifecycle Stopped
   [Publisher]: Fully stopped
   Subscriber One]: Lifecycle Disconnected
   [Subscriber One]: Lifecycle Stopped
   [Subscriber One]: Fully stopped
   Subscriber Two]: Lifecycle Disconnected
   [Subscriber Two]: Lifecycle Stopped
   [Subscriber Two]: Fully stopped
   Complete!
   ```

1. **AWS IoT コンソール**で **[MQTT テストクライアント]** を開きます。**[トピックをサブスクライブする]** で、次のような共有サブスクリプションのトピックをサブスクライブします: `$share/consumer/test/topic` 必要に応じて、サンプルを実行する際にグループ識別子を指定できます (例: `--group_identifier consumer`)。グループ識別子を指定しなかった場合、デフォルト値は `python-sample` です。詳細については、「[MQTT 5 共有サブスクリプション Python サンプル](https://github.com/aws/aws-iot-device-sdk-python-v2/blob/main/samples/mqtt5_shared_subscription.md#mqtt5-shared-subscription)」と「AWS IoT Core 開発者ガイド」の「[共有サブスクリプション](mqtt.md#mqtt5-shared-subscription)」を参照してください。

   コマンドラインウィンドウで、サンプルアプリケーションを再度実行し、**AWS IoT コンソール**の **[MQTT テストクライアント]** でメッセージの配信を確認します。  
![\[共有サブスクリプションの出力ページ。\]](http://docs.aws.amazon.com/ja_jp/iot/latest/developerguide/images/shared-subscription-output.png)

# Raspberry Pi または他のデバイスを接続する
<a name="connecting-to-existing-device"></a>

このセクションでは、 で使用する Raspberry Pi を設定します AWS IoT。接続したい別のデバイスがある場合、Raspberry Pi の手順には、これらの指示をデバイスに合わせて適用するのに役立つ参照先が含まれています。

通常、この処理には約 20 分かかりますが、システムソフトウェアのアップグレードが多数ある場合は、インストールにより長い時間を要する場合があります。

**Topics**
+ [デバイスをセットアップする](#gs-device-prereqs)
+ [AWS IoT Device SDK に必要なツールとライブラリをインストールする](#gs-device-sdk-tools)
+ [AWS IoT Device SDK のインストール](#gs-device-install-sdk)
+ [サンプルアプリケーションをインストールして実行する](#gs-device-node-app-run)
+ [AWS IoT コンソールでサンプルアプリからのメッセージを表示する](#gs-device-view-msg)

**重要**  
これらの指示を他のデバイスやオペレーティングシステムに合わせて適用するのが難しい場合があります。これらの指示を解釈してご利用のデバイスに適用するには、そのデバイスを十分に理解する必要があります。  
デバイスの設定中に問題が発生した場合は AWS IoT、 [Amazon EC2 を使用して仮想デバイスを作成する](creating-a-virtual-thing.md)や などの他のデバイスオプションのいずれかを代わりに試すことができます[Windows または Linux の PC または Mac を AWS IoT デバイスとして使用する](using-laptop-as-device.md)。

## デバイスをセットアップする
<a name="gs-device-prereqs"></a>

このステップの目的は、オペレーティングシステム (OS) を起動し、インターネットに接続し、コマンドラインインターフェイスでデバイスを操作できるようにデバイスを設定するために必要なものを用意することです。

このチュートリアルを完了するには、以下が必要です。
+  AWS アカウント。アカウントをお持ちではない場合、続行する前に、[セットアップ AWS アカウント](setting-up.md) に記載されている手順を完了してください。
+ [Raspberry Pi 3 モデル B](https://www.raspberrypi.com/products/) 以降の最新のモデル。これは、Raspberry Pi の以前のバージョンで動作する可能性がありますが、テストされていません。
+ [Raspberry Pi OS (32 ビット)](https://www.raspberrypi.com/software/operating-systems/)または、それ以降。Raspberry Pi OS の最新バージョンを使用することをお勧めします。以前のバージョンの OS は動作する可能性がありますが、テストされていません。

  この例を実行するために、グラフィカルユーザーインターフェイス (GUI) でデスクトップをインストールする必要はありません。ただし、Raspberry Pi を初めて使用し、Raspberry Pi ハードウェアがサポートしている場合は、デスクトップを GUI で使用する方が簡単です。
+ イーサネットまたは WiFi 接続。
+ キーボード、マウス、モニタ、ケーブル、電源装置、およびデバイスに必要なその他のハードウェア。

**重要**  
次のステップに進む前に、デバイスにオペレーティングシステムがインストール、設定、および実行されている必要があります。デバイスはインターネットに接続されていなければなりません。また、コマンドラインインターフェイスを使用してデバイスにアクセスできる必要があります。コマンドラインアクセスは、直接接続されたキーボード、マウス、モニタを介して、または SSH ターミナルリモートインターフェイスを使用して行うことができます。

 グラフィカルユーザーインターフェイス (GUI) を備えた Raspberry Pi 上でオペレーティングシステムを実行している場合は、デバイス上でターミナルウィンドウを開き、そのウィンドウで以下の手順を実行します。それ以外の場合であって、PuTTY などのリモートターミナルを使用してデバイスに接続するときは、デバイスへのリモートターミナルを開いてそれを使用します。

## AWS IoT Device SDK に必要なツールとライブラリをインストールする
<a name="gs-device-sdk-tools"></a>

 AWS IoT Device SDK とサンプルコードをインストールする前に、システムが最新であり、SDKs をインストールするために必要なツールとライブラリがあることを確認してください。

1. 

**オペレーティングシステムを更新し、必要なライブラリをインストールします。**  
 AWS IoT Device SDK をインストールする前に、デバイスのターミナルウィンドウでこれらのコマンドを実行してオペレーティングシステムを更新し、必要なライブラリをインストールします。

   ```
   sudo apt-get update
   ```

   ```
   sudo apt-get upgrade
   ```

   ```
   sudo apt-get install cmake
   ```

   ```
   sudo apt-get install libssl-dev
   ```

1. 

**Git をインストールする**  
デバイスのオペレーティングシステムに Git がインストールされていない場合は、インストールして AWS IoT Device SDK for JavaScript をインストールする必要があります。

   1. Git が既にインストールされているかどうかを確認するために、このコマンドを実行してテストします。

      ```
      git --version
      ```

   1. 前のコマンドで Git バージョンが返された場合、Git は既にインストールされており、ステップ 3 に進むことができます。

   1. **git** コマンドを実行するとエラーが表示される場合は、このコマンドを実行して Git をインストールします。

      ```
      sudo apt-get install git
      ```

   1. このコマンドを実行して、Git がインストールされているかどうかをもう一度テストします。

      ```
      git --version
      ```

   1. Git がインストール済みである場合は、次のセクションに進みます。インストールされていない場合は、トラブルシューティングを行い、エラーを修正してから続行します。 AWS IoT Device SDK for JavaScript をインストールするには、Git が必要です。

## AWS IoT Device SDK のインストール
<a name="gs-device-install-sdk"></a>

 AWS IoT Device SDK をインストールします。

------
#### [ Python ]

このセクションでは、Python、その開発ツール、および AWS IoT Device SDK for Python をデバイスにインストールします。これらの手順は、最新の Raspberry Pi OS を実行する Raspberry Pi を対象としています。別のデバイスをお持ちの場合、または別のオペレーティングシステムを使用している場合は、これらの手順をデバイスに合わせて調整する必要があります。

1. 

**Python およびその開発ツールをインストールする**  
 AWS IoT Device SDK for Python では、Python v3.5 以降を Raspberry Pi にインストールする必要があります。

   デバイスのターミナルウィンドウで、次のコマンドを実行します。

   1. このコマンドを実行して、デバイスにインストールされている Python のバージョンを確認します。

      ```
      python3 --version
      ```

      Python がインストールされている場合は、そのバージョンが表示されます。

   1. 表示されているバージョンが `Python 3.5` 以降の場合は、ステップ 2 にスキップできます。

   1. 表示されたバージョンが `Python 3.5` よりも前の場合は、このコマンドを実行して正しいバージョンをインストールできます。

      ```
      sudo apt install python3
      ```

   1. このコマンドを実行して、正しいバージョンの Python がインストールされていることを確認します。

      ```
      python3 --version
      ```

1. 

**pip3 をテストする**  
デバイスのターミナルウィンドウで、次のコマンドを実行します。

   1. このコマンドを実行して、**pip3** がインストールされているかどうかを確認します。

      ```
      pip3 --version
      ```

   1. コマンドがバージョン番号を返す場合、**pip3** はインストールされており、ステップ 3 にスキップできます。

   1. 前のコマンドがエラーを返す場合は、このコマンドを実行して **pip3** をインストールします。

      ```
      sudo apt install python3-pip
      ```

   1. このコマンドを実行して、**pip3** がインストールされているかどうかを確認します。

      ```
      pip3 --version
      ```

1. 

**現在の AWS IoT Device SDK for Python をインストールする**  
 AWS IoT Device SDK for Python をインストールし、サンプルアプリケーションをデバイスにダウンロードします。

   デバイスで、次のコマンドを実行します。

   ```
   cd ~
   python3 -m pip install awsiotsdk
   ```

   ```
   git clone https://github.com/aws/aws-iot-device-sdk-python-v2.git
   ```

------
#### [ JavaScript ]

このセクションでは、Node.js、npm パッケージマネージャー、 AWS IoT Device SDK for JavaScript をデバイスにインストールします。これらの手順は、Raspberry Pi OS を実行している Raspberry Pi を対象としています。別のデバイスをお持ちの場合、または別のオペレーティングシステムを使用している場合は、これらの手順をデバイスに合わせて調整する必要があります。

1. 

**Node.js の最新バージョンをインストールする**  
 AWS IoT Device SDK for JavaScript では、Node.js と npm パッケージマネージャーを Raspberry Pi にインストールする必要があります。

   1. このコマンドを入力して、ノードリポジトリの最新バージョンをダウンロードします。

      ```
      cd ~
      curl -sL https://deb.nodesource.com/setup_12.x | sudo -E bash -
      ```

   1. Node と npm をインストールします。

      ```
      sudo apt-get install -y nodejs
      ```

   1. Node のインストールを確認します。

      ```
      node -v
      ```

      コマンドが Node のバージョンを表示することを確認します。このチュートリアルでは Node v10.0 以降が必要です。Node のバージョンが表示されない場合は、Node リポジトリを再度ダウンロードしてみてください。

   1. npm のインストールを確認します。

      ```
      npm -v
      ```

      コマンドが npm バージョンを表示することを確認します。npm のバージョンが表示されない場合は、Node と npm をもう一度インストールしてみてください。

   1. デバイスを再起動します。

      ```
      sudo shutdown -r 0
      ```

      デバイスの再起動後に続行します。

1. 

**AWS IoT Device SDK for JavaScript をインストールする**  
Raspberry Pi に AWS IoT Device SDK for JavaScript をインストールします。

   1.  AWS IoT Device SDK for JavaScript リポジトリを*ホーム*`aws-iot-device-sdk-js-v2`ディレクトリの ディレクトリにクローンします。Raspberry Pi では、*ホーム*ディレクトリは `~/` であり、次のコマンドで*ホーム*ディレクトリとして使用されます。デバイスが*ホーム*ディレクトリに別のパスを使用している場合は、次のコマンドで `~/` をデバイスの正しいパスに置き換える必要があります。

      これらのコマンドは、`~/aws-iot-device-sdk-js-v2` ディレクトリを作成し、SDK コードをそのディレクトリにコピーします。

      ```
      cd ~
      git clone https://github.com/aws/aws-iot-device-sdk-js-v2.git
      ```

   1. 前の手順で作成した `aws-iot-device-sdk-js-v2` ディレクトリに変更し、`npm install` を実行して SDK をインストールします。コマンド `npm install` が `aws-crt` ライブラリビルドを呼び出し、これは完了するまで数分かかることがあります。

      ```
      cd ~/aws-iot-device-sdk-js-v2
      npm install
      ```

------

## サンプルアプリケーションをインストールして実行する
<a name="gs-device-node-app-run"></a>

このセクションでは、 AWS IoT Device SDK にある`pubsub`サンプルアプリケーションをインストールして実行します。このアプリケーションは、デバイスが MQTT ライブラリを使用して MQTT メッセージを発行およびサブスクライブする方法を示します。サンプルアプリケーションは トピック `topic_1` にサブスクライブし、そのトピックに 10 個のメッセージを発行し、メッセージブローカーから受信したメッセージを表示します。

**証明書ファイルをインストールする**  
サンプルアプリケーションでは、デバイスを認証する証明書ファイルをそのデバイスにインストールする必要があります。

**サンプルアプリケーションのデバイス証明書ファイルをインストールするには**

1. これらのコマンドを実行して、*ホーム*ディレクトリに`certs`サブディレクトリを作成します。

   ```
   cd ~
   mkdir certs
   ```

1. `~/certs` ディレクトリで、前に [AWS IoT リソースの作成](create-iot-resources.md) で作成したプライベートキー、デバイス証明書、およびルート CA 証明書をコピーします。

   証明書ファイルをデバイスにコピーする方法は、デバイスおよびオペレーティングシステムによって異なりますが、ここでは説明を割愛します。ただし、デバイスがグラフィカルユーザーインターフェイス (GUI) をサポートしており、ウェブブラウザがある場合は、デバイスのウェブブラウザから [AWS IoT リソースの作成](create-iot-resources.md) で説明されている手順を実行して、結果のファイルをデバイスに直接ダウンロードできます。

   次のセクションのコマンドは、次の表に示すように、キーおよび証明書ファイルがデバイスに保存されていることを前提としています。  
**証明書ファイル名**    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/iot/latest/developerguide/connecting-to-existing-device.html)

サンプルアプリケーションを実行するには、次の情報が必要です。


**アプリケーションパラメータ値**  

|  Parameter  |  値がある場所  | 
| --- | --- | 
| your-iot-endpoint |  [AWS IoT コンソール](https://console.aws.amazon.com/iot/home)で、**[All devices]** (すべてのデバイス)、**[Things]** (モノ) の順に選択します。  AWS IoT メニューの **[設定]** ページ。エンドポイントが **[Device data endpoint]** (デバイスデータエンドポイント) セクションに表示されます。  | 

*your-iot-endpoint* 値の形式は`endpoint_id-ats.iot.region.amazonaws.com` です (例: `a3qj468EXAMPLE-ats.iot.us-west-2.amazonaws.com`)。

------
#### [ Python ]

**サンプルアプリケーションをインストールして実行するには**

1. サンプルアプリディレクトリに移動します。

   ```
   cd ~/aws-iot-device-sdk-python-v2/samples
   ```

1. コマンドラインウィンドウで、示されているように* your-iot-endpoint* を置き換えて、このコマンドを実行します。

   ```
   python3 pubsub.py --topic topic_1 --ca_file ~/certs/Amazon-root-CA-1.pem --cert ~/certs/device.pem.crt --key ~/certs/private.pem.key --endpoint your-iot-endpoint
   ```

1. サンプルアプリケーションが次のようになっていることを観察します。

   1. アカウントの AWS IoT サービスに接続します。

   1. メッセージトピック **topic\$11** をサブスクライブし、そのトピックで受信したメッセージを表示します。

   1. 10 個のメッセージをトピック、**topic\$11** に発行します。

   1. 次のような出力を表示します。

   ```
   Connecting to a3qEXAMPLEffp-ats.iot.us-west-2.amazonaws.com with client ID 'test-0c8ae2ff-cc87-49d2-a82a-ae7ba1d0ca5a'...
   Connected!
   Subscribing to topic 'topic_1'...
   Subscribed with QoS.AT_LEAST_ONCE
   Sending 10 message(s)
   Publishing message to topic 'topic_1': Hello World! [1]
   Received message from topic 'topic_1': b'Hello World! [1]'
   Publishing message to topic 'topic_1': Hello World! [2]
   Received message from topic 'topic_1': b'Hello World! [2]'
   Publishing message to topic 'topic_1': Hello World! [3]
   Received message from topic 'topic_1': b'Hello World! [3]'
   Publishing message to topic 'topic_1': Hello World! [4]
   Received message from topic 'topic_1': b'Hello World! [4]'
   Publishing message to topic 'topic_1': Hello World! [5]
   Received message from topic 'topic_1': b'Hello World! [5]'
   Publishing message to topic 'topic_1': Hello World! [6]
   Received message from topic 'topic_1': b'Hello World! [6]'
   Publishing message to topic 'topic_1': Hello World! [7]
   Received message from topic 'topic_1': b'Hello World! [7]'
   Publishing message to topic 'topic_1': Hello World! [8]
   Received message from topic 'topic_1': b'Hello World! [8]'
   Publishing message to topic 'topic_1': Hello World! [9]
   Received message from topic 'topic_1': b'Hello World! [9]'
   Publishing message to topic 'topic_1': Hello World! [10]
   Received message from topic 'topic_1': b'Hello World! [10]'
   10 message(s) received.
   Disconnecting...
   Disconnected!
   ```

   サンプルアプリケーションの実行に問題がある場合は、[サンプルアプリケーションの問題をトラブルシューティングする](gs-device-troubleshoot.md) を確認してください。

   コマンドラインに `--verbosity Debug` パラメータを追加して、サンプルアプリケーションが実行内容に関する詳細なメッセージを表示するようにすることもできます。この情報は、問題の修正に役立つ場合があります。

------
#### [ JavaScript ]

**サンプルアプリケーションをインストールして実行するには**

1. コマンドラインウィンドウで、SDK が作成した `~/aws-iot-device-sdk-js-v2/samples/node/pub_sub` ディレクトリに移動し、これらのコマンドを使用してサンプルアプリケーションをインストールします。コマンド `npm install` が `aws-crt` ライブラリビルドを呼び出し、これは完了するまで数分かかることがあります。

   ```
   cd ~/aws-iot-device-sdk-js-v2/samples/node/pub_sub
   npm install
   ```

1. コマンドラインウィンドウで、示されているように *your-iot-endpoint* を置き換えて、このコマンドを実行します。

   ```
   node dist/index.js --topic topic_1 --ca_file ~/certs/Amazon-root-CA-1.pem --cert ~/certs/device.pem.crt --key ~/certs/private.pem.key --endpoint your-iot-endpoint
   ```

1. サンプルアプリケーションが次のようになっていることを観察します。

   1. アカウントの AWS IoT サービスに接続します。

   1. メッセージトピック **topic\$11** をサブスクライブし、そのトピックで受信したメッセージを表示します。

   1. 10 個のメッセージをトピック、**topic\$11** に発行します。

   1. 次のような出力を表示します。

   ```
   Publish received on topic topic_1
   {"message":"Hello world!","sequence":1}
   Publish received on topic topic_1
   {"message":"Hello world!","sequence":2}
   Publish received on topic topic_1
   {"message":"Hello world!","sequence":3}
   Publish received on topic topic_1
   {"message":"Hello world!","sequence":4}
   Publish received on topic topic_1
   {"message":"Hello world!","sequence":5}
   Publish received on topic topic_1
   {"message":"Hello world!","sequence":6}
   Publish received on topic topic_1
   {"message":"Hello world!","sequence":7}
   Publish received on topic topic_1
   {"message":"Hello world!","sequence":8}
   Publish received on topic topic_1
   {"message":"Hello world!","sequence":9}
   Publish received on topic topic_1
   {"message":"Hello world!","sequence":10}
   ```

   サンプルアプリケーションの実行に問題がある場合は、[サンプルアプリケーションの問題をトラブルシューティングする](gs-device-troubleshoot.md) を確認してください。

   コマンドラインに `--verbosity Debug` パラメータを追加して、サンプルアプリケーションが実行内容に関する詳細なメッセージを表示するようにすることもできます。この情報は、問題の修正に役立つ場合があります。

------

## AWS IoT コンソールでサンプルアプリからのメッセージを表示する
<a name="gs-device-view-msg"></a>

**AWS IoT コンソール**の**MQTT テストクライアント**を使用することで、サンプルアプリケーションメッセージがメッセージブローカーを通過するときにそれらを見ることができます。

**サンプルアプリケーションによって発行された MQTT メッセージを表示するには**

1. 確認[MQTT クライアントで AWS IoT MQTT メッセージを表示する](view-mqtt-messages.md)。これは、**AWS IoT コンソール**で **MQTT テストクライアント**を使用して、メッセージブローカーを通過する MQTT メッセージを表示する方法を学ぶのに役立ちます。

1. **AWS IoT コンソール**で **MQTT テストクライアント**を開きます。

1. トピック **topic\$11** にサブスクライブします。

1. コマンドラインウィンドウで、サンプルアプリケーションを再度実行し、**AWS IoT コンソール**の **MQTT クライアント**でメッセージを確認します。

------
#### [ Python ]

   ```
   cd ~/aws-iot-device-sdk-python-v2/samples
   python3 pubsub.py --topic topic_1 --ca_file ~/certs/Amazon-root-CA-1.pem --cert ~/certs/device.pem.crt --key ~/certs/private.pem.key --endpoint your-iot-endpoint
   ```

------
#### [ JavaScript ]

   ```
   cd ~/aws-iot-device-sdk-js-v2/samples/node/pub_sub
   node dist/index.js --topic topic_1 --ca_file ~/certs/Amazon-root-CA-1.pem --cert ~/certs/device.pem.crt --key ~/certs/private.pem.key --endpoint your-iot-endpoint
   ```

------

# サンプルアプリケーションの問題をトラブルシューティングする
<a name="gs-device-troubleshoot"></a>

サンプルアプリケーションを実行しようとしたときにエラーが発生した場合は、次の点を確認してください。

## 証明書を確認する
<a name="gs-device-ts-step-1"></a>

証明書がアクティブでない場合、 AWS IoT はその証明書を認可に使用する接続試行を受け入れません。証明書を作成するときに、[**Activate**] (有効化) ボタンを見落としがちです。幸いなことに、[AWS IoT コンソール](https://console.aws.amazon.com/iot/home)から証明書を有効化できます。

**証明書の有効化を確認するには**

1. [AWS IoT コンソール](https://console.aws.amazon.com/iot/home)の左側のメニューで、[**Secure**] (安全性) を選択し、[**Certificates**] (証明書) を選択します。

1. 証明書のリストで、演習用に作成した証明書を見つけ、[**Status**] (ステータス) 列でそのステータスを確認します。

   証明書の名前を覚えていない場合は、[**Inactive**] (無効) の証明書がないかを確認し、使用している証明書かどうかを確認してください。

   リストから証明書を選択し、詳細のページを開きます。詳細ページには、証明書の特定に役立つ [**Create date**] (作成日) が表示されます。

1. **有効化されていない証明書を有効化するには**、証明書の詳細ページから [**Actions**] (アクション) を選択してから、[**Activate**] (有効化) を選択します。

正しい証明書を見つけ、アクティブであることを確認できたにもかかわらず、サンプルアプリケーションの実行にまだ問題がある場合は、次のステップで説明するように、そのポリシーを確認します。

[モノのオブジェクトを作成する](create-iot-resources.md#create-aws-thing) の手順に従って、新しいモノと新しい証明書の作成を試みることもできます。新しいモノを作成する場合は、新しいモノの名前を付けて、新しい証明書ファイルをデバイスにダウンロードする必要があります。

## 証明書にアタッチされているポリシーを確認する
<a name="gs-device-ts-step-2"></a>

ポリシーは でのアクションを承認します AWS IoT。 AWS IoT への接続に使用される証明書にポリシーがない場合、または接続を許可するポリシーがない場合、証明書がアクティブであっても、接続は拒否されます。

**証明書にアタッチされたポリシーを確認するには**

1. 前の項目の説明に従って証明書を見つけ、その詳細のページを開きます。

1. 証明書の詳細ページの左側のメニューで、[**Policies**] (ポリシー) を選択して、証明書にアタッチされているポリシーを表示します。

1. 証明書にポリシーが添付されていない場合は、[**Actions**] (アクション) メニューを選択し、[**Attach policy**] (ポリシーの添付) を選択してポリシーを追加します。

   先ほど [AWS IoT リソースの作成](create-iot-resources.md) で作成したポリシーを選択します。

1. ポリシーがアタッチされている場合は、ポリシータイルを選択してその詳細ページを開きます。

   詳細ページで、**ポリシードキュメント**を調べて、[AWS IoT ポリシーを作成する](create-iot-resources.md#create-iot-policy)で作成したものと同じ情報が含まれていることを確認します。

## コマンドラインをチェックする
<a name="gs-device-ts-step-3"></a>

ご利用のシステム用に正しいコマンドラインを使用していることを確認してください。Linux および macOS システムで使用されるコマンドは、Windows システムで使用されるコマンドとは異なることがよくあります。

## エンドポイントアドレスを確認する
<a name="gs-device-ts-step-4"></a>

入力したコマンドを確認し、コマンドのエンドポイントアドレスを [AWS IoT コンソール](https://console.aws.amazon.com/iot/home)のアドレスと照らし合わせて再確認します。

## 証明書ファイルのファイル名を確認する
<a name="gs-device-ts-step-5"></a>

入力したコマンドのファイル名を、`certs` ディレクトリ内の証明書ファイルのファイル名と比較します。

一部のシステムでは、正しく機能するためにファイル名を引用符で囲む必要がある場合があります。

## SDK のインストールを確認する
<a name="gs-device-ts-step-6"></a>

SDK のインストールが完了しており、正しいことを確認します。

懸念がある場合は、デバイスに SDK を再インストールします。ほとんどの場合、これは「Install **the AWS IoT Device SDK for **SDK language****」というタイトルのチュートリアルの セクションを見つけて、手順を再度実行することです。

**AWS IoT Device SDK for JavaScript** を使用している場合は、サンプルアプリケーションをインストールしてから実行してください。SDK をインストールしても、サンプルアプリケーションは自動的にはインストールされません。サンプルアプリケーションは、SDK のインストール後に手動でインストールする必要があります。