View a markdown version of this page

Siapkan Raspberry Pi untuk menjalankan pekerjaan - AWS IoT Core

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

Siapkan Raspberry Pi untuk menjalankan pekerjaan

Prosedur di bagian ini menjelaskan cara mempersiapkan Raspberry Pi Anda untuk menjalankan pekerjaan dengan menggunakan Kli AWS IoT en Perangkat.

catatan

Prosedur ini khusus perangkat. Jika Anda ingin melakukan prosedur di bagian ini dengan lebih dari satu perangkat secara bersamaan, setiap perangkat akan memerlukan kebijakan sendiri dan sertifikat dan nama benda khusus perangkat yang unik. Untuk memberikan setiap perangkat sumber daya uniknya, lakukan prosedur ini satu kali untuk setiap perangkat sambil mengubah elemen khusus perangkat seperti yang dijelaskan dalam prosedur.

Berikan Raspberry Pi Anda untuk menunjukkan pekerjaan

Prosedur di bagian ini menyediakan Raspberry Pi Anda AWS IoT dengan membuat AWS IoT sumber daya dan sertifikat perangkat untuknya.

Buat dan unduh file sertifikat perangkat untuk menunjukkan AWS IoT pekerjaan

Prosedur ini membuat file sertifikat perangkat untuk demo ini.

Jika Anda menyiapkan lebih dari satu perangkat, prosedur ini harus dilakukan pada setiap perangkat.

Untuk membuat dan mengunduh file sertifikat perangkat untuk Raspberry Pi Anda:

