Memulai dengan konektor Greengrass (CLI) - AWS IoT Greengrass

AWS IoT Greengrass Version 1 memasuki fase umur panjang pada 30 Juni 2023. Untuk informasi selengkapnya, lihat kebijakan AWS IoT Greengrass V1 pemeliharaan. Setelah tanggal ini, tidak AWS IoT Greengrass V1 akan merilis pembaruan yang menyediakan fitur, penyempurnaan, perbaikan bug, atau patch keamanan. Perangkat yang berjalan AWS IoT Greengrass V1 tidak akan terganggu dan akan terus beroperasi dan terhubung ke cloud. Kami sangat menyarankan Anda bermigrasi ke AWS IoT Greengrass Version 2, yang menambahkan fitur baru yang signifikan dan dukungan untuk platform tambahan.

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

Memulai dengan konektor Greengrass (CLI)

Fitur ini tersedia untuk AWS IoT Greengrass Core v1.7 dan yang lebih baru.

Tutorial ini menunjukkan cara menggunakan AWS CLI untuk bekerja dengan konektor.

Gunakan konektor untuk mempercepat siklus hidup pengembangan Anda. Konektor prebuilt, modul dapat digunakan kembali yang dapat membuatnya lebih mudah untuk berinteraksi dengan layanan, protokol, dan sumber daya. Mereka dapat membantu Anda men-deploy logika bisnis ke perangkat Greengrass lebih cepat. Untuk informasi lebih lanjut, lihat Integrasikan dengan layanan dan protokol menggunakan konektor Greengrass.

Dalam tutorial ini, Anda mengkonfigurasi dan men-deploy konektor Notifikasi Twilio. Konektor menerima informasi pesan Twilio sebagai input data, dan kemudian memicu pesan teks Twilio. Aliran data ditunjukkan pada diagram berikut.

Aliran data dari fungsi Lambda untuk konektor Notifikasi Twilio ke Twilio.

Setelah Anda mengkonfigurasi konektor, Anda membuat fungsi Lambda dan langganan.

  • Fungsi mengevaluasi data simulasi dari sensor temperatur. Ini kondisional menerbitkan informasi pesan Twilio untuk topik MQTT. Ini adalah topik yang konektor berlangganan.

  • Langganan membolehkan fungsi untuk menerbitkan topik dan konektor untuk menerima data dari topik tersebut.

Konektor Notifikasi Twilio memerlukan token Twilio auth untuk berinteraksi dengan Twilio API. Token adalah teks tipe rahasia yang dibuat di AWS Secrets Manager dan direferensikan dari sumber daya grup. Hal ini memungkinkan AWS IoT Greengrass untuk membuat salinan lokal rahasia pada Greengrass core, di mana itu dienkripsi dan tersedia untuk konektor. Untuk informasi lebih lanjut, lihat Men-deploy rahasia ke AWS IoT Greengrass core.

Tutorial berisi langkah-langkah tingkat tinggi berikut:

Tutorial harus memerlukan waktu sekitar 30 menit untuk menyelesaikannya.

MenggunakanAWS IoT GreengrassAPI

Hal itu sangat membantu untuk memahami pola berikut ketika Anda bekerja dengan grup Greengrass dan komponen grup (misalnya, konektor, fungsi, dan sumber daya dalam grup).

  • Di bagian atas hirarki, komponen memiliki definisi objek yang merupakan wadah untuk versi objek. Sebaliknya, versi adalah kotak untuk penyambung, fungsi, atau jenis komponen lain.

  • Ketika Anda menerapkan ke Greengrass core, Anda menerapkan versi grup tertentu. Versi grup dapat berisi satu versi dari setiap jenis komponen. Core diperlukan, tetapi yang lain disertakan sesuai kebutuhan.

  • Versi tidak berubah, jadi Anda harus membuat versi baru ketika Anda ingin membuat perubahan.

Tip

Jika Anda menerima kesalahan ketika Anda menjalankan AWS CLI perintah, tambahkan parameter --debug dan jalankan kembali perintah tersebut untuk mendapatkan informasi lebih lanjut tentang kesalahan tersebut.

