Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Untuk membuat koneksi antara AWS IoT dan Lokasi Amazon, Anda memerlukan fungsi Lambda untuk memproses pesan yang diteruskan oleh peristiwa. EventBridge CloudWatch Fungsi ini akan mengekstrak data posisi apa pun, memformatnya untuk Lokasi Amazon, dan mengirimkannya melalui Pelacak API Lokasi Amazon.
Prosedur berikut menunjukkan cara membuat fungsi ini melalui konsol Lambda:
Buka konsol
. Dari navigasi kiri, pilih Fungsi.
Kemudian pilih Create Function, dan pastikan bahwa opsi Author from scratch dipilih.
berikan nama Fungsi, dan untuk opsi Runtime, pilih Node.js 16.x.
Pilih Buat fungsi.
Buka tab Kode untuk mengakses editor.
Timpa kode placeholder dalam
index.js
file dengan yang berikut:const AWS = require('aws-sdk') const iot = new AWS.Iot(); exports.handler = function(event) { console.log("event===>>>", JSON.stringify(event)); var param = { endpointType: "iot:Data-ATS" }; iot.describeEndpoint(param, function(err, data) { if (err) { console.log("error===>>>", err, err.stack); // an error occurred } else { var endp = data['endpointAddress']; const iotdata = new AWS.IotData({endpoint: endp}); const trackerEvent = event["detail"]["EventType"]; const src = event["source"]; const time = event["time"]; const gfId = event["detail"]["GeofenceId"]; const resources = event["resources"][0]; const splitResources = resources.split("."); const geofenceCollection = splitResources[splitResources.length - 1]; const coordinates = event["detail"]["Position"]; const deviceId = event["detail"]["DeviceId"]; console.log("deviceId===>>>", deviceId); const msg = { "trackerEventType" : trackerEvent, "source" : src, "eventTime" : time, "geofenceId" : gfId, "coordinates": coordinates, "geofenceCollection": geofenceCollection }; const params = { topic: `${deviceId}/tracker`, payload: JSON.stringify(msg), qos: 0 }; iotdata.publish(params, function(err, data) { if (err) { console.log("error===>>>", err, err.stack); // an error occurred } else { console.log("Ladmbda triggered===>>>", trackerEvent); // successful response } }); } }); }
Tekan tombol Deploy untuk menyimpan fungsi yang diperbarui.
Selanjutnya buka tab Konfigurasi.
Di bagian Pemicu, tekan tombol Tambah Pemicu.
Pilih EventBridge (CloudWatch Acara) di bidang Sumber.
Pilih opsi Aturan yang Ada.
Masukkan nama aturan, misalnya
AmazonLocationMonitor-GEOFENCECOLLECTION_NAME
.Tekan tombol Tambah.
Ini juga akan melampirkan pernyataan kebijakan berbasis Sumber Daya di tab izin
Sekarang Anda akan mengatur MQTT Test Client menggunakan AWS IoT, gunakan prosedur berikut:
Buka https://console.aws.amazon.com/iot/
. Di panel navigasi kiri, pilih klien MQTT pengujian.
Anda akan melihat bagian berjudul MQTTtest client di mana Anda dapat mengkonfigurasi MQTT koneksi Anda.
Setelah mengkonfigurasi pengaturan yang diperlukan, klik tombol Connect untuk membuat koneksi ke MQTT broker menggunakan parameter yang disediakan.
Catat titik akhir, seperti yang digunakan nanti di tutoiral.
Setelah terhubung ke klien pengujian, Anda dapat berlangganan MQTT topik atau mempublikasikan pesan ke topik menggunakan bidang input masing-masing yang disediakan di antarmuka klien MQTT pengujian. Selanjutnya Anda akan membuat AWS IoT kebijakan.
Di menu sebelah kiri, di bawah opsi Kelola perluas Keamanan dan klik Kebijakan.
Klik tombol Create Policy.
Masukkan nama kebijakan.
Pada Dokumen Kebijakan pilih JSONtab.
Salin tempel kebijakan yang ditunjukkan di bawah ini, tetapi pastikan untuk memperbarui semua elemen dengan Anda
danREGION
:ACCOUNT_ID
{ "Version": "2012-10-17", "Statement": [ { "Action": [ "iot:Connect", "iot:Publish", "iot:Subscribe", "iot:Receive" ], "Resource": [ "arn:aws:iot:
REGION
:ACCOUNT_ID
:client/${cognito-identity.amazonaws.com:sub}", "arn:aws:iot:REGION
:ACCOUNT_ID
:topic/${cognito-identity.amazonaws.com:sub}", "arn:aws:iot:REGION
:ACCOUNT_ID
:topicfilter/${cognito-identity.amazonaws.com:sub}/*", "arn:aws:iot:REGION
:ACCOUNT_ID
:topic/${cognito-identity.amazonaws.com:sub}/tracker" ], "Effect": "Allow" } ] }Pilih tombol Create untuk menyelesaikan.
Setelah menyelesaikan prosedur sebelumnya, Anda sekarang akan memperbarui izin untuk peran tamu sebagai berikut:
Arahkan ke Amazon Cognito dan buka kumpulan identitas Anda. Kemudian, lanjutkan ke akses pengguna dan pilih peran tamu.
Klik kebijakan izin untuk mengaktifkan pengeditan.
{ 'Version': '2012-10-17', 'Statement': [ { 'Action': [ 'geo:GetMap*', 'geo:BatchUpdateDevicePosition', 'geo:BatchEvaluateGeofences', 'iot:Subscribe', 'iot:Publish', 'iot:Connect', 'iot:Receive', 'iot:AttachPrincipalPolicy', 'iot:AttachPolicy', 'iot:DetachPrincipalPolicy', 'iot:DetachPolicy' ], 'Resource': [ 'arn:aws:geo:us-east-1:{
USER_ID
}:map/{MAP_NAME
}', 'arn:aws:geo:us-east-1:{USER_ID
}:tracker/{TRACKER_NAME
}', 'arn:aws:geo:us-east-1:{USER_ID
}:geofence-collection/{GEOFENCE_COLLECTION_NAME
}', 'arn:aws:iot:us-east-1:{USER_ID
}:client/${cognito-identity.amazonaws.com:sub}', 'arn:aws:iot:us-east-1:{USER_ID
}:topic/${cognito-identity.amazonaws.com:sub}', 'arn:aws:iot:us-east-1:{USER_ID
}:topicfilter/${cognito-identity.amazonaws.com:sub}/*', 'arn:aws:iot:us-east-1:{USER_ID
}:topic/${cognito-identity.amazonaws.com:sub}/tracker' ], 'Effect': 'Allow' }, { 'Condition': { 'StringEquals': { 'cognito-identity.amazonaws.com:sub': '${cognito-identity.amazonaws.com:sub}' } }, 'Action': [ 'iot:AttachPolicy', 'iot:DetachPolicy', 'iot:AttachPrincipalPolicy', 'iot:DetachPrincipalPolicy' ], 'Resource': [ '*' ], 'Effect': 'Allow' } ] }Dengan perubahan kebijakan di atas, semua AWS sumber daya yang diperlukan sekarang dikonfigurasi dengan tepat untuk aplikasi.