Di jendela terminal pada komputer host lokal Anda yang terhubung ke Raspberry Pi Anda, masukkan perintah ini.

  1. Masukkan perintah berikut untuk membuat file sertifikat perangkat untuk perangkat Anda.

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

    Perintah mengembalikan respons seperti berikut ini. Simpan certificateArn nilai untuk digunakan nanti.

    { "certificateArn": "arn:aws:iot:us-west-2:57EXAMPLE833:cert/76e7e4edb3e52f52334be2f387a06145b2aa4c7fcd810f3aea2d92abc227d269", "certificateId": "76e7e4edb3e52f5233EXAMPLE7a06145b2aa4c7fcd810f3aea2d92abc227d269", "certificatePem": "-----BEGIN CERTIFICATE-----\nMIIDWTCCAkGgAwIBAgI_SHORTENED_FOR_EXAMPLE_Lgn4jfgtS\n-----END CERTIFICATE-----\n", "keyPair": { "PublicKey": "-----BEGIN PUBLIC KEY-----\nMIIBIjANBgkqhkiG9w0BA_SHORTENED_FOR_EXAMPLE_ImwIDAQAB\n-----END PUBLIC KEY-----\n", "PrivateKey": "-----BEGIN RSA PRIVATE KEY-----\nMIIEowIBAAKCAQE_SHORTENED_FOR_EXAMPLE_T9RoDiukY\n-----END RSA PRIVATE KEY-----\n" } }
  2. Masukkan perintah berikut untuk mengatur izin pada direktori sertifikat dan file-file-nya.

    chmod 700 ~/certs/jobs chmod 644 ~/certs/jobs/* chmod 600 ~/certs/jobs/private.pem.key
  3. Jalankan perintah ini untuk meninjau izin pada direktori dan file sertifikat Anda.

    ls -l ~/certs/jobs

    Output dari perintah harus sama dengan apa yang Anda lihat di sini, kecuali tanggal dan waktu file akan berbeda.

    -rw-r--r-- 1 pi pi 1220 Oct 28 13:02 device.pem.crt -rw------- 1 pi pi 1675 Oct 28 13:02 private.pem.key -rw-r--r-- 1 pi pi 451 Oct 28 13:02 public.pem.key

Setelah Anda mengunduh file sertifikat perangkat ke Raspberry Pi Anda, Anda siap untuk melanjutkanBerikan Raspberry Pi Anda untuk menunjukkan pekerjaan.

Buat AWS IoT sumber daya untuk menunjukkan AWS IoT pekerjaan

Buat sumber AWS IoT daya untuk perangkat ini.

Jika Anda menyiapkan lebih dari satu perangkat, prosedur ini harus dilakukan untuk setiap perangkat.

Untuk menyediakan perangkat Anda di AWS IoT:

Di jendela terminal pada komputer host lokal Anda yang terhubung ke Raspberry Pi Anda:

  1. Masukkan perintah berikut untuk mendapatkan alamat titik akhir data perangkat untuk Anda Akun AWS.

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

    Nilai titik akhir tidak berubah sejak terakhir kali Anda menjalankan perintah ini. Menjalankan perintah lagi di sini memudahkan untuk menemukan dan menempelkan nilai titik akhir data ke dalam file konfigurasi yang digunakan dalam tutorial ini.

    Per describe-endpoint intah mengembalikan respons seperti berikut ini. Catat endpointAddress nilainya untuk digunakan nanti.

    { "endpointAddress": "a3qjEXAMPLEffp-ats.iot.us-west-2.amazonaws.com" }
  2. Ganti uniqueThingName dengan nama unik untuk perangkat Anda. Jika Anda ingin melakukan tutorial ini dengan beberapa perangkat, berikan setiap perangkat namanya sendiri. Misalnya,TestDevice01,TestDevice02, dan sebagainya.

    Masukkan perintah ini untuk membuat sumber AWS IoT daya baru untuk Raspberry Pi Anda.

    aws iot create-thing --thing-name "uniqueThingName"

    Karena sumber daya AWS IoT benda adalah representasi virtual perangkat Anda di cloud, kami dapat membuat beberapa sumber daya benda untuk AWS IoT digunakan untuk tujuan yang berbeda. Mereka semua dapat digunakan oleh perangkat IoT fisik yang sama untuk mewakili aspek yang berbeda dari perangkat.

    catatan

    Jika Anda ingin mengamankan kebijakan untuk beberapa perangkat, Anda dapat menggunakan sebagai ${iot:Thing.ThingName} pengganti nama benda statis,uniqueThingName.

    Tutorial ini hanya akan menggunakan sumber daya satu hal pada satu waktu per perangkat. Dengan cara ini, dalam tutorial ini, mereka mewakili demo yang berbeda sehingga setelah Anda membuat AWS IoT sumber daya untuk demo, Anda dapat kembali dan mengulangi demo menggunakan sumber daya yang Anda buat khusus untuk masing-masing.

    Jika sumber daya AWS IoT benda Anda dibuat, perintah mengembalikan respons seperti ini. Catat thingArn nilai untuk digunakan nanti saat Anda membuat pekerjaan untuk dijalankan di perangkat ini.

    { "thingName": "uniqueThingName", "thingArn": "arn:aws:iot:us-west-2:57EXAMPLE833:thing/uniqueThingName", "thingId": "8ea78707-32c3-4f8a-9232-14bEXAMPLEfd" }
  3. Di jendela terminal:

    1. Buka editor teks, sepertinano.

    2. Salin dokumen JSON ini dan tempelkan ke editor teks terbuka Anda.

      { "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "iot:Connect" ], "Resource": [ "arn:aws:iot:us-west-2:123456789012:client/uniqueThingName" ] }, { "Effect": "Allow", "Action": [ "iot:Publish" ], "Resource": [ "arn:aws:iot:us-west-2:123456789012:topic/test/dc/pubtopic", "arn:aws:iot:us-west-2:123456789012:topic/$aws/events/job/*", "arn:aws:iot:us-west-2:123456789012:topic/$aws/events/jobExecution/*", "arn:aws:iot:us-west-2:123456789012:topic/$aws/things/uniqueThingName/jobs/*" ] }, { "Effect": "Allow", "Action": [ "iot:Subscribe" ], "Resource": [ "arn:aws:iot:us-west-2:123456789012:topicfilter/test/dc/subtopic", "arn:aws:iot:us-west-2:123456789012:topic/$aws/events/jobExecution/*", "arn:aws:iot:us-west-2:123456789012:topicfilter/$aws/things/uniqueThingName/jobs/*" ] }, { "Effect": "Allow", "Action": [ "iot:Receive" ], "Resource": [ "arn:aws:iot:us-west-2:123456789012:topic/test/dc/subtopic", "arn:aws:iot:us-west-2:123456789012:topic/$aws/things/uniqueThingName/jobs/*" ] }, { "Effect": "Allow", "Action": [ "iot:DescribeJobExecution", "iot:GetPendingJobExecutions", "iot:StartNextPendingJobExecution", "iot:UpdateJobExecution" ], "Resource": [ "arn:aws:iot:us-west-2:123456789012:topic/$aws/things/uniqueThingName" ] } ] }
    3. Di editor, di Resource bagian setiap pernyataan kebijakan, ganti us-west-2:57EXAMPLE833 dengan karakter titik Wilayah AWS dua (:), dan Akun AWS nomor 12 digit Anda.

    4. Di editor, di setiap pernyataan kebijakan, ganti uniqueThingName dengan nama benda yang Anda berikan sumber daya benda ini.

    5. Simpan file di editor teks Anda sebagai~/policies/jobs_test_thing_policy.json.

      Jika Anda menjalankan prosedur ini untuk beberapa perangkat, simpan file ke nama file ini di setiap perangkat.

  4. Ganti uniqueThingName dengan nama benda untuk perangkat, lalu jalankan perintah ini untuk membuat AWS IoT kebijakan yang disesuaikan untuk perangkat tersebut.

    aws iot create-policy \ --policy-name "JobTestPolicyForuniqueThingName" \ --policy-document "file://~/policies/jobs_test_thing_policy.json"

    Jika kebijakan dibuat, perintah mengembalikan respons seperti ini.

    { "policyName": "JobTestPolicyForuniqueThingName", "policyArn": "arn:aws:iot:us-west-2:57EXAMPLE833:policy/JobTestPolicyForuniqueThingName", "policyDocument": "{\n\"Version\": \"2012-10-17\",\n\"Statement\": [\n{\n\"Effect\": \"Allow\",\n\"Action\": [\n\"iot:Connect\"\n],\n\"Resource\": [\n\"arn:aws:iot:us-west-2:57EXAMPLE833:client/PubSubTestThing\"\n]\n},\n{\n\"Effect\": \"Allow\",\n\"Action\": [\n\"iot:Publish\"\n],\n\"Resource\": [\n\"arn:aws:iot:us-west-2:57EXAMPLE833:topic/test/dc/pubtopic\"\n]\n},\n{\n\"Effect\": \"Allow\",\n\"Action\": [\n\"iot:Subscribe\"\n],\n\"Resource\": [\n\"arn:aws:iot:us-west-2:57EXAMPLE833:topicfilter/test/dc/subtopic\"\n]\n},\n{\n\"Effect\": \"Allow\",\n\"Action\": [\n\"iot:Receive\"\n],\n\"Resource\": [\n\"arn:aws:iot:us-west-2:57EXAMPLE833:topic/test/dc/*\"\n]\n}\n]\n}\n", "policyVersionId": "1" }
  5. Ganti uniqueThingName dengan nama benda untuk perangkat dan certificateArn dengan certificateArn nilai yang Anda simpan sebelumnya di bagian ini untuk perangkat ini, lalu jalankan perintah ini untuk melampirkan kebijakan ke sertifikat perangkat.

    aws iot attach-policy \ --policy-name "JobTestPolicyForuniqueThingName" \ --target "certificateArn"

    Jika berhasil, perintah ini tidak mengembalikan apa pun.

  6. Ganti uniqueThingName dengan nama benda untuk perangkat, ganti certificateArn dengan certificateArn nilai yang Anda simpan sebelumnya di bagian ini, lalu jalankan perintah ini untuk melampirkan sertifikat perangkat ke sumber daya AWS IoT benda.

    aws iot attach-thing-principal \ --thing-name "uniqueThingName" \ --principal "certificateArn"

    Jika berhasil, perintah ini tidak mengembalikan apa pun.

Setelah Anda berhasil menyediakan Raspberry Pi Anda, Anda siap untuk mengulangi bagian ini untuk Raspberry Pi lain dalam pengujian Anda atau, jika semua perangkat telah disediakan, lanjutkan. Konfigurasikan AWS IoT Klien Perangkat untuk menjalankan agen pekerjaan

Konfigurasikan AWS IoT Klien Perangkat untuk menjalankan agen pekerjaan

Prosedur ini membuat file konfigurasi untuk Klien AWS IoT Perangkat untuk menjalankan agen pekerjaan:.

Catatan: jika Anda menyiapkan lebih dari satu perangkat, prosedur ini harus dilakukan pada setiap perangkat.

Untuk membuat file konfigurasi untuk menguji AWS IoT Klien Perangkat:
  1. Di jendela terminal pada komputer host lokal Anda yang terhubung ke Raspberry Pi Anda:

    1. Buka editor teks, sepertinano.

    2. Salin dokumen JSON ini dan tempelkan ke editor teks terbuka Anda.

      { "endpoint": "a3qEXAMPLEaffp-ats.iot.us-west-2.amazonaws.com", "cert": "~/certs/jobs/device.pem.crt", "key": "~/certs/jobs/private.pem.key", "root-ca": "~/certs/AmazonRootCA1.pem", "thing-name": "uniqueThingName", "logging": { "enable-sdk-logging": true, "level": "DEBUG", "type": "STDOUT", "file": "" }, "jobs": { "enabled": true, "handler-directory": "" }, "tunneling": { "enabled": false }, "device-defender": { "enabled": false, "interval": 300 }, "fleet-provisioning": { "enabled": false, "template-name": "", "template-parameters": "", "csr-file": "", "device-key": "" }, "samples": { "pub-sub": { "enabled": false, "publish-topic": "", "publish-file": "", "subscribe-topic": "", "subscribe-file": "" } }, "config-shadow": { "enabled": false }, "sample-shadow": { "enabled": false, "shadow-name": "", "shadow-input-file": "", "shadow-output-file": "" } }
    3. Ganti endpoint nilai dengan nilai titik akhir data perangkat untuk Akun AWS yang Anda temukanMenyediakan perangkat Anda di AWS IoT Core.

    4. Ganti uniqueThingName dengan nama benda yang Anda gunakan untuk perangkat ini.

    5. Simpan file di editor teks Anda sebagai~/dc-configs/dc-jobs-config.json.

  2. Jalankan perintah ini untuk mengatur izin file dari file konfigurasi baru.

    chmod 644 ~/dc-configs/dc-jobs-config.json

Anda tidak akan menggunakan klien uji MQTT untuk pengujian ini. Sementara perangkat akan bertukar pesan MQTT terkait pekerjaan dengan AWS IoT, pesan kemajuan pekerjaan hanya dipertukarkan dengan perangkat yang menjalankan pekerjaan. Karena pesan kemajuan pekerjaan hanya ditukar dengan perangkat yang menjalankan tugas, Anda tidak dapat berlangganan pesan tersebut dari perangkat lain, seperti AWS IoT konsol.

Setelah Anda menyimpan file konfigurasi, Anda siap untuk melanjutkanBuat dan jalankan pekerjaan di AWS IoT dengan AWS IoT Klien Perangkat.