API AWS IoT Greengrass memungkinkan Anda membuat beberapa definisi untuk jenis komponen. Sebagai contoh, Anda dapat membuat FunctionDefinition objek setiap kali Anda membuat FunctionDefinitionVersion, atau Anda dapat tambahkan versi baru ke definisi yang ada. Fleksibilitas ini membolehkan Anda untuk menyesuaikan sistem manajemen versi Anda.

Prasyarat

Untuk menyelesaikan tutorial ini, Anda memerlukan:

  • Sebuah grup Greengrass dan Greengrass core (v1.9.3 atau yang lebih baru). Untuk mempelajari cara membuat grup Greengrass dan core, lihat Memulai dengan AWS IoT Greengrass. Tutorial Memulai juga mencakup langkah-langkah untuk menginstal AWS IoT Greengrass perangkat lunak Core.

  • Python 3.7 diinstal pada AWS IoT Greengrass perangkat core.

  • AWS IoT Greengrass harus dikonfigurasi untuk mendukung rahasia lokal, seperti yang dijelaskan dalam Persyaratan Rahasia.

    catatan

    Persyaratan ini mencakup akses ke rahasia Secrets Manager Anda. Jika Anda menggunakan peran layanan default Greengrass, Greengrass memiliki izin untuk mendapatkan nilai-nilai rahasia dengan nama yang dimulai dengan Greengrass-.

  • Akun Twilio SID, token auth, dan nomor telepon berkemampuan Twilio. Setelah Anda membuat proyek Twilio, nilai-nilai ini tersedia dalam dasbor proyek.

    catatan

    Anda dapat menggunakan akun percobaan Twilio. Jika menggunakan akun uji coba, Anda harus menambahkan nomor telepon penerima selain Twilio ke daftar nomor telepon terverifikasi. Untuk informasi lebih lanjut, lihat Cara Bekerja dengan Akun Trial Twilio Gratis.

  • AWS CLI diinstal dan dikonfigurasi pada komputer Anda. Untuk informasi lebih lanjut, lihat Menginstal AWS Command Line Interface dan Mengonfigurasi AWS CLI di AWS Command Line Interface Panduan Pengguna.

     

    Contoh dalam tutorial ini ditulis untuk Linux dan sistem berbasis Unix lainnya. Jika Anda menggunakan Windows, lihat Menentukan nilai parameter untuk AWS Command Line Interface untuk memelajari perbedaan sintaks.

    Jika perintah berisi string JSON, tutorial memberikan contoh yang memiliki JSON pada satu baris. Pada beberapa sistem, mungkin lebih mudah untuk mengedit dan menjalankan perintah menggunakan format ini.

Langkah 1: Buat rahasia Secrets Manager

Pada langkah ini, Anda menggunakan opsi AWS Secrets Manager API untuk membuat rahasia untuk token auth Twilio Anda.

  1. Pertama, buat rahasia.

    • Gantitwilio-auth-tokendengan token auth Twilio Anda.

    aws secretsmanager create-secret --name greengrass-TwilioAuthToken --secret-string twilio-auth-token
    catatan

    Secara default, peran layanan Greengrass memungkinkan AWS IoT Greengrass untuk mendapatkan nilai rahasia dengan nama yang dimulai dengan Greengrass-. Untuk informasi lebih lanjut, lihat rahasia persyaratan.

  2. Salin ARN rahasia dari output. Anda menggunakan ini untuk membuat sumber daya rahasia dan mengkonfigurasi konektor Notifikasi Twilio.

Langkah 2: Buat definisi sumber daya dan versi

Pada langkah ini, Anda menggunakan AWS IoT Greengrass API untuk membuat sumber daya rahasia untuk rahasia Secrets Manager Anda.

  1. Buat definisi sumber daya yang mencakup versi awal.

    • Ganti rahasia-arn dengan ARN dari rahasia yang Anda salin pada langkah sebelumnya.

     

    JSON Expanded
    aws greengrass create-resource-definition --name MyGreengrassResources --initial-version '{ "Resources": [ { "Id": "TwilioAuthToken", "Name": "MyTwilioAuthToken", "ResourceDataContainer": { "SecretsManagerSecretResourceData": { "ARN": "secret-arn" } } } ] }'
    JSON Single-line
    aws greengrass create-resource-definition \ --name MyGreengrassResources \ --initial-version '{"Resources": [{"Id": "TwilioAuthToken", "Name": "MyTwilioAuthToken", "ResourceDataContainer": {"SecretsManagerSecretResourceData": {"ARN": "secret-arn"}}}]}'
  2. Salin LatestVersionArn definisi sumber daya dari output. Anda menggunakan nilai ini untuk menambahkan versi definisi sumber daya untuk versi grup yang Anda terapkan ke core.

