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 bagaimana mempersiapkan Raspberry Pi Anda untuk menjalankan pekerjaan dengan menggunakan AWS IoT Device Client.
catatan
Prosedur ini khusus perangkat. Jika Anda ingin melakukan prosedur di bagian ini dengan lebih dari satu perangkat secara bersamaan, setiap perangkat akan memerlukan kebijakannya sendiri dan sertifikat khusus perangkat dan nama benda yang unik. Untuk memberikan setiap perangkat sumber daya yang unik, lakukan prosedur ini satu kali untuk setiap perangkat sambil mengubah elemen khusus perangkat seperti yang dijelaskan dalam prosedur.
Prosedur dalam tutorial ini
Menyediakan Raspberry Pi Anda untuk mendemonstrasikan pekerjaan
Prosedur di bagian ini menyediakan Raspberry Pi Anda AWS IoT dengan membuat AWS IoT sumber daya dan sertifikat perangkat untuknya.
Topik
Membuat dan mengunduh file sertifikat perangkat untuk mendemonstrasikan 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 di komputer host lokal Anda yang terhubung ke Raspberry Pi Anda, masukkan perintah ini.
-
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 respon seperti berikut ini. Simpan
nilai untuk digunakan nanti.certificateArn
{ "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" } } -
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
-
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 melanjutkanMenyediakan Raspberry Pi Anda untuk mendemonstrasikan pekerjaan.
Buat AWS IoT sumber daya untuk menunjukkan AWS IoT pekerjaan
Buat AWS IoT sumber 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 di komputer host lokal Anda yang terhubung ke Raspberry Pi Anda:
-
Masukkan perintah berikut untuk mendapatkan alamat titik akhir data perangkat untuk Anda Akun AWS.
aws iot describe-endpoint --endpoint-type IoT:Data-ATS
Nilai endpoint tidak berubah sejak terakhir kali Anda menjalankan perintah ini. Menjalankan perintah lagi di sini memudahkan untuk menemukan dan menempelkan nilai endpoint data ke dalam file konfigurasi yang digunakan dalam tutorial ini.
describe-endpointPerintah mengembalikan respon seperti berikut ini. Catat
nilai untuk digunakan nanti.endpointAddress
{ "endpointAddress": "
a3qjEXAMPLEffp-ats.iot.us-west-2.amazonaws.com
" } -
Ganti
uniqueThingName
dengan nama unik untuk perangkat Anda. Jika Anda ingin melakukan tutorial ini dengan beberapa perangkat, berikan nama masing-masing perangkat. Misalnya,TestDevice01
,TestDevice02
, dan sebagainya.Masukkan perintah ini untuk membuat sumber daya AWS IoT hal 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 AWS IoT untuk digunakan untuk tujuan yang berbeda. Mereka semua dapat digunakan oleh perangkat IoT fisik yang sama untuk mewakili berbagai aspek perangkat.
catatan
Jika Anda ingin mengamankan kebijakan untuk beberapa perangkat, Anda dapat menggunakan
${iot:Thing.
alih-alih nama benda statisThingName
}
.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 AWS IoT sumber daya Anda dibuat, perintah mengembalikan respons seperti ini. Catat
nilai untuk digunakan nanti saat Anda membuat pekerjaan untuk dijalankan di perangkat ini.thingArn
{ "thingName": "
uniqueThingName
", "thingArn": "arn:aws:iot:us-west-2:57EXAMPLE833:thing/uniqueThingName
", "thingId": "8ea78707-32c3-4f8a-9232-14bEXAMPLEfd" } -
Di jendela terminal:
-
Buka editor teks, seperti
nano
. -
Salin JSON dokumen 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:57EXAMPLE833
:client/uniqueThingName
" ] }, { "Effect": "Allow", "Action": [ "iot:Publish" ], "Resource": [ "arn:aws:iot:us-west-2:57EXAMPLE833
:topic/test/dc/pubtopic", "arn:aws:iot:us-west-2:57EXAMPLE833
:topic/$aws/events/job/*", "arn:aws:iot:us-west-2:57EXAMPLE833
:topic/$aws/events/jobExecution/*", "arn:aws:iot:us-west-2:57EXAMPLE833
:topic/$aws/things/uniqueThingName
/jobs/*" ] }, { "Effect": "Allow", "Action": [ "iot:Subscribe" ], "Resource": [ "arn:aws:iot:us-west-2:57EXAMPLE833
:topicfilter/test/dc/subtopic", "arn:aws:iot:us-west-2:57EXAMPLE833
:topic/$aws/events/jobExecution/*", "arn:aws:iot:us-west-2:57EXAMPLE833
:topicfilter/$aws/things/uniqueThingName
/jobs/*" ] }, { "Effect": "Allow", "Action": [ "iot:Receive" ], "Resource": [ "arn:aws:iot:us-west-2:57EXAMPLE833
:topic/test/dc/subtopic", "arn:aws:iot:us-west-2:57EXAMPLE833
:topic/$aws/things/uniqueThingName
/jobs/*" ] }, { "Effect": "Allow", "Action": [ "iot:DescribeJobExecution", "iot:GetPendingJobExecutions", "iot:StartNextPendingJobExecution", "iot:UpdateJobExecution" ], "Resource": [ "arn:aws:iot:us-west-2:57EXAMPLE833
:topic/$aws/things/uniqueThingName
" ] } ] } -
Di editor, di
Resource
bagian setiap pernyataan kebijakan, gantius-west-2:57EXAMPLE833
dengan karakter titik dua Anda Wilayah AWS(:), dan Akun AWS nomor 12 digit Anda. -
Di editor, dalam setiap pernyataan kebijakan, ganti
uniqueThingName
dengan nama benda yang Anda berikan sumber daya ini. -
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.
-
-
Ganti
uniqueThingName
dengan nama benda untuk perangkat, lalu jalankan perintah ini untuk membuat AWS IoT kebijakan yang disesuaikan untuk perangkat itu.aws iot create-policy \ --policy-name "JobTestPolicyFor
uniqueThingName
" \ --policy-document "file://~/policies/jobs_test_thing_policy.json"Jika kebijakan dibuat, perintah akan menampilkan respons seperti ini.
{ "policyName": "JobTestPolicyFor
uniqueThingName
", "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" -
Ganti
uniqueThingName
dengan nama benda untuk perangkat dan
dengancertificateArn
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 "JobTestPolicyFor
uniqueThingName
" \ --target "certificateArn
"Jika berhasil, perintah ini tidak mengembalikan apa pun.
-
Ganti
uniqueThingName
dengan nama benda untuk perangkat, ganti
dengancertificateArn
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 ke. Konfigurasikan AWS IoT Device Client untuk menjalankan agen pekerjaan
Konfigurasikan AWS IoT Device Client untuk menjalankan agen pekerjaan
Prosedur ini membuat file konfigurasi untuk AWS IoT Device Client untuk menjalankan agen jobs:.
Catatan: jika Anda menyiapkan lebih dari satu perangkat, prosedur ini harus dilakukan pada setiap perangkat.
Untuk membuat file konfigurasi untuk menguji AWS IoT Device Client:
-
Di jendela terminal di komputer host lokal Anda yang terhubung ke Raspberry Pi Anda:
-
Buka editor teks, seperti
nano
. -
Salin JSON dokumen 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": "" } } -
Ganti
endpoint
nilai dengan nilai titik akhir data perangkat untuk Akun AWS yang Anda temukan. Menyediakan perangkat Anda di AWS IoT Core -
Ganti
uniqueThingName
dengan nama benda yang Anda gunakan untuk perangkat ini. -
Simpan file di editor teks Anda sebagai
~/dc-configs/dc-jobs-config.json
.
-
-
Jalankan perintah ini untuk mengatur izin file dari file konfigurasi baru.
chmod 644 ~/dc-configs/dc-jobs-config.json
Anda tidak akan menggunakan klien MQTT pengujian untuk tes ini. Meskipun perangkat akan bertukar MQTT pesan terkait pekerjaan dengan AWS IoT, pesan kemajuan pekerjaan hanya dipertukarkan dengan perangkat yang menjalankan pekerjaan. Karena pesan kemajuan pekerjaan hanya dipertukarkan dengan perangkat yang menjalankan pekerjaan, Anda tidak dapat berlangganan pesan tersebut dari perangkat lain, seperti AWS IoT konsol.
Setelah Anda menyimpan file konfigurasi, Anda siap untuk Buat dan jalankan pekerjaan AWS IoT dengan AWS IoT Device Client melanjutkan.