

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

# Konfigurasikan perangkat Anda
<a name="configure-device"></a>

Bagian ini menjelaskan cara mengonfigurasi perangkat Anda untuk terhubung AWS IoT Core. Jika Anda ingin memulai AWS IoT Core tetapi belum memiliki perangkat, Anda dapat membuat perangkat virtual dengan menggunakan Amazon EC2 atau Anda dapat menggunakan PC Windows atau Mac sebagai perangkat IoT.

Pilih opsi perangkat terbaik untuk Anda coba AWS IoT Core. Tentu saja, Anda dapat mencoba semuanya, tetapi cobalah hanya satu per satu. Jika Anda tidak yakin opsi perangkat mana yang terbaik untuk Anda, baca tentang cara memilih [opsi perangkat mana yang terbaik](iot-gs-first-thing.md#choosing-a-gs-system), lalu kembali ke halaman ini.

**Opsi perangkat**
+ [Buat perangkat virtual dengan Amazon EC2](creating-a-virtual-thing.md)
+ [Gunakan Windows atau Linux PC atau Mac Anda sebagai AWS IoT perangkat](using-laptop-as-device.md)
+ [Connect Raspberry Pi atau perangkat lain](connecting-to-existing-device.md)

# Buat perangkat virtual dengan Amazon EC2
<a name="creating-a-virtual-thing"></a>

Dalam tutorial ini, Anda akan membuat instans Amazon EC2 untuk berfungsi sebagai perangkat virtual Anda di cloud.

Untuk menyelesaikan tutorial ini, Anda memerlukan file Akun AWS. Jika Anda tidak memilikinya, selesaikan langkah-langkah yang dijelaskan [Mengatur Akun AWS](setting-up.md) sebelum melanjutkan.

**Topics**
+ [Mengatur instans Amazon EC2](#set-up-ec2)
+ [Instal Git, Node.js dan konfigurasikan AWS CLI](#install-git-node)
+ [Buat AWS IoT sumber daya untuk perangkat virtual Anda](#ec2-create-certificate)
+ [Instal SDK AWS IoT Perangkat untuk JavaScript](#ec2-sdk)
+ [Jalankan aplikasi sampel](#ec2-run-app)
+ [Melihat pesan dari aplikasi sampel di AWS IoT konsol](#ec2-view-msg)

## Mengatur instans Amazon EC2
<a name="set-up-ec2"></a>

Langkah-langkah berikut menunjukkan cara membuat instans Amazon EC2 yang akan bertindak sebagai perangkat virtual Anda sebagai pengganti perangkat fisik.

Jika ini adalah pertama kalinya Anda membuat instans Amazon EC2, Anda mungkin menemukan petunjuk di [Memulai instans Amazon EC2 Linux](https://docs.aws.amazon.com//AWSEC2/latest/UserGuide/EC2_GetStarted.html) agar lebih bermanfaat.

**Untuk meluncurkan sebuah instans**

1. Buka konsol Amazon EC2 di. [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/)

1. Dari menu konsol di sebelah kiri, perluas bagian **Instans** dan pilih **Instans**. Dari dasbor **Instans**, pilih **Luncurkan instance** di sebelah kanan untuk menampilkan daftar konfigurasi dasar. 

1. Di bagian **Nama dan tag**, masukkan nama untuk instance dan tambahkan tag secara opsional.

1. Di bagian **Application and OS Images (Amazon Machine Image)**, pilih template AMI untuk instans Anda, seperti *Amazon Linux 2 AMI (HVM*). Perhatikan bahwa AMI ini ditandai “Memenuhi syarat tingkat gratis”.

1. Di bagian **Jenis instans**, Anda dapat memilih konfigurasi perangkat keras instans Anda. Pilih jenis `t2.micro`, yang dipilih secara default. Perhatikan bahwa jenis instans ini memenuhi syarat untuk tingkat gratis.

1. Di bagian **Key pair (login)**, pilih nama key pair dari daftar drop-down atau pilih **Create a new key pair** untuk membuat yang baru. Saat membuat key pair baru, pastikan Anda mengunduh file kunci pribadi dan menyimpannya di tempat yang aman, karena ini adalah satu-satunya kesempatan Anda untuk mengunduh dan menyimpannya. Anda harus menyediakan nama pasangan kunci saat meluncurkan sebuah instans dan kunci privat yang sesuai setiap kali Anda terhubung dengan instans tersebut.
**Awas**  
Jangan memilih opsi **Proceed without a key pair**. Jika Anda meluncurkan instans tanpa pasangan kunci, Anda tidak dapat terhubung dengan instans tersebut.

1. Di bagian **Pengaturan jaringan** dan bagian **Konfigurasi penyimpanan**, Anda dapat menyimpan pengaturan default. Saat Anda siap, pilih **Launch instance.**

1. Halaman konfirmasi memberi tahu Anda bahwa instans Anda sedang diluncurkan. Pilih **Lihat Instans** untuk menutup halaman konfirmasi dan kembali ke konsol.

1. Pada layar **Instans**, Anda dapat melihat status peluncuran. Hanya butuh waktu singkat untuk meluncurkan sebuah instans. Saat Anda meluncurkan sebuah instans, status awalnya adalah `pending`. Setelah instans dimulai, statusnya akan berubah menjadi `running` dan instans tersebut menerima sebuah nama DNS publik. (Jika kolom **DNS Publik (IPv4)** disembunyikan, pilih **Tampilkan/Sembunyikan Kolom** (ikon berbentuk roda gigi) di sudut kanan atas halaman dan kemudian pilih DNS **Publik** ().) IPv4

1. Proses ini mungkin memerlukan waktu beberapa menit sampai instans siap, sehingga Anda dapat terhubung dengannya. Periksa apakah instans Anda telah lulus pemeriksaan statusnya; Anda dapat melihat informasi ini di kolom **Pemeriksaan Status**.

   Setelah instans baru Anda lulus pemeriksaan statusnya, lanjutkan ke prosedur berikutnya dan sambungkan ke sana.

**Untuk menyambung ke instans Anda**

Anda dapat menyambung ke instans menggunakan klien berbasis browser dengan memilih instans dari konsol Amazon EC2 dan memilih untuk menyambung menggunakan Amazon EC2 Instance Connect. Instance Connect menangani izin dan menyediakan koneksi yang berhasil.

1. Buka konsol Amazon EC2 di. [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/)

1. Di menu sebelah kiri, pilih **Instans.**

1. Pilih instans, lalu pilih **Hubungkan**.

1. **Pilih **Instans Amazon EC2 Connect, Connect**.**

Anda sekarang harus memiliki jendela **Amazon EC2 Instance Connect** yang masuk ke instans Amazon EC2 baru Anda.

## Instal Git, Node.js dan konfigurasikan AWS CLI
<a name="install-git-node"></a>

Di bagian ini, Anda akan menginstal Git dan Node.js pada instance Linux Anda.

**Untuk menginstal Git**

1. Di jendela **Amazon EC2 Instance Connect**, perbarui instans Anda dengan menggunakan perintah berikut.

   ```
   sudo yum update -y
   ```

1. Di jendela **Amazon EC2 Instance Connect**, instal Git dengan menggunakan perintah berikut.

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

1. Untuk memeriksa apakah Git telah diinstal dan versi Git saat ini, jalankan perintah berikut:

   ```
   git --version
   ```

**Untuk menginstal Node.js**

1. Di jendela **Amazon EC2 Instance Connect**, instal node version manager (nvm) dengan menggunakan perintah berikut.

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

   Kami akan menggunakan nvm untuk menginstal Node.js karena nvm dapat menginstal beberapa versi Node.js dan memungkinkan Anda untuk beralih di antara mereka. 

1. Di jendela **Amazon EC2 Instance Connect**, aktifkan nvm dengan menggunakan perintah ini.

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

1. Di jendela **Amazon EC2 Instance Connect**, gunakan nvm untuk menginstal versi terbaru Node.js dengan menggunakan perintah ini.

   ```
   nvm install 16
   ```
**catatan**  
Ini menginstal rilis LTS terbaru dari Node.js.

   Menginstal Node.js juga menginstal Node Package Manager (npm) sehingga Anda dapat menginstal modul tambahan sesuai kebutuhan.

1. Di jendela **Amazon EC2 Instance Connect**, uji apakah Node.js diinstal dan berjalan dengan benar menggunakan perintah ini.

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

    Tutorial ini membutuhkan Node v10.0 atau yang lebih baru. Untuk informasi selengkapnya, lihat [Tutorial: Menyiapkan Node.js di Instans Amazon EC2](https://docs.aws.amazon.com/sdk-for-javascript/v2/developer-guide/setting-up-node-on-ec2-instance.html).

**Untuk mengkonfigurasi AWS CLI**

Instans Amazon EC2 Anda sudah dimuat sebelumnya dengan file. AWS CLI Namun, Anda harus melengkapi AWS CLI profil Anda. Untuk informasi selengkapnya tentang cara mengonfigurasi CLI Anda, lihat [Mengonfigurasi](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-configure.html) CLI. AWS CLI

1. Contoh berikut menunjukkan nilai sampel. Gantilah dengan nilai-nilai Anda sendiri. Anda dapat menemukan nilai-nilai ini di [AWS konsol Anda di info akun Anda di bawah **Kredensi keamanan**](https://console.aws.amazon.com//iam/home#/security_credentials).

   Di jendela **Amazon EC2 Instance Connect**, masukkan perintah ini:

   ```
   aws configure
   ```

   Kemudian masukkan nilai dari akun Anda pada petunjuk yang ditampilkan.

   ```
   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. Anda dapat menguji AWS CLI konfigurasi Anda dengan perintah ini:

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

   Jika Anda AWS CLI dikonfigurasi dengan benar, perintah harus mengembalikan alamat titik akhir dari alamat Anda Akun AWS.

## Buat AWS IoT sumber daya untuk perangkat virtual Anda
<a name="ec2-create-certificate"></a>

Bagian ini menjelaskan cara menggunakan AWS CLI untuk membuat objek benda dan file sertifikatnya langsung di perangkat virtual. Ini dilakukan langsung pada perangkat untuk menghindari potensi komplikasi yang mungkin timbul dari menyalinnya ke perangkat dari komputer lain. Di bagian ini, Anda akan membuat sumber daya berikut untuk perangkat virtual Anda:
+ Objek benda untuk mewakili perangkat virtual Anda AWS IoT.
+ Sertifikat untuk mengautentikasi perangkat virtual Anda.
+ Dokumen kebijakan untuk mengotorisasi perangkat virtual Anda untuk terhubung ke AWS IoT, dan untuk mempublikasikan, menerima, dan berlangganan pesan.

**Untuk membuat objek AWS IoT benda di instance Linux Anda**

Perangkat yang terhubung ke AWS IoT diwakili oleh *benda benda* dalam AWS IoT registri. *Objek benda* mewakili perangkat tertentu atau entitas logis. Dalam hal ini, *objek benda* Anda akan mewakili perangkat virtual Anda, instans Amazon EC2 ini.

1. Di jendela **Amazon EC2 Instance Connect**, jalankan perintah berikut untuk membuat objek benda Anda.

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

1. Respons JSON akan terlihat seperti ini:

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

**Untuk membuat dan melampirkan AWS IoT kunci dan sertifikat di instance Linux Anda**

**[create-keys-and-certificate](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/iot/create-keys-and-certificate.html)**Perintah tersebut membuat sertifikat klien yang ditandatangani oleh otoritas sertifikat Amazon Root. Sertifikat ini digunakan untuk mengautentikasi identitas perangkat virtual Anda.

1. Di jendela **Amazon EC2 Instance Connect**, buat direktori untuk menyimpan sertifikat dan file kunci Anda.

   ```
   mkdir ~/certs
   ```

1. Di jendela **Amazon EC2 Instance Connect**, unduh salinan sertifikat Amazon Certificate Authority (CA) dengan menggunakan perintah ini.

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

1. Di jendela **Amazon EC2 Instance Connect**, jalankan perintah berikut untuk membuat kunci pribadi, kunci publik, dan file sertifikat X.509. Perintah ini juga mendaftarkan dan mengaktifkan sertifikat dengan. 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"
   ```

   Respon tersebut terlihat seperti berikut. Simpan `certificateArn` sehingga Anda dapat menggunakannya dalam perintah berikutnya. Anda akan memerlukannya untuk melampirkan sertifikat Anda ke barang Anda dan melampirkan kebijakan ke sertifikat di langkah selanjutnya.

   ```
   {
       "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. Di jendela **Amazon EC2 Instance Connect** Anda, lampirkan objek benda Anda ke sertifikat yang baru saja Anda buat dengan menggunakan perintah berikut dan *certificateArn* dalam respons dari perintah sebelumnya.

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

   Jika berhasil, perintah ini tidak menampilkan output apapun.

**Untuk membuat dan melampirkan kebijakan**

1. Di jendela **Amazon EC2 Instance Connect**, buat file kebijakan dengan menyalin dan menempelkan dokumen kebijakan ini ke file bernama. **\$1/policy.json**

   Jika Anda tidak memiliki editor Linux favorit, Anda dapat membuka**nano**, dengan menggunakan perintah ini.

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

   Tempelkan dokumen kebijakan `policy.json` ke dalamnya. Masukkan ctrl-x untuk keluar dari **nano** editor dan simpan file.

   Isi dokumen kebijakan untuk`policy.json`.  
****  

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

1. Di jendela **Amazon EC2 Instance Connect**, buat kebijakan Anda dengan menggunakan perintah berikut.

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

   Output:  
****  

   ```
   {
       "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. Di jendela **Amazon EC2 Instance Connect**, lampirkan kebijakan ke sertifikat perangkat virtual Anda dengan menggunakan perintah berikut.

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

   Jika berhasil, perintah ini tidak menampilkan output apapun.

## Instal SDK AWS IoT Perangkat untuk JavaScript
<a name="ec2-sdk"></a>

Di bagian ini, Anda akan menginstal AWS IoT Device SDK untuk JavaScript, yang berisi kode yang dapat digunakan aplikasi untuk berkomunikasi dengan AWS IoT dan program sampel. Untuk informasi selengkapnya, lihat [SDK AWS IoT Perangkat untuk JavaScript GitHub repositori](https://github.com/aws/aws-iot-device-sdk-js-v2).

**Untuk menginstal AWS IoT Device SDK untuk JavaScript instans Linux Anda**

1. Di jendela **Amazon EC2 Instance Connect**, kloning AWS IoT Device SDK untuk JavaScript repositori ke `aws-iot-device-sdk-js-v2` direktori direktori home Anda dengan menggunakan perintah ini.

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

1. Arahkan ke `aws-iot-device-sdk-js-v2` direktori yang Anda buat pada langkah sebelumnya.

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

1. Gunakan npm untuk menginstal SDK.

   ```
   npm install
   ```

## Jalankan aplikasi sampel
<a name="ec2-run-app"></a>

 Perintah di bagian berikutnya mengasumsikan bahwa file kunci dan sertifikat Anda disimpan di perangkat virtual Anda seperti yang ditunjukkan dalam tabel ini.


**Nama berkas sertifikat**  

|  File  |  Jalur berkas  | 
| --- | --- | 
|  Kunci privat  |  `~/certs/private.pem.key`  | 
|  Sertifikat perangkat  |  `~/certs/device.pem.crt`  | 
|  Sertifikat Root CA  |  `~/certs/Amazon-root-CA-1.pem`  | 

Di bagian ini, Anda akan menginstal dan menjalankan aplikasi `pub-sub.js` sampel yang ditemukan di `aws-iot-device-sdk-js-v2/samples/node` direktori AWS IoT Device SDK untuk JavaScript. Aplikasi ini menunjukkan bagaimana perangkat, instans Amazon EC2 Anda, menggunakan pustaka MQTT untuk menerbitkan dan berlangganan pesan MQTT. Aplikasi `pub-sub.js` sampel berlangganan topik,`topic_1`, menerbitkan 10 pesan ke topik itu dan menampilkan pesan saat diterima dari broker pesan.

**Untuk menginstal dan menjalankan aplikasi sampel**

1. Di jendela **Amazon EC2 Instance Connect**, navigasikan ke `aws-iot-device-sdk-js-v2/samples/node/pub_sub` direktori yang dibuat SDK dan instal aplikasi sampel dengan menggunakan perintah ini.

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

1. Di jendela **Amazon EC2 Instance Connect**, dapatkan *your-iot-endpoint* dari AWS IoT dengan menggunakan perintah ini.

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

1. Di jendela **Amazon EC2 Instance Connect**, masukkan *your-iot-endpoint* seperti yang ditunjukkan dan jalankan perintah ini.

   ```
   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
   ```

Aplikasi sampel:

1. Terhubung ke AWS IoT Core akun Anda.

1. Berlangganan topik pesan, **topic\$11**, dan menampilkan pesan yang diterimanya pada topik itu.

1. Menerbitkan 10 pesan ke topik, **topic\$11**.

1. Menampilkan output yang mirip dengan berikut ini:

   ```
   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}
   ```

Jika Anda mengalami masalah dalam menjalankan aplikasi sampel, tinjau[Memecahkan masalah dengan aplikasi sampel](gs-device-troubleshoot.md).

Anda juga dapat menambahkan `--verbosity debug` parameter ke baris perintah sehingga aplikasi sampel menampilkan pesan terperinci tentang apa yang dilakukannya. Informasi itu mungkin memberi Anda bantuan yang Anda butuhkan untuk memperbaiki masalah.

## Melihat pesan dari aplikasi sampel di AWS IoT konsol
<a name="ec2-view-msg"></a>

**Anda dapat melihat pesan aplikasi sampel saat mereka melewati broker pesan dengan menggunakan **klien pengujian MQTT di konsol**.AWS IoT **

**Untuk melihat pesan MQTT yang diterbitkan oleh aplikasi sampel**

1. Ulasan[Lihat pesan MQTT dengan klien MQTT AWS IoT](view-mqtt-messages.md). Ini membantu Anda mempelajari cara menggunakan **klien pengujian MQTT** di **AWS IoT konsol** untuk melihat pesan MQTT saat mereka melewati broker pesan.

1. **Buka **klien pengujian MQTT di konsol**.AWS IoT **

1. Di **Berlangganan topik**, Berlangganan topik, **topic\$11**.

1. **Di jendela **Amazon EC2 Instance Connect**, jalankan aplikasi sampel lagi dan tonton pesan di klien **pengujian MQTT** di konsol.AWS IoT **

   ```
   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
   ```

[Untuk informasi selengkapnya tentang MQTT dan cara AWS IoT Core mendukung protokol, lihat MQTT.](https://docs.aws.amazon.com//iot/latest/developerguide/mqtt.html)

# Gunakan Windows atau Linux PC atau Mac Anda sebagai AWS IoT perangkat
<a name="using-laptop-as-device"></a>

Dalam tutorial ini, Anda akan mengkonfigurasi komputer pribadi untuk digunakan dengan AWS IoT. Instruksi ini mendukung Windows dan Linux PCs dan Mac. Untuk mencapai ini, Anda perlu menginstal beberapa perangkat lunak di komputer Anda. Jika Anda tidak ingin menginstal perangkat lunak di komputer Anda, Anda dapat mencoba[Buat perangkat virtual dengan Amazon EC2](creating-a-virtual-thing.md), yang menginstal semua perangkat lunak pada mesin virtual.

**Topics**
+ [Siapkan komputer pribadi Anda](#gs-pc-prereqs)
+ [Instal Git, Python, dan AWS IoT Device SDK untuk Python](#gs-pc-sdk-node)
+ [Menyiapkan kebijakan dan menjalankan contoh aplikasi](#gs-pc-python-app-run)
+ [Melihat pesan dari aplikasi sampel di AWS IoT konsol](#gs-pc-view-msg)
+ [Jalankan contoh Berlangganan Bersama dengan Python](#gs-pc-shared-subscription-example)

## Siapkan komputer pribadi Anda
<a name="gs-pc-prereqs"></a>

Untuk menyelesaikan tutorial ini, Anda memerlukan PC Windows atau Linux atau Mac dengan koneksi ke internet.

Sebelum Anda melanjutkan ke langkah berikutnya, pastikan Anda dapat membuka jendela baris perintah di komputer Anda. Gunakan **cmd.exe** pada PC Windows. Pada PC Linux atau Mac, gunakan**Terminal**.

## Instal Git, Python, dan AWS IoT Device SDK untuk Python
<a name="gs-pc-sdk-node"></a>

Di bagian ini, Anda akan menginstal Python, dan AWS IoT Device SDK untuk Python di komputer Anda. 

### Instal versi terbaru Git dan Python
<a name="gs-pc-node-runtime"></a>

Prosedur ini menjelaskan cara menginstal versi terbaru Git dan Python di komputer pribadi Anda.

**Untuk mengunduh dan menginstal Git dan Python di komputer Anda**

1. Periksa untuk melihat apakah Anda telah menginstal Git di komputer Anda. Masukkan perintah ini di baris perintah.

   ```
   git --version
   ```

   Jika perintah menampilkan versi Git, Git diinstal dan Anda dapat melanjutkan ke langkah berikutnya.

   Jika perintah menampilkan kesalahan, buka [https://git-scm.com/download](https://git-scm.com/download)dan instal Git untuk komputer Anda.

1. Periksa untuk melihat apakah Anda telah menginstal Python. Masukkan perintah di baris perintah.

   ```
   python -V
   ```
**catatan**  
Jika perintah ini memberikan kesalahan:`Python was not found`, mungkin karena sistem operasi Anda memanggil Python v3.x yang dapat dieksekusi sebagai. `Python3` Dalam hal ini, ganti semua contoh `python` dengan `python3` dan lanjutkan sisa tutorial ini.

   Jika perintah menampilkan versi Python, Python sudah diinstal. Tutorial ini membutuhkan Python v3.7 atau yang lebih baru.

1. Jika Python diinstal, Anda dapat melewati langkah-langkah lainnya di bagian ini. Jika tidak, lanjutkan.

1. Buka [https://www.python.org/downloads/](https://www.python.org/downloads/) dan unduh installer untuk komputer Anda.

1. Jika unduhan tidak secara otomatis mulai diinstal, jalankan program yang diunduh untuk menginstal Python.

1. Verifikasi instalasi Python.

   ```
   python -V
   ```

   Konfirmasikan bahwa perintah menampilkan versi Python. Jika versi Python tidak ditampilkan, coba unduh dan instal Python lagi.

### Instal AWS IoT Device SDK untuk Python
<a name="gs-pc-python-intall-sdk"></a>

**Untuk menginstal AWS IoT Device SDK untuk Python di komputer Anda**

1. Instal v2 dari AWS IoT Device SDK untuk Python.

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

1. Kloning AWS IoT Device SDK untuk repositori Python ke direktori aws-iot-device-sdk -python-v2 direktori home Anda. Prosedur ini mengacu pada direktori dasar untuk file yang Anda instal sebagai*home*.

   Lokasi sebenarnya dari *home* direktori tergantung pada sistem operasi Anda.

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

   Di macOS dan Linux, *home* direktorinya adalah. `~`

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

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

   Di Windows, Anda dapat menemukan jalur *home* direktori dengan menjalankan perintah ini di `cmd` jendela.

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

------
**catatan**  
Jika Anda menggunakan Windows PowerShell sebagai lawan dari**cmd.exe**, maka gunakan perintah berikut.  

   ```
   echo $home
   ```

Untuk informasi selengkapnya, lihat [AWS IoT Device SDK for GitHub Python repositori](https://github.com/aws/aws-iot-device-sdk-python-v2).

### Bersiaplah untuk menjalankan aplikasi sampel
<a name="gs-pc-python-config-app"></a>

**Untuk mempersiapkan sistem Anda untuk menjalankan aplikasi sampel**
+ Buatlah direktori `certs`. Ke dalam `certs` direktori, salin kunci pribadi, sertifikat perangkat, dan file sertifikat CA root yang Anda simpan saat Anda membuat dan mendaftarkan objek benda[Buat AWS IoT sumber daya](create-iot-resources.md). Nama file dari setiap file di direktori tujuan harus cocok dengan yang ada di tabel.

   Perintah di bagian berikutnya mengasumsikan bahwa file kunci dan sertifikat Anda disimpan di perangkat Anda seperti yang ditunjukkan dalam tabel ini.

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

  Jalankan perintah ini untuk membuat `certs` subdirektori yang akan Anda gunakan ketika Anda menjalankan aplikasi sampel.

  ```
  mkdir ~/certs
  ```

  Ke subdirektori baru, salin file ke jalur file tujuan yang ditunjukkan pada tabel berikut.  
**Nama berkas sertifikat**    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/iot/latest/developerguide/using-laptop-as-device.html)

  Jalankan perintah ini untuk membuat daftar file dalam `certs` direktori dan membandingkannya dengan yang tercantum dalam tabel.

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

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

  Jalankan perintah ini untuk membuat `certs` subdirektori yang akan Anda gunakan ketika Anda menjalankan aplikasi sampel.

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

  Ke subdirektori baru, salin file ke jalur file tujuan yang ditunjukkan pada tabel berikut.  
**Nama berkas sertifikat**    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/iot/latest/developerguide/using-laptop-as-device.html)

  Jalankan perintah ini untuk membuat daftar file dalam `certs` direktori dan membandingkannya dengan yang tercantum dalam tabel.

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

------

## Menyiapkan kebijakan dan menjalankan contoh aplikasi
<a name="gs-pc-python-app-run"></a>

Di bagian ini, Anda akan menyiapkan kebijakan dan menjalankan skrip `pubsub.py` sampel yang ditemukan di `aws-iot-device-sdk-python-v2/samples` direktori AWS IoT Device SDK for Python. Skrip ini menunjukkan bagaimana perangkat Anda menggunakan pustaka MQTT untuk menerbitkan dan berlangganan pesan MQTT.

Aplikasi `pubsub.py` sampel berlangganan topik`test/topic`, menerbitkan 10 pesan ke topik itu, dan menampilkan pesan saat diterima dari broker pesan.

Untuk menjalankan skrip `pubsub.py` sampel, Anda memerlukan informasi berikut:


**Nilai parameter aplikasi**  

|  Parameter  |  Di mana menemukan nilainya  | 
| --- | --- | 
| your-iot-endpoint |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/iot/latest/developerguide/using-laptop-as-device.html)  | 

*your-iot-endpoint*Nilai memiliki format:`endpoint_id-ats.iot.region.amazonaws.com`, misalnya,`a3qj468EXAMPLE-ats.iot.us-west-2.amazonaws.com`.

Sebelum menjalankan skrip, pastikan kebijakan hal Anda memberikan izin untuk skrip sampel untuk terhubung, berlangganan, menerbitkan, dan menerima. 

**Untuk menemukan dan meninjau dokumen kebijakan untuk sumber daya sesuatu**

1. Di [AWS IoT konsol](https://console.aws.amazon.com//iot/home#/thinghub), di daftar **Things**, temukan sumber daya benda yang mewakili perangkat Anda.

1. Pilih tautan **Nama** dari sumber daya benda yang mewakili perangkat Anda untuk membuka halaman **Detail hal**.

1. Di halaman **Detail hal**, di tab **Sertifikat**, pilih sertifikat yang dilampirkan ke sumber daya benda. Seharusnya hanya ada satu sertifikat dalam daftar. Jika ada lebih dari satu, pilih sertifikat yang filenya diinstal pada perangkat Anda dan yang akan digunakan untuk terhubung AWS IoT Core.

   Di halaman Detail **sertifikat**, di tab **Kebijakan**, pilih kebijakan yang dilampirkan pada sertifikat. Seharusnya hanya ada satu. Jika ada lebih dari satu, ulangi langkah berikutnya untuk masing-masing untuk memastikan bahwa setidaknya satu kebijakan memberikan akses yang diperlukan.

1. Di halaman Ringkasan **kebijakan**, temukan editor JSON dan pilih **Edit dokumen kebijakan** untuk meninjau dan mengedit dokumen kebijakan sesuai kebutuhan.

1. Kebijakan JSON ditampilkan dalam contoh berikut. Dalam `"Resource"` elemen, ganti `region:account` dengan Anda Wilayah AWS dan Akun AWS di setiap `Resource` nilai.  
****  

   ```
   {
       "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 ]

**Untuk menjalankan skrip sampel di Linux/macOS**

1. Di jendela baris perintah Anda, arahkan ke `~/aws-iot-device-sdk-python-v2/samples/node/pub_sub` direktori yang dibuat SDK dengan menggunakan perintah ini.

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

1. Di jendela baris perintah Anda, ganti *your-iot-endpoint* seperti yang ditunjukkan dan jalankan perintah ini.

   ```
   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 ]

**Untuk menjalankan aplikasi sampel pada PC Windows**

1. Di jendela baris perintah Anda, navigasikan ke `%USERPROFILE%\aws-iot-device-sdk-python-v2\samples` direktori yang dibuat SDK dan instal aplikasi sampel dengan menggunakan perintah ini.

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

1. Di jendela baris perintah Anda, ganti *your-iot-endpoint* seperti yang ditunjukkan dan jalankan perintah ini.

   ```
   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
   ```

------

Contoh skrip:

1. Terhubung ke AWS IoT Core untuk akun Anda.

1. Berlangganan topik pesan, **uji/topik**, dan menampilkan pesan yang diterimanya pada topik itu.

1. Menerbitkan 10 pesan ke topik, **uji/topik**.

1. Menampilkan output yang mirip dengan berikut ini:

```
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!
```

Jika Anda mengalami masalah dalam menjalankan aplikasi sampel, tinjau[Memecahkan masalah dengan aplikasi sampel](gs-device-troubleshoot.md).

Anda juga dapat menambahkan `--verbosity Debug` parameter ke baris perintah sehingga aplikasi sampel menampilkan pesan terperinci tentang apa yang dilakukannya. Informasi itu dapat membantu Anda memperbaiki masalah.

## Melihat pesan dari aplikasi sampel di AWS IoT konsol
<a name="gs-pc-view-msg"></a>

**Anda dapat melihat pesan aplikasi sampel saat mereka melewati broker pesan dengan menggunakan **klien pengujian MQTT di konsol**.AWS IoT **

**Untuk melihat pesan MQTT yang diterbitkan oleh aplikasi sampel**

1. Ulasan[Lihat pesan MQTT dengan klien MQTT AWS IoT](view-mqtt-messages.md). Ini membantu Anda mempelajari cara menggunakan **klien pengujian MQTT** di **AWS IoT konsol** untuk melihat pesan MQTT saat mereka melewati broker pesan.

1. **Buka **klien pengujian MQTT di konsol**.AWS IoT **

1. Di **Berlangganan topik**, berlangganan topik, **uji/topik**.

1. **Di jendela baris perintah Anda, jalankan aplikasi sampel lagi dan tonton pesan di **klien MQTT di konsol**.AWS IoT **

------
#### [ 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
   ```

------

[Untuk informasi selengkapnya tentang MQTT dan cara AWS IoT Core mendukung protokol, lihat MQTT.](https://docs.aws.amazon.com//iot/latest/developerguide/mqtt.html)

## Jalankan contoh Berlangganan Bersama dengan Python
<a name="gs-pc-shared-subscription-example"></a>

AWS IoT Core mendukung [Langganan Bersama](mqtt.md#mqtt5-shared-subscription) untuk MQTT 3 dan MQTT 5. Langganan Bersama memungkinkan beberapa klien untuk berbagi langganan ke suatu topik dan hanya satu klien yang akan menerima pesan yang dipublikasikan ke topik tersebut menggunakan distribusi acak. Untuk menggunakan Langganan Bersama, klien berlangganan [filter topik](https://docs.aws.amazon.com//iot/latest/developerguide/topics.html#topicfilters) Langganan Bersama:`$share/{ShareName}/{TopicFilter}`. 

**Untuk menyiapkan kebijakan dan menjalankan contoh Langganan Bersama**

1. Untuk menjalankan contoh Berlangganan Bersama, Anda harus menyiapkan kebijakan hal Anda seperti yang didokumentasikan dalam Langganan Bersama [MQTT 5](https://github.com/aws/aws-iot-device-sdk-python-v2/blob/main/samples/mqtt5_shared_subscription.md#mqtt5-shared-subscription). 

1. Untuk menjalankan contoh Berlangganan Bersama, jalankan perintah berikut.

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

**Untuk menjalankan skrip sampel di Linux/macOS**

   1. Di jendela baris perintah Anda, arahkan ke `~/aws-iot-device-sdk-python-v2/samples` direktori yang dibuat SDK dengan menggunakan perintah ini.

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

   1. Di jendela baris perintah Anda, ganti *your-iot-endpoint* seperti yang ditunjukkan dan jalankan perintah ini.

      ```
      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 ]

**Untuk menjalankan aplikasi sampel pada PC Windows**

   1. Di jendela baris perintah Anda, navigasikan ke `%USERPROFILE%\aws-iot-device-sdk-python-v2\samples` direktori yang dibuat SDK dan instal aplikasi sampel dengan menggunakan perintah ini.

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

   1. Di jendela baris perintah Anda, ganti *your-iot-endpoint* seperti yang ditunjukkan dan jalankan perintah ini.

      ```
      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
      ```

------
**catatan**  
Anda dapat secara opsional menentukan pengidentifikasi grup berdasarkan kebutuhan Anda saat menjalankan sampel (misalnya,`--group_identifier consumer`). Jika Anda tidak menentukannya, `python-sample` adalah pengidentifikasi grup default.

1. Output di baris perintah Anda dapat terlihat seperti berikut:

   ```
   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. **Buka **klien uji MQTT di konsol**.AWS IoT ** Di **Berlangganan topik**, berlangganan topik Langganan Bersama seperti:`$share/consumer/test/topic`. Anda dapat menentukan pengidentifikasi grup berdasarkan kebutuhan Anda saat menjalankan sampel (mis.,`--group_identifier consumer`). Jika Anda tidak menentukan pengidentifikasi grup, nilai defaultnya adalah`python-sample`. *Untuk informasi selengkapnya, lihat [contoh Python Berlangganan Bersama MQTT 5](https://github.com/aws/aws-iot-device-sdk-python-v2/blob/main/samples/mqtt5_shared_subscription.md#mqtt5-shared-subscription) dan Langganan [Bersama](mqtt.md#mqtt5-shared-subscription) dari Panduan Pengembang.AWS IoT Core *

   Di jendela baris perintah Anda, jalankan aplikasi sampel lagi dan saksikan distribusi pesan di **klien pengujian MQTT AWS IoT ** **konsol** dan baris perintah.  
![\[Halaman keluaran langganan bersama.\]](http://docs.aws.amazon.com/id_id/iot/latest/developerguide/images/shared-subscription-output.png)

# Connect Raspberry Pi atau perangkat lain
<a name="connecting-to-existing-device"></a>

Di bagian ini, kita akan mengkonfigurasi Raspberry Pi untuk digunakan dengan AWS IoT. Jika Anda memiliki perangkat lain yang ingin Anda sambungkan, petunjuk untuk Raspberry Pi menyertakan referensi yang dapat membantu Anda menyesuaikan instruksi ini ke perangkat Anda.

Ini biasanya memakan waktu sekitar 20 menit, tetapi bisa memakan waktu lebih lama jika Anda memiliki banyak peningkatan perangkat lunak sistem untuk diinstal.

**Topics**
+ [Siapkan perangkat Anda](#gs-device-prereqs)
+ [Instal alat dan pustaka yang diperlukan untuk AWS IoT Device SDK](#gs-device-sdk-tools)
+ [Instal SDK AWS IoT Perangkat](#gs-device-install-sdk)
+ [Instal dan jalankan aplikasi sampel](#gs-device-node-app-run)
+ [Melihat pesan dari aplikasi sampel di AWS IoT konsol](#gs-device-view-msg)

**penting**  
Menyesuaikan instruksi ini ke perangkat dan sistem operasi lain dapat menjadi tantangan. Anda harus memahami perangkat Anda dengan cukup baik untuk dapat menafsirkan instruksi ini dan menerapkannya ke perangkat Anda.  
Jika Anda mengalami kesulitan saat mengonfigurasi perangkat AWS IoT, Anda dapat mencoba salah satu opsi perangkat lain sebagai alternatif, seperti [Buat perangkat virtual dengan Amazon EC2](creating-a-virtual-thing.md) atau[Gunakan Windows atau Linux PC atau Mac Anda sebagai AWS IoT perangkat](using-laptop-as-device.md).

## Siapkan perangkat Anda
<a name="gs-device-prereqs"></a>

Tujuan dari langkah ini adalah untuk mengumpulkan apa yang Anda perlukan untuk mengkonfigurasi perangkat Anda sehingga dapat memulai sistem operasi (OS), terhubung ke internet, dan memungkinkan Anda untuk berinteraksi dengannya di antarmuka baris perintah.

Untuk menyelesaikan tutorial ini, Anda memerlukan hal berikut:
+ Sebuah Akun AWS. Jika Anda tidak memilikinya, selesaikan langkah-langkah yang dijelaskan [Mengatur Akun AWS](setting-up.md) sebelum melanjutkan.
+ [Raspberry Pi 3 Model B](https://www.raspberrypi.com/products/) atau model yang lebih baru. Ini mungkin bekerja pada versi sebelumnya dari Raspberry Pi, tetapi mereka belum diuji.
+ [Raspberry Pi OS (32-bit)](https://www.raspberrypi.com/software/operating-systems/) atau yang lebih baru. Kami merekomendasikan menggunakan versi terbaru dari Raspberry Pi OS. Versi OS sebelumnya mungkin berfungsi, tetapi belum diuji.

  Untuk menjalankan contoh ini, Anda tidak perlu menginstal desktop dengan antarmuka pengguna grafis (GUI); Namun, jika Anda baru mengenal Raspberry Pi dan perangkat keras Raspberry Pi Anda mendukungnya, menggunakan desktop dengan GUI mungkin lebih mudah.
+ Ethernet atau WiFi koneksi.
+ Keyboard, mouse, monitor, kabel, catu daya, dan perangkat keras lain yang diperlukan oleh perangkat Anda.

**penting**  
Sebelum Anda melanjutkan ke langkah berikutnya, perangkat Anda harus menginstal, mengkonfigurasi, dan menjalankan sistem operasinya. Perangkat harus terhubung ke internet dan Anda harus dapat mengakses perangkat dengan menggunakan antarmuka baris perintahnya. Akses baris perintah dapat melalui keyboard, mouse, dan monitor yang terhubung langsung, atau dengan menggunakan antarmuka jarak jauh terminal SSH.

 Jika Anda menjalankan sistem operasi pada Raspberry Pi Anda yang memiliki antarmuka pengguna grafis (GUI), buka jendela terminal pada perangkat dan lakukan instruksi berikut di jendela itu. Jika tidak, jika Anda terhubung ke perangkat Anda dengan menggunakan terminal jarak jauh, seperti PuTTY, buka terminal jarak jauh ke perangkat Anda dan gunakan itu.

## Instal alat dan pustaka yang diperlukan untuk AWS IoT Device SDK
<a name="gs-device-sdk-tools"></a>

Sebelum Anda menginstal AWS IoT Device SDK dan kode sampel, pastikan sistem Anda mutakhir dan memiliki alat dan pustaka yang diperlukan untuk menginstal. SDKs

1. 

**Perbarui sistem operasi dan instal pustaka yang diperlukan**  
Sebelum Anda menginstal AWS IoT Device SDK, jalankan perintah ini di jendela terminal pada perangkat Anda untuk memperbarui sistem operasi dan menginstal pustaka yang diperlukan.

   ```
   sudo apt-get update
   ```

   ```
   sudo apt-get upgrade
   ```

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

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

1. 

**Instal Git**  
Jika sistem operasi perangkat Anda tidak disertakan dengan Git yang diinstal, Anda harus menginstalnya untuk menginstal AWS IoT Device SDK. JavaScript 

   1. Uji untuk melihat apakah Git sudah diinstal dengan menjalankan perintah ini.

      ```
      git --version
      ```

   1. Jika perintah sebelumnya mengembalikan versi Git, Git sudah diinstal dan Anda dapat melompat ke Langkah 3.

   1. Jika kesalahan ditampilkan saat Anda menjalankan **git** perintah, instal Git dengan menjalankan perintah ini.

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

   1. Uji lagi untuk melihat apakah Git diinstal dengan menjalankan perintah ini.

      ```
      git --version
      ```

   1. Jika Git diinstal, lanjutkan ke bagian berikutnya. Jika tidak, pecahkan masalah dan perbaiki kesalahan sebelum melanjutkan. Anda memerlukan Git untuk menginstal AWS IoT Device SDK untuk JavaScript.

## Instal SDK AWS IoT Perangkat
<a name="gs-device-install-sdk"></a>

Instal SDK AWS IoT Perangkat.

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

Di bagian ini, Anda akan menginstal Python, alat pengembangannya, dan AWS IoT Device SDK untuk Python di perangkat Anda. Instruksi ini untuk Raspberry Pi yang menjalankan OS Raspberry Pi terbaru. Jika Anda memiliki perangkat lain atau menggunakan sistem operasi lain, Anda mungkin perlu menyesuaikan petunjuk ini untuk perangkat Anda.

1. 

**Instal Python dan alat pengembangannya**  
 AWS IoT Perangkat SDK untuk Python memerlukan Python v3.5 atau yang lebih baru untuk diinstal pada Raspberry Pi Anda.

   Di jendela terminal ke perangkat Anda, jalankan perintah ini.

   1. Jalankan perintah ini untuk menentukan versi Python yang diinstal pada perangkat Anda.

      ```
      python3 --version
      ```

      Jika Python diinstal, itu akan menampilkan versinya.

   1. Jika versi yang ditampilkan `Python 3.5` atau lebih besar, Anda dapat melompat ke Langkah 2.

   1. Jika versi yang ditampilkan kurang dari`Python 3.5`, Anda dapat menginstal versi yang benar dengan menjalankan perintah ini.

      ```
      sudo apt install python3
      ```

   1. Jalankan perintah ini untuk mengonfirmasi bahwa versi Python yang benar sekarang diinstal.

      ```
      python3 --version
      ```

1. 

**Uji untuk pip3**  
Di jendela terminal ke perangkat Anda, jalankan perintah ini.

   1. Jalankan perintah ini untuk melihat **pip3** apakah sudah diinstal.

      ```
      pip3 --version
      ```

   1. Jika perintah mengembalikan nomor versi, **pip3** diinstal dan Anda dapat melompat ke Langkah 3.

   1. Jika perintah sebelumnya mengembalikan kesalahan, jalankan perintah ini untuk menginstal**pip3**.

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

   1. Jalankan perintah ini untuk melihat **pip3** apakah sudah diinstal.

      ```
      pip3 --version
      ```

1. 

**Instal SDK AWS IoT Perangkat saat ini untuk Python**  
Instal SDK AWS IoT Perangkat untuk Python dan unduh contoh aplikasi ke perangkat Anda.

   Di perangkat Anda, jalankan perintah ini.

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

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

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

Di bagian ini, Anda akan menginstal Node.js, manajer paket npm, dan AWS IoT Device SDK untuk JavaScript di perangkat Anda. Instruksi ini untuk Raspberry Pi yang menjalankan Raspberry Pi OS. Jika Anda memiliki perangkat lain atau menggunakan sistem operasi lain, Anda mungkin perlu menyesuaikan petunjuk ini untuk perangkat Anda.

1. 

**Instal versi terbaru dari Node.js**  
 AWS IoT Perangkat SDK untuk JavaScript membutuhkan Node.js dan manajer paket npm untuk diinstal pada Raspberry Pi Anda.

   1. Unduh versi terbaru dari repositori Node dengan memasukkan perintah ini.

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

   1. Instal Node dan npm.

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

   1. Verifikasi instalasi Node.

      ```
      node -v
      ```

      Konfirmasikan bahwa perintah menampilkan versi Node. Tutorial ini membutuhkan Node v10.0 atau yang lebih baru. Jika versi Node tidak ditampilkan, coba unduh repositori Node lagi.

   1. Verifikasi instalasi npm.

      ```
      npm -v
      ```

      Konfirmasikan bahwa perintah menampilkan versi npm. Jika versi npm tidak ditampilkan, coba instal Node dan npm lagi.

   1. Mulai ulang perangkat.

      ```
      sudo shutdown -r 0
      ```

      Lanjutkan setelah perangkat restart.

1. 

**Instal SDK AWS IoT Perangkat untuk JavaScript**  
Instal AWS IoT Device SDK untuk JavaScript Raspberry Pi Anda.

   1. Kloning AWS IoT Device SDK untuk JavaScript repositori ke `aws-iot-device-sdk-js-v2` direktori direktori Anda. *home* Pada Raspberry Pi, *home* direktorinya adalah`~/`, yang digunakan sebagai *home* direktori dalam perintah berikut. Jika perangkat Anda menggunakan jalur yang berbeda untuk *home* direktori, Anda harus mengganti `~/` dengan jalur yang benar untuk perangkat Anda dalam perintah berikut.

      Perintah ini membuat `~/aws-iot-device-sdk-js-v2` direktori dan menyalin kode SDK ke dalamnya.

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

   1. Ubah ke `aws-iot-device-sdk-js-v2` direktori yang Anda buat pada langkah sebelumnya dan jalankan `npm install` untuk menginstal SDK. Perintah `npm install` akan memanggil build `aws-crt` perpustakaan yang dapat memakan waktu beberapa menit untuk menyelesaikannya.

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

------

## Instal dan jalankan aplikasi sampel
<a name="gs-device-node-app-run"></a>

Di bagian ini, Anda akan menginstal dan menjalankan aplikasi `pubsub` sampel yang ditemukan di AWS IoT Device SDK. Aplikasi ini menunjukkan bagaimana perangkat Anda menggunakan pustaka MQTT untuk mempublikasikan dan berlangganan pesan MQTT. Aplikasi sampel berlangganan topik`topic_1`, menerbitkan 10 pesan ke topik itu, dan menampilkan pesan saat diterima dari broker pesan.

**Instal file sertifikat**  
Aplikasi sampel memerlukan file sertifikat yang mengautentikasi perangkat yang akan diinstal pada perangkat.

**Untuk menginstal file sertifikat perangkat untuk aplikasi sampel**

1. Buat `certs` subdirektori di *home* direktori Anda dengan menjalankan perintah ini.

   ```
   cd ~
   mkdir certs
   ```

1. Ke `~/certs` direktori, salin kunci pribadi, sertifikat perangkat, dan sertifikat CA root yang Anda buat sebelumnya[Buat AWS IoT sumber daya](create-iot-resources.md).

   Cara Anda menyalin file sertifikat ke perangkat tergantung pada perangkat dan sistem operasi dan tidak dijelaskan di sini. Namun, jika perangkat Anda mendukung antarmuka pengguna grafis (GUI) dan memiliki browser web, Anda dapat melakukan prosedur yang dijelaskan [Buat AWS IoT sumber daya](create-iot-resources.md) dari browser web perangkat Anda untuk mengunduh file yang dihasilkan langsung ke perangkat Anda.

   Perintah di bagian berikutnya mengasumsikan bahwa file kunci dan sertifikat Anda disimpan di perangkat seperti yang ditunjukkan dalam tabel ini.  
**Nama berkas sertifikat**    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/iot/latest/developerguide/connecting-to-existing-device.html)

Untuk menjalankan aplikasi sampel, Anda memerlukan informasi berikut:


**Nilai parameter aplikasi**  

|  Parameter  |  Di mana menemukan nilainya  | 
| --- | --- | 
| your-iot-endpoint |  Di [AWS IoT konsol](https://console.aws.amazon.com/iot/home), pilih **Semua perangkat**, lalu pilih **Things**. Pada halaman **Pengaturan** di AWS IoT menu. Titik akhir Anda ditampilkan di bagian **titik akhir data Perangkat**.  | 

*your-iot-endpoint*Nilai memiliki format:`endpoint_id-ats.iot.region.amazonaws.com`, misalnya,`a3qj468EXAMPLE-ats.iot.us-west-2.amazonaws.com`.

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

**Untuk menginstal dan menjalankan aplikasi sampel**

1. Arahkan ke direktori aplikasi contoh.

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

1. Di jendela baris perintah, ganti *your-iot-endpoint* seperti yang ditunjukkan dan jalankan perintah ini.

   ```
   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. Perhatikan bahwa aplikasi sampel:

   1. Terhubung ke AWS IoT layanan untuk akun Anda.

   1. Berlangganan topik pesan, **topic\$11**, dan menampilkan pesan yang diterimanya pada topik itu.

   1. Menerbitkan 10 pesan ke topik, **topic\$11**.

   1. Menampilkan output yang mirip dengan berikut ini:

   ```
   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!
   ```

   Jika Anda mengalami masalah dalam menjalankan aplikasi sampel, tinjau[Memecahkan masalah dengan aplikasi sampel](gs-device-troubleshoot.md).

   Anda juga dapat menambahkan `--verbosity Debug` parameter ke baris perintah sehingga aplikasi sampel menampilkan pesan terperinci tentang apa yang dilakukannya. Informasi itu mungkin memberi Anda bantuan yang Anda butuhkan untuk memperbaiki masalah.

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

**Untuk menginstal dan menjalankan aplikasi sampel**

1. Di jendela baris perintah Anda, navigasikan ke `~/aws-iot-device-sdk-js-v2/samples/node/pub_sub` direktori yang dibuat SDK dan instal aplikasi sampel dengan menggunakan perintah ini. Perintah `npm install` akan memanggil build `aws-crt` perpustakaan yang dapat memakan waktu beberapa menit untuk menyelesaikannya.

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

1. Di jendela baris perintah, ganti *your-iot-endpoint* seperti yang ditunjukkan dan jalankan perintah ini.

   ```
   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. Perhatikan bahwa aplikasi sampel:

   1. Terhubung ke AWS IoT layanan untuk akun Anda.

   1. Berlangganan topik pesan, **topic\$11**, dan menampilkan pesan yang diterimanya pada topik itu.

   1. Menerbitkan 10 pesan ke topik, **topic\$11**.

   1. Menampilkan output yang mirip dengan berikut ini:

   ```
   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}
   ```

   Jika Anda mengalami masalah dalam menjalankan aplikasi sampel, tinjau[Memecahkan masalah dengan aplikasi sampel](gs-device-troubleshoot.md).

   Anda juga dapat menambahkan `--verbosity Debug` parameter ke baris perintah sehingga aplikasi sampel menampilkan pesan terperinci tentang apa yang dilakukannya. Informasi itu mungkin memberi Anda bantuan yang Anda butuhkan untuk memperbaiki masalah.

------

## Melihat pesan dari aplikasi sampel di AWS IoT konsol
<a name="gs-device-view-msg"></a>

**Anda dapat melihat pesan aplikasi sampel saat mereka melewati broker pesan dengan menggunakan **klien pengujian MQTT di konsol**.AWS IoT **

**Untuk melihat pesan MQTT yang diterbitkan oleh aplikasi sampel**

1. Ulasan[Lihat pesan MQTT dengan klien MQTT AWS IoT](view-mqtt-messages.md). Ini membantu Anda mempelajari cara menggunakan **klien pengujian MQTT** di **AWS IoT konsol** untuk melihat pesan MQTT saat mereka melewati broker pesan.

1. **Buka **klien pengujian MQTT di konsol**.AWS IoT **

1. Berlangganan topik, **topic\$11**.

1. **Di jendela baris perintah Anda, jalankan aplikasi sampel lagi dan tonton pesan di **klien MQTT di konsol**.AWS IoT **

------
#### [ 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
   ```

------

# Memecahkan masalah dengan aplikasi sampel
<a name="gs-device-troubleshoot"></a>

Jika Anda mengalami kesalahan saat mencoba menjalankan aplikasi sampel, berikut adalah beberapa hal yang perlu diperiksa.

## Periksa sertifikatnya
<a name="gs-device-ts-step-1"></a>

Jika sertifikat tidak aktif, tidak AWS IoT akan menerima upaya koneksi apa pun yang menggunakannya untuk otorisasi. Saat membuat sertifikat Anda, mudah untuk mengabaikan tombol **Aktifkan**. Untungnya, Anda dapat mengaktifkan sertifikat Anda dari [AWS IoT konsol](https://console.aws.amazon.com/iot/home).

**Untuk memeriksa aktivasi sertifikat Anda**

1. Di [AWS IoT konsol](https://console.aws.amazon.com/iot/home), di menu sebelah kiri, pilih **Aman**, lalu pilih **Sertifikat**.

1. Dalam daftar sertifikat, temukan sertifikat yang Anda buat untuk latihan dan periksa statusnya di kolom **Status**.

   Jika Anda tidak ingat nama sertifikat, periksa apakah ada yang **Tidak Aktif** untuk melihat apakah mereka mungkin yang Anda gunakan.

   Pilih sertifikat dalam daftar untuk membuka halaman detailnya. Di halaman detail, Anda dapat melihat **tanggal Buat** untuk membantu Anda mengidentifikasi sertifikat.

1. **Untuk mengaktifkan sertifikat tidak aktif**, dari halaman detail sertifikat, pilih **Tindakan**, lalu pilih **Aktifkan**. 

Jika Anda menemukan sertifikat yang benar dan aktif, tetapi Anda masih mengalami masalah dalam menjalankan aplikasi sampel, periksa kebijakannya seperti yang dijelaskan langkah selanjutnya.

Anda juga dapat mencoba membuat hal baru dan sertifikat baru dengan mengikuti langkah-langkah di[Buat objek benda](create-iot-resources.md#create-aws-thing). Jika Anda membuat hal baru, Anda harus memberinya nama hal baru dan mengunduh file sertifikat baru ke perangkat Anda.

## Periksa kebijakan yang dilampirkan pada sertifikat
<a name="gs-device-ts-step-2"></a>

Kebijakan mengotorisasi tindakan di AWS IoT. Jika sertifikat yang digunakan untuk terhubung AWS IoT tidak memiliki kebijakan, atau tidak memiliki kebijakan yang memungkinkannya terhubung, koneksi akan ditolak, bahkan jika sertifikat aktif.

**Untuk memeriksa kebijakan yang dilampirkan pada sertifikat**

1. Temukan sertifikat seperti yang dijelaskan pada item sebelumnya dan buka halaman detailnya.

1. Di menu sebelah kiri halaman detail sertifikat, pilih **Kebijakan** untuk melihat kebijakan yang dilampirkan pada sertifikat.

1. Jika tidak ada kebijakan yang dilampirkan pada sertifikat, tambahkan satu dengan memilih menu **Tindakan**, lalu pilih **Lampirkan kebijakan**. 

   Pilih kebijakan yang Anda buat sebelumnya[Buat AWS IoT sumber daya](create-iot-resources.md).

1. Jika ada kebijakan yang dilampirkan, pilih ubin kebijakan untuk membuka halaman detailnya.

   Di halaman detail, tinjau **dokumen Kebijakan** untuk memastikan dokumen tersebut berisi informasi yang sama dengan yang Anda buat[Buat AWS IoT kebijakan](create-iot-resources.md#create-iot-policy).

## Periksa baris perintah
<a name="gs-device-ts-step-3"></a>

Pastikan Anda menggunakan baris perintah yang benar untuk sistem Anda. Perintah yang digunakan pada sistem Linux dan macOS seringkali berbeda dari yang digunakan pada sistem Windows.

## Periksa alamat titik akhir
<a name="gs-device-ts-step-4"></a>

[Tinjau perintah yang Anda masukkan dan periksa kembali alamat titik akhir dalam perintah Anda ke yang ada di konsol Anda AWS IoT .](https://console.aws.amazon.com/iot/home)

## Periksa nama file dari file sertifikat
<a name="gs-device-ts-step-5"></a>

Bandingkan nama file dalam perintah yang Anda masukkan ke nama file file sertifikat di `certs` direktori.

Beberapa sistem mungkin memerlukan nama file dalam tanda kutip agar berfungsi dengan benar.

## Periksa instalasi SDK
<a name="gs-device-ts-step-6"></a>

Pastikan penginstalan SDK Anda selesai dan benar.

Jika ragu, instal ulang SDK di perangkat Anda. Dalam kebanyakan kasus, itu masalah menemukan bagian tutorial berjudul **Install the AWS IoT Device SDK untuk **SDK language**** dan mengikuti prosedur lagi.

Jika Anda menggunakan **AWS IoT Device SDK untuk JavaScript**, ingatlah untuk menginstal contoh aplikasi sebelum Anda mencoba menjalankannya. Menginstal SDK tidak secara otomatis menginstal aplikasi sampel. Contoh aplikasi harus diinstal secara manual setelah SDK diinstal.