Langkah 3: Buat definisi konektor dan versi

Dalam langkah ini, Anda mengkonfigurasi parameter untuk konektor Pemberitahuan Twilio.

  1. Buat definisi konektor dengan versi awal.

    • Ganti akun-sid dengan akun Twilio SID Anda.

    • Ganti rahasia-arn dengan ARN rahasia Secrets Manager Anda. Konektor menggunakan ini untuk mendapatkan nilai dari rahasia lokal.

    • Ganti nomor telepon dengan nomor telepon berkemampuan Twilio Anda. Twilio menggunakan ini untuk memulai pesan teks. Hal ini dapat diganti dalam muatan pesan masukan. Gunakan format berikut: +19999999999.

     

    JSON Expanded
    aws greengrass create-connector-definition --name MyGreengrassConnectors --initial-version '{ "Connectors": [ { "Id": "MyTwilioNotificationsConnector", "ConnectorArn": "arn:aws:greengrass:region::/connectors/TwilioNotifications/versions/4", "Parameters": { "TWILIO_ACCOUNT_SID": "account-sid", "TwilioAuthTokenSecretArn": "secret-arn", "TwilioAuthTokenSecretArn-ResourceId": "TwilioAuthToken", "DefaultFromPhoneNumber": "phone-number" } } ] }'
    JSON Single-line
    aws greengrass create-connector-definition \ --name MyGreengrassConnectors \ --initial-version '{"Connectors": [{"Id": "MyTwilioNotificationsConnector", "ConnectorArn": "arn:aws:greengrass:region::/connectors/TwilioNotifications/versions/4", "Parameters": {"TWILIO_ACCOUNT_SID": "account-sid", "TwilioAuthTokenSecretArn": "secret-arn", "TwilioAuthTokenSecretArn-ResourceId": "TwilioAuthToken", "DefaultFromPhoneNumber": "phone-number"}}]}'
    catatan

    TwilioAuthToken adalah ID yang Anda gunakan dalam langkah sebelumnya untuk membuat sumber daya rahasia.

  2. Salin LatestVersionArn definisi konektor dari output. Anda menggunakan nilai ini untuk menambahkan versi definisi konektor ke versi grup yang Anda terapkan ke core.

Langkah 4: Buat paket deployment fungsi Lambda

Untuk membuat fungsi Lambda, Anda harus terlebih dahulu membuat fungsi Lambda paket deployment yang berisi kode fungsi dan dependensi. Fungsi Greengrass Lambda membutuhkan AWS IoT Greengrass Core SDK untuk tugas seperti berkomunikasi dengan pesan MQTT di lingkungan core dan mengakses rahasia lokal. Tutorial ini menciptakan fungsi Python, sehingga Anda menggunakan versi Python dari SDK dalam paket deployment.

  1. Dari halaman unduh AWS IoT Greengrass Core SDK ini, unduh AWS IoT Greengrass Core SDK for Python ke komputer Anda.

  2. Unzip paket yang diunduh untuk mendapatkan SDK. SDK adalah folder greengrasssdk tersebut.

  3. Simpan fungsi kode Python berikut dalam sebuah file lokal bernama temp_monitor.py.

    import greengrasssdk import json import random client = greengrasssdk.client('iot-data') # publish to the Twilio Notifications connector through the twilio/txt topic def function_handler(event, context): temp = event['temperature'] # check the temperature # if greater than 30C, send a notification if temp > 30: data = build_request(event) client.publish(topic='twilio/txt', payload=json.dumps(data)) print('published:' + str(data)) print('temperature:' + str(temp)) return # build the Twilio request from the input data def build_request(event): to_name = event['to_name'] to_number = event['to_number'] temp_report = 'temperature:' + str(event['temperature']) return { "request": { "recipient": { "name": to_name, "phone_number": to_number, "message": temp_report } }, "id": "request_" + str(random.randint(1,101)) }
  4. Zip item berikut ke dalam file bernama temp_monitor_python.zip. Saat membuat file ZIP, sertakan hanya kode dan dependensi, bukan folder yang berisi.

    • temp_monitor.py. Aplikasi logic.

    • greengrasssdk. Diperlukan perpustakaan untuk fungsi Python Greengrass Lambda yang menerbitkan pesan MQTT.

    Ini adalah paket deployment fungsi Lambda Anda.

