Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Amazon SNS
SNSKomponen Amazon (aws.greengrass.SNS
) menerbitkan pesan ke topik Amazon Simple Notification Service (AmazonSNS). Anda dapat menggunakan komponen ini untuk mengirim peristiwa dari perangkat inti Greengrass ke server web, alamat email, dan pelanggan pesan lainnya. Untuk informasi lebih lanjut, lihat Apa itu AmazonSNS? di Panduan Pengembang Layanan Pemberitahuan Sederhana Amazon.
Untuk memublikasikan ke SNS topik Amazon dengan komponen ini, publikasikan pesan ke topik tempat komponen ini berlangganan. Secara default, komponen ini berlangganan topik publikasi/berlangganan lokal sns/message
. Anda dapat menentukan topik lain, termasuk AWS IoT Core MQTT topik, saat menerapkan komponen ini.
Dalam komponen kustom Anda, Anda mungkin ingin menerapkan pemfilteran atau pemformatan logika untuk memproses pesan dari sumber lain sebelum Anda mempublikasikannya ke komponen ini. Hal ini memungkinkan Anda untuk memusatkan logika pemrosesan pesan Anda pada satu komponen.
catatan
Komponen ini menyediakan fungsionalitas yang mirip dengan SNS konektor Amazon di AWS IoT Greengrass V1. Untuk informasi selengkapnya, lihat SNSKonektor Amazon di Panduan Pengembang AWS IoT Greengrass V1.
Topik
Versi
Komponen ini memiliki versi berikut:
-
2.1.x
-
2.0.x
Tipe
Komponen ini adalah komponen Lambda () aws.greengrass.lambda
. Inti Greengrass menjalankan fungsi Lambda komponen ini menggunakan komponen peluncur Lambda.
Untuk informasi selengkapnya, lihat Jenis komponen.
Sistem operasi
Komponen ini hanya dapat diinstal pada perangkat inti Linux.
Persyaratan
Komponen ini memiliki persyaratan sebagai berikut:
-
Perangkat inti Anda harus memenuhi persyaratan untuk menjalankan fungsi Lambda. Jika Anda ingin perangkat inti untuk menjalankan fungsi Lambda kontainer, perangkat harus memenuhi persyaratan untuk melakukannya. Untuk informasi selengkapnya, lihat Persyaratan fungsi Lambda.
-
Python
versi 3.7 diinstal pada perangkat inti dan ditambahkan ke variabel lingkungan. PATH -
SNSTopik Amazon. Untuk informasi selengkapnya, lihat Membuat SNS topik Amazon di Panduan Pengembang Layanan Pemberitahuan Sederhana Amazon.
-
Peran perangkat Greengrass harus mengizinkan tindakan, seperti yang ditunjukkan
sns:Publish
dalam contoh kebijakan berikut. IAM{ "Version": "2012-10-17", "Statement": [ { "Action": [ "sns:Publish" ], "Effect": "Allow", "Resource": [ "arn:aws:sns:
region
:account-id
:topic-name
" ] } ] }Anda dapat secara dinamis mengganti topik default dalam muatan pesan masukan untuk komponen ini. Jika aplikasi Anda menggunakan fitur ini, IAM kebijakan harus menyertakan semua topik target sebagai sumber daya. Anda dapat memberikan akses terperinci atau bersyarat ke sumber daya (misalnya, dengan menggunakan skema penamaan wildcard
*
). -
Untuk menerima data keluaran dari komponen ini, Anda harus menggabungkan pemutakhiran konfigurasi berikut untuk komponen router langganan lama (aws.greengrass.LegacySubscriptionRouter) saat menerapkan komponen ini. Konfigurasi ini menentukan topik di mana komponen ini menerbitkan tanggapan.
Untuk informasi selengkapnya, lihat Buat deployment.
-
SNSKomponen Amazon didukung untuk berjalan di fileVPC. Untuk menerapkan komponen ini di aVPC, berikut ini diperlukan.
-
SNSKomponen Amazon harus memiliki konektivitas
sns.region.amazonaws.com
yang memiliki VPC titik akhir.com.amazonaws.us-east-1.sns
-
Titik akhir dan port
Komponen ini harus dapat melakukan permintaan keluar ke titik akhir dan port berikut, selain titik akhir dan port yang diperlukan untuk operasi dasar. Untuk informasi selengkapnya, lihat Izinkan lalu lintas perangkat melalui proxy atau firewall.
Titik Akhir | Port | Wajib | Deskripsi |
---|---|---|---|
|
443 | Ya |
Publikasikan pesan ke AmazonSNS. |
Dependensi
Saat Anda menerapkan komponen, gunakan AWS IoT Greengrass juga versi dependensinya yang kompatibel. Ini berarti bahwa Anda harus memenuhi persyaratan untuk komponen dan semua dependensinya untuk berhasil men-deploy komponen. Bagian ini berisi daftar dependensi untuk versi yang dirilis dari komponen ini dan kendala versi semantik yang menentukan versi komponen untuk setiap dependensi. Anda juga dapat melihat dependensi untuk setiap versi komponen di konsol AWS IoT Greengrass
Untuk informasi selengkapnya tentang dependensi komponen, lihat referensi resep komponen.
Konfigurasi
Komponen ini menyediakan parameter konfigurasi berikut yang dapat Anda sesuaikan ketika Anda men-deploy komponen.
catatan
Konfigurasi default komponen ini meliputi parameter fungsi Lambda. Kami sarankan Anda mengedit hanya parameter berikut untuk mengonfigurasi komponen ini pada perangkat Anda.
lambdaParams
-
Sebuah objek yang berisi parameter untuk fungsi Lambda komponen ini. Objek ini berisi informasi berikut:
EnvironmentVariables
-
Sebuah objek yang berisi parameter fungsi Lambda ini. Objek ini berisi informasi berikut:
DEFAULT_SNS_ARN
-
SNSTopik Amazon default tempat komponen ini menerbitkan pesan. ARN Anda dapat menimpa topik tujuan dengan properti
sns_topic_arn
dalam muatan pesan masukan.
containerMode
-
(Opsional) Mode kontainerisasi untuk komponen ini. Pilih dari salah satu pilihan berikut:
-
NoContainer
– Komponen tersebut tidak berjalan di lingkungan waktu aktif terisolasi. -
GreengrassContainer
— Komponen berjalan di lingkungan runtime yang terisolasi di dalam AWS IoT Greengrass wadah.
Default:
GreengrassContainer
-
containerParams
-
(Opsional) Sebuah objek yang berisi parameter kontainer untuk komponen ini. Komponen menggunakan parameter ini jika Anda menentukan
GreengrassContainer
untukcontainerMode
.Objek ini berisi informasi berikut:
memorySize
-
(Opsional) Jumlah memori (dalam kilobyte) yang akan dialokasikan ke komponen.
Defaultnya 512 MB (525.312 KB).
pubsubTopics
-
(Opsional) Sebuah objek yang berisi topik di mana komponen berlangganan untuk menerima pesan. Anda dapat menentukan setiap topik dan apakah komponen berlangganan MQTT topik dari AWS IoT Core atau topik penerbitan/langganan lokal.
Objek ini berisi informasi berikut:
0
- Ini adalah indeks himpunan sebagai string.-
Objek yang berisi informasi berikut:
type
-
(Opsional) Jenis olahpesan publikasikan/berlangganan yang digunakan oleh komponen ini untuk berlangganan pesan. Pilih dari salah satu pilihan berikut:
-
PUB_SUB
– Berlangganan ke pesan terbit/berlangganan lokal. Jika Anda memilih opsi ini, topik tidak dapat berisi MQTT wildcard. Untuk informasi lebih lanjut tentang cara mengirim pesan dari komponen kustom ketika Anda menentukan opsi ini, lihat Pesan lokal publikasi/berlangganan. -
IOT_CORE
— Berlangganan AWS IoT Core MQTT pesan. Jika Anda memilih opsi ini, topik dapat berisi MQTT wildcard. Untuk informasi lebih lanjut tentang cara mengirim pesan dari komponen kustom ketika Anda menentukan opsi ini, lihat Terbitkan/berlangganan pesan AWS IoT Core MQTT.
Default:
PUB_SUB
-
topic
-
(Opsional) Topik yang menjadi langganan komponen untuk menerima pesan. Jika Anda menentukan
IotCore
untuktype
, Anda dapat menggunakan MQTT wildcard (+
dan#
) dalam topik ini.
contoh Contoh: Pembaruan gabungan konfigurasi (mode kontainer)
{ "lambdaExecutionParameters": { "EnvironmentVariables": { "DEFAULT_SNS_ARN": "arn:aws:sns:us-west-2:123456789012:mytopic" } }, "containerMode": "GreengrassContainer" }
contoh Contoh: Pembaruan gabungan konfigurasi (tidak ada mode kontainer)
{ "lambdaExecutionParameters": { "EnvironmentVariables": { "DEFAULT_SNS_ARN": "arn:aws:sns:us-west-2:123456789012:mytopic" } }, "containerMode": "NoContainer" }
Data input
Komponen ini menerima pesan pada topik berikut dan menerbitkan pesan sebagaimana adanya ke topik Amazon SNS target. Secara default, komponen ini berlangganan topik publikasi/berlangganan lokal. Untuk informasi lebih lanjut tentang cara mempublikasikan pesan ke komponen ini dari komponen kustom Anda, lihat Pesan lokal publikasi/berlangganan.
Topik default (publish/subscribe lokal): sns/message
Pesan menerima properti berikut. Pesan input harus dalam JSON format.
request
-
Informasi tentang pesan yang akan dikirim ke SNS topik Amazon.
Jenis:
object
yang berisi informasi berikut:message
-
Isi dari pesan sebagai string.
Untuk mengirim JSON objek, serialisasi sebagai string, dan tentukan
json
untukmessage_structure
properti.Tipe:
string
subject
-
(Opsional) Subjek pesan.
Tipe:
string
Subjek dapat berupa ASCII teks dan hingga 100 karakter. Ia harus dimulai dengan huruf, angka, atau tanda baca. Ia tidak dapat berupa jeda baris atau karakter kontrol.
sns_topic_arn
-
(Opsional) SNS Topik Amazon tempat komponen ini menerbitkan pesan. ARN Tentukan properti ini untuk mengganti SNS topik Amazon default.
Tipe:
string
message_structure
-
(Opsional) Struktur pesan. Tentukan
json
untuk mengirim JSON pesan yang Anda serialisasi sebagai string dicontent
properti.Tipe:
string
Nilai yang valid:
json
id
-
ID acak untuk permintaan. Gunakan properti ini untuk memetakan permintaan inpun untuk respons output. Ketika Anda menentukan properti ini, komponen menetapkan properti
id
di objek respons untuk nilai ini.Tipe:
string
catatan
Ukuran pesan dapat maksimal 256 KB.
contoh Contoh input: Pesan string
{ "request": { "subject": "Message subject", "message": "Message data", "sns_topic_arn": "arn:aws:sns:
region
:account-id
:topic2-name" }, "id": "request123" }
contoh Contoh masukan: JSON pesan
{ "request": { "subject": "Message subject", "message": "{ \"default\": \"Message data\" }", "message_structure": "json" }, "id": "request123" }
Data output
Komponen ini menerbitkan tanggapan sebagai data keluaran pada MQTT topik berikut secara default. Anda harus menentukan topik ini sebagai subject
dalam konfigurasi untuk komponen router langganan warisan. Untuk informasi lebih lanjut tentang cara mempublikasikan pesan ke komponen ini dari komponen kustom Anda, lihat Terbitkan/berlangganan pesan AWS IoT Core MQTT.
Topik default (AWS IoT Core MQTT): sns/message/status
contoh Contoh output: Berhasil
{ "response": { "sns_message_id": "f80a81bc-f44c-56f2-a0f0-d5af6a727c8a", "status": "success" }, "id": "request123" }
contoh Contoh output: Gagal
{ "response" : { "error": "InvalidInputException", "error_message": "SNS Topic Arn is invalid", "status": "fail" }, "id": "request123" }
File log lokal
Komponen ini menggunakan file log berikut.
/logs/aws.greengrass.SNS.log
/greengrass/v2
Untuk melihat log komponen ini
-
Jalankan perintah berikut pada perangkat inti untuk melihat file log komponen ini secara real time. Ganti
dengan jalur ke folder AWS IoT Greengrass root./greengrass/v2
sudo tail -f
/logs/aws.greengrass.SNS.log/greengrass/v2
Lisensi
Komponen ini mencakup perangkat lunak/lisensi pihak ketiga berikut:
-
AWS SDK for Python (Boto3)
/Apache License 2.0 -
botocore
/Apache License 2.0 -
dateutil/Lisensi
PSF -
BSDdocutil/Lisensi
, Lisensi Publik GNU Umum (GPL), Lisensi Yayasan Perangkat Lunak Python, Domain Publik -
jmespath/Lisensi
MIT -
s3transfer
/Apache License 2.0 -
urllib3/Lisensi
MIT
Komponen ini dirilis menurut Perjanjian Lisensi Perangkat Lunak Greengrass Core
Changelog
Tabel berikut menjelaskan perubahan dalam setiap versi komponen.
Versi |
Perubahan |
---|---|
2.1.8 |
Versi diperbarui untuk Greengrass nucleus versi 2.13.0 rilis. |
2.1.7 |
Versi diperbarui untuk Greengrass nucleus versi 2.12.0 rilis. |
2.1.6 |
Versi diperbarui untuk Greengrass nucleus versi 2.11.0 rilis. |
2.1.5 |
Versi diperbarui untuk Greengrass nucleus versi 2.10.0 rilis. |
2.1.4 |
Versi diperbarui untuk Greengrass nucleus versi 2.9.0 rilis. |
2.1.3 |
Versi diperbarui untuk Greengrass nucleus versi 2.8.0 rilis. |
2.1.2 |
Versi diperbarui untuk Greengrass nucleus versi 2.7.0 rilis. |
2.1.1 |
Versi diperbarui untuk Greengrass nucleus versi 2.6.0 rilis. |
2.1.0 |
|
2.0.8 |
Versi diperbarui untuk Greengrass nucleus versi 2.5.0 rilis. |
2.0.7 |
Versi diperbarui untuk Greengrass nucleus versi 2.4.0 rilis. |
2.0.6 |
Versi yang diperbarui untuk rilis inti Greengrass versi 2.3.0. |
2.0.5 |
Versi yang diperbarui untuk rilis inti Greengrass versi 2.2.0. |
2.0.4 |
Versi yang diperbarui untuk rilis inti Greengrass versi 2.1.0. |
2.0.3 |
Versi awal. |