Langkah 5: Buat fungsi Lambda

Sekarang, buat fungsi Lambda yang menggunakan paket deployment.

  1. Buat IAM role sehingga Anda dapat lulus dalam peran ARN ketika Anda membuat fungsi.

    JSON Expanded
    aws iam create-role --role-name Lambda_empty --assume-role-policy '{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "lambda.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }'
    JSON Single-line
    aws iam create-role --role-name Lambda_empty --assume-role-policy '{"Version": "2012-10-17", "Statement": [{"Effect": "Allow", "Principal": {"Service": "lambda.amazonaws.com"},"Action": "sts:AssumeRole"}]}'
    catatan

    AWS IoT Greengrass tidak menggunakan peran ini karena izin untuk fungsi Lambda Greengrass ditentukan di dalam peran grup Greengrass. Untuk tutorial ini, Anda membuat peran kosong.

  2. Salin Arn dari output.

  3. MenggunakanAWS LambdaAPI untuk membuat TempMonitor fungsi. Perintah berikut mengasumsikan bahwa file zip dalam direktori saat ini.

    • Ganti role-arn dengan Arn yang Anda salin.

    aws lambda create-function \ --function-name TempMonitor \ --zip-file fileb://temp_monitor_python.zip \ --role role-arn \ --handler temp_monitor.function_handler \ --runtime python3.7
  4. Mempublikasikan versi fungsi.

    aws lambda publish-version --function-name TempMonitor --description 'First version'
  5. Buat alias untuk versi yang dipublikasikan.

    Grup Greengrass dapat mereferensi fungsi Lambda dengan alias (direkomendasikan) atau dengan versi. Menggunakan alias membuatnya lebih mudah untuk mengelola pembaruan kode karena Anda tidak perlu mengubah tabel langganan atau definisi grup ketika kode fungsi diperbarui. Sebaliknya, Anda hanya mengarahkan alias ke versi fungsi baru.

    catatan

    AWS IoT Greengrass tidak mendukung alias Lambda untuk versi $TERBARU ini.

    aws lambda create-alias --function-name TempMonitor --name GG_TempMonitor --function-version 1
  6. Salin AliasArn dari output. Anda menggunakan nilai ini ketika Anda mengkonfigurasi fungsi untuk AWS IoT Greengrass dan saat Anda membuat langganan.

Sekarang Anda siap untuk mengkonfigurasi fungsi untuk AWS IoT Greengrass.

Langkah 6: Buat definisi fungsi dan versi

Untuk menggunakan fungsi Lambda pada AWS IoT Greengrass inti, Anda buat versi definisi fungsi yang referensi fungsi Lambda dengan alias dan mendefinisikan konfigurasi grup-tingkat. Untuk informasi lebih lanjut, lihat Mengontrol eksekusi fungsi Greengrass Lambda dengan menggunakan konfigurasi grup khusus.

  1. Buat definisi fungsi yang mencakup versi awal.

    • Ganti Alias-arn dengan AliasArn yang Anda salin ketika membuat alias.

     

    JSON Expanded
    aws greengrass create-function-definition --name MyGreengrassFunctions --initial-version '{ "Functions": [ { "Id": "TempMonitorFunction", "FunctionArn": "alias-arn", "FunctionConfiguration": { "Executable": "temp_monitor.function_handler", "MemorySize": 16000, "Timeout": 5 } } ] }'
    JSON Single-line
    aws greengrass create-function-definition \ --name MyGreengrassFunctions \ --initial-version '{"Functions": [{"Id": "TempMonitorFunction", "FunctionArn": "alias-arn", "FunctionConfiguration": {"Executable": "temp_monitor.function_handler", "MemorySize": 16000,"Timeout": 5}}]}'
  2. Salin LatestVersionArn dari output. Anda menggunakan nilai ini untuk menambahkan versi definisi fungsi untuk versi grup yang Anda terapkan ke inti.

  3. Salin Id dari output. Anda menggunakan nilai ini kemudian ketika Anda memperbarui fungsi.

Langkah 7: Buat definisi langganan dan versi

Pada langkah ini, Anda tambahkan langganan yang memungkinkan fungsi Lambda untuk mengirim input data ke konektor. Konektor mendefinisikan topik MQTT yang berlangganan, jadi langganan ini menggunakan salah satu topik. Ini adalah topik yang sama bahwa fungsi contoh menerbitkan.

Untuk tutorial ini, Anda juga buat langganan yang memungkinkan fungsi untuk menerima pembacaan suhu simulasi dari AWS IoT dan izinkan AWS IoT untuk menerima informasi status dari konektor.

  1. Buat definisi langganan yang berisi versi awal yang mencakup langganan.

    • Ganti Alias-arn dengan AliasArn yang Anda salin ketika Anda membuat alias untuk fungsi. Gunakan ARN ini untuk kedua langganan yang menggunakannya.

     

    JSON Expanded
    aws greengrass create-subscription-definition --initial-version '{ "Subscriptions": [ { "Id": "TriggerNotification", "Source": "alias-arn", "Subject": "twilio/txt", "Target": "arn:aws:greengrass:region::/connectors/TwilioNotifications/versions/4" }, { "Id": "TemperatureInput", "Source": "cloud", "Subject": "temperature/input", "Target": "alias-arn" }, { "Id": "OutputStatus", "Source": "arn:aws:greengrass:region::/connectors/TwilioNotifications/versions/4", "Subject": "twilio/message/status", "Target": "cloud" } ] }'
    JSON Single-line
    aws greengrass create-subscription-definition \ --initial-version '{"Subscriptions": [{"Id": "TriggerNotification", "Source": "alias-arn", "Subject": "twilio/txt", "Target": "arn:aws:greengrass:region::/connectors/TwilioNotifications/versions/4"},{"Id": "TemperatureInput", "Source": "cloud", "Subject": "temperature/input", "Target": "alias-arn"},{"Id": "OutputStatus", "Source": "arn:aws:greengrass:region::/connectors/TwilioNotifications/versions/4", "Subject": "twilio/message/status", "Target": "cloud"}]}'
  2. Salin LatestVersionArn dari output. Anda gunakan nilai ini untuk menambahkan versi definisi langganan ke versi grup yang Anda terapkan ke core.

Langkah 8: Buat versi grup

Sekarang, Anda siap untuk membuat versi grup yang berisi semua item yang ingin Anda terapkan. Anda melakukannya dengan membuat versi grup yang referensi versi target dari setiap jenis komponen.

Pertama, dapatkan ID grup dan ARN versi definisi core. Nilai-nilai ini diperlukan untuk membuat versi grup.

  1. Dapatkan ID grup dan versi grup terbaru:

    1. Dapatkan ID dari grup Greengrass target dan versi grup. Prosedur ini mengasumsikan bahwa ini adalah versi grup dan grup terbaru. Query berikut mengembalikan grup yang paling baru dibuat.

      aws greengrass list-groups --query "reverse(sort_by(Groups, &CreationTimestamp))[0]"

      Atau, Anda dapat melakukan query berdasarkan nama. Nama grup tidak perlu unik, sehingga beberapa grup mungkin ditampilkan.

      aws greengrass list-groups --query "Groups[?Name=='MyGroup']"
      catatan

      Anda juga dapat menemukan nilai-nilai ini di konsol AWS IoT tersebut. ID grup ditampilkan pada halaman Pengaturan grup. ID versi grup ditampilkan pada grupDeploymenttab.

    2. Salin Id dari grup target dari output. Anda menggunakan ini untuk mendapatkan versi definisi core dan ketika Anda men-deploy grup.

    3. Salin LatestVersion dari output, yang merupakan ID dari versi terakhir ditambahkan ke grup. Anda menggunakan ini untuk mendapatkan versi definisi core.

  2. Dapatkan ARN dari versi definisi core:

    1. Dapatkan versi grup. Untuk langkah ini, kita berasumsi bahwa versi grup terbaru mencakup versi definisi core.

      • Ganti grup-id dengan Id yang Anda salin untuk grup.

      • Gantigroup-version-iddenganLatestVersionyang Anda salin untuk grup.

      aws greengrass get-group-version \ --group-id group-id \ --group-version-id group-version-id
    2. Salin CoreDefinitionVersionArn dari output.

  3. Buat versi grup.

    • Ganti grup-id dengan Id yang Anda salin untuk grup.

    • Ganticore-definition-version-arndenganCoreDefinitionVersionArnyang Anda salin untuk versi definisi core.

    • Gantiresource-definition-version-arndenganLatestVersionArnyang Anda salin untuk definisi sumber daya.

    • Ganticonnector-definition-version-arndenganLatestVersionArnyang Anda salin untuk definisi konektor.

    • Gantifunction-definition-version-arndenganLatestVersionArnyang Anda salin untuk definisi fungsi.

    • Gantisubscription-definition-version-arndenganLatestVersionArnyang Anda salin untuk definisi langganan.

    aws greengrass create-group-version \ --group-id group-id \ --core-definition-version-arn core-definition-version-arn \ --resource-definition-version-arn resource-definition-version-arn \ --connector-definition-version-arn connector-definition-version-arn \ --function-definition-version-arn function-definition-version-arn \ --subscription-definition-version-arn subscription-definition-version-arn
  4. Salin nilai Version dari outputnya. Ini adalah ID dari versi grup. Anda menggunakan nilai ini untuk menerapkan versi grup.

Langkah 9: Buat deployment

Terapkan grup ke perangkat core.

  1. Di terminal perangkat core, pastikan bahwa AWS IoT Greengrass daemon sedang berjalan.

    1. Untuk memeriksa apakah daemon sedang berjalan:

      ps aux | grep -E 'greengrass.*daemon'

      Jika output berisi root entri untuk /greengrass/ggc/packages/1.11.6/bin/daemon, maka daemon sedang berjalan.

    2. Mulai daemon:

      cd /greengrass/ggc/core/ sudo ./greengrassd start
  2. Buat deployment.

    • Ganti grup-id dengan Id yang Anda salin untuk grup.

    • Gantigroup-version-iddenganVersionyang Anda salin untuk versi grup baru.

    aws greengrass create-deployment \ --deployment-type NewDeployment \ --group-id group-id \ --group-version-id group-version-id
  3. Salin DeploymentId dari output.

  4. Dapatkan status deployment.

    • Ganti grup-id dengan Id yang Anda salin untuk grup.

    • Ganti id-deployment dengan DeploymentId yang Anda salin untuk deployment.

    aws greengrass get-deployment-status \ --group-id group-id \ --deployment-id deployment-id

    Jika statusnya Success, deployment berhasil. Untuk langkah-langkah penyelesaian masalah, lihat Pemecahan Masalah AWS IoT Greengrass.

Uji solusi

  1. Pada halaman beranda konsol AWS IoT tersebut, pilih Pengujian.

  2. Untuk Berlangganan topik, gunakan nilai berikut, dan lalu pilih Langganan. Konektor Notifikasi Twilio menerbitkan informasi status untuk topik ini.

    Properti

    Nilai

    Topik langganan

    twilio/message/status

    Tampilan muatan MQTT

    Tampilkan muatan sebagai string

  3. Untuk Publikasikan ke topik, gunakan nilai-nilai berikut, dan kemudian pilih Publikasikan untuk memanggil fungsi.

    Properti

    Nilai

    Topik

    temperatur/input

    Message

    Gantinama penerimadengan nama danrecipient-phone-numberdengan nomor telepon dari penerima pesan teks. Contoh: +12345000000

    { "to_name": "recipient-name", "to_number": "recipient-phone-number", "temperature": 31 }

    Jika Anda menggunakan akun uji coba, Anda harus menambahkan nomor telepon penerima selain Twilio ke daftar nomor telepon terverifikasi. Untuk informasi lebih lanjut, lihat Verifikasi Nomor Telepon Pribadi.

    Jika berhasil, penerima menerima pesan teks dan konsol menampilkan success status dari output data.

    Sekarang, ubah temperature dalam pesan input untuk 29 dan terbitkan. Karena ini adalah kurang dari 30, TempMonitor Fungsi tidak memicu pesan Twilio.

Lihat juga