Mendefinisikan AWS IoT Events alarm ()AWS CLI - AWS IoT SiteWise

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

Mendefinisikan AWS IoT Events alarm ()AWS CLI

Anda dapat menggunakan AWS Command Line Interface (AWS CLI) untuk menentukan AWS IoT Events alarm yang memantau properti aset. Anda dapat menentukan alarm pada model aset baru atau yang sudah ada. Setelah Anda menentukan alarm pada model aset, Anda membuat alarm AWS IoT Events dan menghubungkannya ke model aset. Dalam proses ini, Anda melakukan hal berikut:

Langkah 1: Mendefinisikan alarm pada model aset

Tambahkan definisi alarm dan properti terkait ke model aset baru atau yang sudah ada.

Untuk menentukan alarm pada model aset (CLI)
  1. Buat file bernama asset-model-payload.json. Ikuti langkah-langkah di bagian lain ini untuk menambahkan detail model aset Anda ke file, tetapi jangan kirimkan permintaan untuk membuat atau memperbarui model aset. Di bagian ini, Anda menambahkan definisi alarm ke detail model aset dalam asset-model-payload.json file.

    catatan

    Model aset Anda harus menentukan setidaknya satu properti aset, termasuk properti aset untuk dipantau dengan alarm.

  2. Tambahkan model komposit alarm (assetModelCompositeModels) ke model aset. Model komposit AWS IoT Events alarm menentukan IOT_EVENTS jenis dan menentukan properti sumber alarm. Anda menambahkan properti sumber alarm setelah Anda membuat model alarm di AWS IoT Events.

    penting

    Model komposit alarm harus memiliki nama yang sama dengan model AWS IoT Events alarm yang Anda buat nanti. Nama model alarm hanya dapat berisi karakter alfanumerik. Tentukan nama alfanumerik yang unik sehingga Anda dapat menggunakan nama yang sama untuk model alarm.

    { ... "assetModelCompositeModels": [ { "name": "BoilerTemperatureHighAlarm", "type": "AWS/ALARM", "properties": [ { "name": "AWS/ALARM_TYPE", "dataType": "STRING", "type": { "attribute": { "defaultValue": "IOT_EVENTS" } } }, { "name": "AWS/ALARM_STATE", "dataType": "STRUCT", "dataTypeSpec": "AWS/ALARM_STATE", "type": { "measurement": {} } } ] } ] }
  3. Tambahkan atribut ambang alarm ke model aset. Tentukan nilai default yang akan digunakan untuk ambang batas ini. Anda dapat mengganti nilai default ini pada setiap aset berdasarkan model ini.

    catatan

    Atribut ambang alarm harus berupa INTEGER atau aDOUBLE.

    { ... "assetModelProperties": [ ... { "name": "Temperature Max Threshold", "dataType": "DOUBLE", "type": { "attribute": { "defaultValue": "105.0" } } } ] }
  4. (Opsional) Tambahkan atribut notifikasi alarm ke model aset. Atribut ini menentukan penerima IAM Identity Center dan input lain yang AWS IoT Events digunakan untuk mengirim notifikasi saat alarm berubah status. Anda dapat mengganti default ini pada setiap aset berdasarkan model ini.

    penting

    Anda dapat mengirim pemberitahuan alarm ke AWS IAM Identity Center pengguna. Untuk menggunakan fitur ini, Anda harus mengaktifkan IAM Identity Center. Anda hanya dapat mengaktifkan Pusat Identitas IAM di satu AWS Wilayah pada satu waktu. Ini berarti Anda dapat menentukan pemberitahuan alarm hanya di Wilayah tempat Anda mengaktifkan Pusat Identitas IAM. Untuk informasi selengkapnya, lihat Memulai di Panduan AWS IAM Identity Center Pengguna.

    Lakukan hal-hal berikut:

    1. Tambahkan atribut yang menentukan ID toko identitas Pusat Identitas IAM Anda. Anda dapat menggunakan operasi ListInstancesAPI Pusat Identitas IAM untuk membuat daftar toko identitas Anda. Operasi ini hanya berfungsi di Wilayah tempat Anda mengaktifkan Pusat Identitas IAM.

      aws sso-admin list-instances

      Kemudian, tentukan ID penyimpanan identitas (misalnya,d-123EXAMPLE) sebagai nilai default untuk atribut.

      { ... "assetModelProperties": [ ... { "name": "identityStoreId", "dataType": "STRING", "type": { "attribute": { "defaultValue": "d-123EXAMPLE" } } } ] }
    2. Tambahkan atribut yang menentukan ID pengguna Pusat Identitas IAM yang menerima pemberitahuan. Untuk menentukan penerima notifikasi default, tambahkan ID pengguna IAM Identity Center sebagai nilai default. Lakukan salah satu hal berikut untuk mendapatkan ID pengguna IAM Identity Center:

      1. Anda dapat menggunakan IAM Identity Center ListUsersAPI untuk mendapatkan ID pengguna yang nama penggunanya Anda kenal. Ganti D-123Example dengan ID toko identitas Anda, dan ganti Nama dengan nama pengguna pengguna.

        aws identitystore list-users \ --identity-store-id d-123EXAMPLE \ --filters AttributePath=UserName,AttributeValue=Name
      2. Gunakan konsol Pusat Identitas IAM untuk menelusuri pengguna Anda dan menemukan ID pengguna.

      Kemudian, tentukan ID pengguna (misalnya,123EXAMPLE-a1b2c3d4-5678-90ab-cdef-33333EXAMPLE) sebagai nilai default untuk atribut, atau tentukan atribut tanpa nilai default.

      { ... "assetModelProperties": [ ... { "name": "userId", "dataType": "STRING", "type": { "attribute": { "defaultValue": "123EXAMPLE-a1b2c3d4-5678-90ab-cdef-33333EXAMPLE" } } } ] }
    3. (Opsional) Tambahkan atribut yang menentukan ID pengirim default untuk pemberitahuan pesan SMS (teks). ID pengirim ditampilkan sebagai pengirim pesan pada pesan yang dikirim oleh Amazon Simple Notification Service (Amazon SNS). Untuk informasi selengkapnya, lihat Meminta ID pengirim untuk pesan SMS dengan Amazon SNS di Panduan Pengembang Layanan Pemberitahuan Sederhana Amazon.

      { ... "assetModelProperties": [ ... { "name": "senderId", "dataType": "STRING", "type": { "attribute": { "defaultValue": "MyFactory" } } } ] }
    4. (Opsional) Tambahkan atribut yang menentukan alamat email default untuk digunakan sebagai alamat from dalam pemberitahuan email.

      { ... "assetModelProperties": [ ... { "name": "fromAddress", "dataType": "STRING", "type": { "attribute": { "defaultValue": "my.factory@example.com" } } } ] }
    5. (Opsional) Tambahkan atribut yang menentukan subjek default untuk digunakan dalam pemberitahuan email.

      { ... "assetModelProperties": [ ... { "name": "emailSubject", "dataType": "STRING", "type": { "attribute": { "defaultValue": "[ALERT] High boiler temperature" } } } ] }
    6. (Opsional) Tambahkan atribut yang menentukan pesan tambahan untuk disertakan dalam pemberitahuan. Secara default, pesan notifikasi menyertakan informasi tentang alarm. Anda juga dapat menyertakan pesan tambahan yang memberi pengguna lebih banyak informasi..

      { ... "assetModelProperties": [ ... { "name": "additionalMessage", "dataType": "STRING", "type": { "attribute": { "defaultValue": "Turn off the power before you check the alarm." } } } ] }
  5. Buat model aset atau perbarui model aset yang ada. Lakukan salah satu hal berikut ini:

    • Untuk membuat model aset, jalankan perintah berikut.

      aws iotsitewise create-asset-model --cli-input-json file://asset-model-payload.json
    • Untuk memperbarui model aset yang ada, jalankan perintah berikut. Ganti asset-model-iddengan ID model aset.

      aws iotsitewise update-asset-model \ --asset-model-id asset-model-id \ --cli-input-json file://asset-model-payload.json

    Setelah Anda menjalankan perintah, perhatikan assetModelId dalam respon.

Model aset berikut mewakili boiler yang melaporkan data suhu. Model aset ini mendefinisikan alarm yang mendeteksi ketika boiler terlalu panas.

{ "assetModelName": "Boiler Model", "assetModelDescription": "Represents a boiler.", "assetModelProperties": [ { "name": "Temperature", "dataType": "DOUBLE", "unit": "C", "type": { "measurement": {} } }, { "name": "Temperature Max Threshold", "dataType": "DOUBLE", "type": { "attribute": { "defaultValue": "105.0" } } }, { "name": "identityStoreId", "dataType": "STRING", "type": { "attribute": { "defaultValue": "d-123EXAMPLE" } } }, { "name": "userId", "dataType": "STRING", "type": { "attribute": { "defaultValue": "123EXAMPLE-a1b2c3d4-5678-90ab-cdef-33333EXAMPLE" } } }, { "name": "senderId", "dataType": "STRING", "type": { "attribute": { "defaultValue": "MyFactory" } } }, { "name": "fromAddress", "dataType": "STRING", "type": { "attribute": { "defaultValue": "my.factory@example.com" } } }, { "name": "emailSubject", "dataType": "STRING", "type": { "attribute": { "defaultValue": "[ALERT] High boiler temperature" } } }, { "name": "additionalMessage", "dataType": "STRING", "type": { "attribute": { "defaultValue": "Turn off the power before you check the alarm." } } } ], "assetModelHierarchies": [ ], "assetModelCompositeModels": [ { "name": "BoilerTemperatureHighAlarm", "type": "AWS/ALARM", "properties": [ { "name": "AWS/ALARM_TYPE", "dataType": "STRING", "type": { "attribute": { "defaultValue": "IOT_EVENTS" } } }, { "name": "AWS/ALARM_STATE", "dataType": "STRUCT", "dataTypeSpec": "AWS/ALARM_STATE", "type": { "measurement": {} } } ] } ] }

Langkah 2: Mendefinisikan model AWS IoT Events alarm

Buat model alarm di AWS IoT Events. Di AWS IoT Events, Anda menggunakan ekspresi untuk menentukan nilai dalam model alarm. Anda dapat menggunakan ekspresi untuk menentukan nilai dari AWS IoT SiteWise untuk mengevaluasi dan digunakan sebagai input ke alarm. Saat AWS IoT SiteWise mengirim nilai properti aset ke model alarm, AWS IoT Events mengevaluasi ekspresi untuk mendapatkan nilai properti atau ID aset. Anda dapat menggunakan ekspresi berikut dalam model alarm:

  • Nilai properti aset

    Untuk mendapatkan nilai properti aset, gunakan ekspresi berikut. Ganti assetModelIddengan ID model aset dan ganti propertyId dengan ID properti.

    $sitewise.assetModel.`assetModelId`.`propertyId`.propertyValue.value
  • ID Aset

    Untuk mendapatkan ID aset, gunakan ekspresi berikut. Ganti assetModelIddengan ID model aset dan ganti propertyId dengan ID properti.

    $sitewise.assetModel.`assetModelId`.`propertyId`.assetId
catatan

Saat Anda membuat model alarm, Anda dapat menentukan literal alih-alih ekspresi yang mengevaluasi AWS IoT SiteWise nilai. Ini dapat mengurangi jumlah atribut yang Anda tentukan pada model aset Anda. Namun, jika Anda mendefinisikan nilai sebagai literal, Anda tidak dapat menyesuaikan nilai tersebut pada aset berdasarkan model aset. AWS IoT SiteWise Monitor Pengguna Anda juga tidak dapat menyesuaikan alarm, karena mereka dapat mengonfigurasi pengaturan alarm hanya pada aset.

Untuk membuat model AWS IoT Events alarm (CLI)
  1. Saat Anda membuat model alarm AWS IoT Events, Anda harus menentukan ID dari setiap properti yang digunakan alarm, yang mencakup yang berikut ini:

    • Properti status alarm dalam model aset komposit

    • Properti yang dipantau alarm

    • Atribut ambang

    • (Opsional) Atribut ID penyimpanan identitas Pusat Identitas IAM

    • (Opsional) Atribut ID pengguna IAM Identity Center

    • (Opsional) Atribut ID pengirim SMS

    • (Opsional) Atribut email dari alamat

    • (Opsional) Atribut subjek email

    • (Opsional) Atribut pesan tambahan

    Jalankan perintah berikut untuk mengambil ID properti ini pada model aset. Ganti asset-model-iddengan ID model aset dari langkah sebelumnya.

    aws iotsitewise describe-asset-model --asset-model-id asset-model-id

    Operasi mengembalikan respons yang berisi detail model aset. Perhatikan ID setiap properti yang digunakan alarm. Anda menggunakan ID ini saat membuat model AWS IoT Events alarm di langkah berikutnya.

  2. Buat model alarm di AWS IoT Events. Lakukan hal-hal berikut:

    1. Buat file bernama alarm-model-payload.json.

    2. Salin objek JSON berikut ke dalam file.

    3. Masukkan nama (alarmModelName), deskripsi (alarmModelDescription), dan tingkat keparahan (severity) untuk alarm Anda. Untuk tingkat keparahan, tentukan bilangan bulat yang mencerminkan tingkat keparahan perusahaan Anda.

      penting

      Model alarm harus memiliki nama yang sama dengan model komposit alarm yang Anda tentukan pada model aset Anda sebelumnya.

      Nama model alarm hanya dapat berisi karakter alfanumerik.

      { "alarmModelName": "BoilerTemperatureHighAlarm", "alarmModelDescription": "Detects when the boiler temperature is high.", "severity": 3 }
    4. Tambahkan aturan perbandingan (alarmRule) ke alarm. Aturan ini mendefinisikan properti untuk monitor (inputProperty), nilai ambang untuk membandingkan (threshold), dan operator perbandingan untuk menggunakan (comparisonOperator).

      • Ganti assetModelIddengan ID model aset.

      • Ganti alarmPropertyIddengan ID properti yang dipantau alarm.

      • Ganti thresholdAttributeIddengan ID properti atribut threshold.

      • Ganti GREATER dengan operator yang akan digunakan untuk membandingkan nilai properti dengan ambang batas. Pilih dari salah satu pilihan berikut:

        • LESS

        • LESS_OR_EQUAL

        • EQUAL

        • NOT_EQUAL

        • GREATER_OR_EQUAL

        • GREATER

      { "alarmModelName": "BoilerTemperatureHighAlarm", "alarmModelDescription": "Detects when the boiler temperature is high.", "severity": 3, "alarmRule": { "simpleRule": { "inputProperty": "$sitewise.assetModel.`assetModelId`.`alarmPropertyId`.propertyValue.value", "comparisonOperator": "GREATER", "threshold": "$sitewise.assetModel.`assetModelId`.`thresholdAttributeId`.propertyValue.value" } } }
    5. Tambahkan action (alarmEventActions) untuk mengirim status alarm ke AWS IoT SiteWise saat alarm berubah status.

      catatan

      Untuk konfigurasi lanjutan, Anda dapat menentukan tindakan tambahan yang harus dilakukan saat alarm berubah status. Misalnya, Anda mungkin memanggil AWS Lambda fungsi atau memublikasikan ke topik MQTT. Untuk informasi selengkapnya, lihat Bekerja dengan AWS layanan lain di Panduan AWS IoT Events Pengembang.

      • Ganti assetModelIddengan ID model aset.

      • Ganti alarmPropertyIddengan ID properti yang dipantau alarm.

      • Ganti alarmStatePropertyId dengan ID properti status alarm dalam model komposit alarm.

      { "alarmModelName": "BoilerTemperatureHighAlarm", "alarmModelDescription": "Detects when the boiler temperature is high.", "severity": 3, "alarmRule": { "simpleRule": { "inputProperty": "$sitewise.assetModel.`assetModelId`.`alarmPropertyId`.propertyValue.value", "comparisonOperator": "GREATER", "threshold": "$sitewise.assetModel.`assetModelId`.`thresholdAttributeId`.propertyValue.value" } }, "alarmEventActions": { "alarmActions": [ { "iotSiteWise": { "assetId": "$sitewise.assetModel.`assetModelId`.`alarmPropertyId`.assetId", "propertyId": "'alarmStatePropertyId'" } } ] } }
    6. (Opsional) Konfigurasikan pengaturan pemberitahuan alarm. Tindakan pemberitahuan alarm menggunakan fungsi Lambda di akun Anda untuk mengirim pemberitahuan alarm. Untuk informasi selengkapnya, lihat Persyaratan untuk pemberitahuan alarm. Dalam pengaturan pemberitahuan alarm, Anda dapat mengonfigurasi notifikasi SMS dan email untuk dikirim ke pengguna IAM Identity Center. Lakukan hal-hal berikut:

      1. Tambahkan konfigurasi notifikasi alarm (alarmNotification) ke payload dialarm-model-payload.json.

        • Ganti alarmNotificationFunctionARN dengan ARN dari fungsi Lambda yang menangani notifikasi alarm.

        { "alarmModelName": "BoilerTemperatureHighAlarm", "alarmModelDescription": "Detects when the boiler temperature is high.", "severity": 3, "alarmRule": { "simpleRule": { "inputProperty": "$sitewise.assetModel.`assetModelId`.`alarmPropertyId`.propertyValue.value", "comparisonOperator": "GREATER", "threshold": "$sitewise.assetModel.`assetModelId`.`thresholdAttributeId`.propertyValue.value" } }, "alarmEventActions": { "alarmActions": [ { "iotSiteWise": { "assetId": "$sitewise.assetModel.`assetModelId`.`alarmPropertyId`.assetId", "propertyId": "'alarmStatePropertyId'" } } ] }, "alarmNotification": { "notificationActions": [ { "action": { "lambdaAction": { "functionArn": "alarmNotificationFunctionArn" } } } ] } }
      2. (Opsional) Konfigurasikan notifikasi SMS (smsConfigurations) untuk dikirim ke pengguna Pusat Identitas IAM saat alarm berubah status.

        • Ganti identityStoreIdAttributeIddengan ID atribut yang berisi ID penyimpanan identitas Pusat Identitas IAM.

        • Ganti userIdAttributeId dengan ID atribut yang berisi ID pengguna IAM Identity Center.

        • Ganti senderIdAttributeId dengan ID atribut yang berisi ID pengirim Amazon SNS, atau hapus senderId dari payload.

        • Ganti additionalMessageAttributeId dengan ID atribut yang berisi pesan tambahan, atau hapus additionalMessage dari payload.

        { "alarmModelName": "BoilerTemperatureHighAlarm", "alarmModelDescription": "Detects when the boiler temperature is high.", "severity": 3, "alarmRule": { "simpleRule": { "inputProperty": "$sitewise.assetModel.`assetModelId`.`alarmPropertyId`.propertyValue.value", "comparisonOperator": "GREATER", "threshold": "$sitewise.assetModel.`assetModelId`.`thresholdAttributeId`.propertyValue.value" } }, "alarmEventActions": { "alarmActions": [ { "iotSiteWise": { "assetId": "$sitewise.assetModel.`assetModelId`.`alarmPropertyId`.assetId", "propertyId": "'alarmStatePropertyId'" } } ] }, "alarmNotification": { "notificationActions": [ { "action": { "lambdaAction": { "functionArn": "alarmNotificationFunctionArn" } }, "smsConfigurations": [ { "recipients": [ { "ssoIdentity": { "identityStoreId": "$sitewise.assetModel.`assetModelId`.`identityStoreIdAttributeId`.propertyValue.value", "userId": "$sitewise.assetModel.`assetModelId`.`userIdAttributeId`.propertyValue.value" } } ], "senderId": "$sitewise.assetModel.`assetModelId`.`senderIdAttributeId`.propertyValue.value", "additionalMessage": "$sitewise.assetModel.`assetModelId`.`additionalMessageAttributeId`.propertyValue.value" } ] } ] } }
      3. (Opsional) Konfigurasikan notifikasi email (emailConfigurations) untuk dikirim ke pengguna Pusat Identitas IAM saat alarm berubah status.

        • Ganti identityStoreIdAttributeIddengan ID properti atribut ID penyimpanan identitas Pusat Identitas IAM.

        • Ganti Id dengan userIdAttributeID properti atribut ID pengguna IAM Identity Center.

        • Ganti fromAddressAttributeId dengan ID properti atribut alamat “dari”, atau hapus from dari muatan.

        • Ganti emailSubjectAttributeId dengan ID properti atribut subjek email, atau hapus subject dari payload.

        • Ganti additionalMessageAttributeId dengan ID properti atribut pesan tambahan, atau hapus additionalMessage dari payload.

        { "alarmModelName": "BoilerTemperatureHighAlarm", "alarmModelDescription": "Detects when the boiler temperature is high.", "severity": 3, "alarmRule": { "simpleRule": { "inputProperty": "$sitewise.assetModel.`assetModelId`.`alarmPropertyId`.propertyValue.value", "comparisonOperator": "GREATER", "threshold": "$sitewise.assetModel.`assetModelId`.`thresholdAttributeId`.propertyValue.value" } }, "alarmEventActions": { "alarmActions": [ { "iotSiteWise": { "assetId": "$sitewise.assetModel.`assetModelId`.`alarmPropertyId`.assetId", "propertyId": "'alarmStatePropertyId'" } } ] }, "alarmNotification": { "notificationActions": [ { "action": { "lambdaAction": { "functionArn": "alarmNotificationFunctionArn" } }, "smsConfigurations": [ { "recipients": [ { "ssoIdentity": { "identityStoreId": "$sitewise.assetModel.`assetModelId`.`identityStoreIdAttributeId`.propertyValue.value", "userId": "$sitewise.assetModel.`assetModelId`.`userIdAttributeId`.propertyValue.value" } } ], "senderId": "$sitewise.assetModel.`assetModelId`.`senderIdAttributeId`.propertyValue.value", "additionalMessage": "$sitewise.assetModel.`assetModelId`.`additionalMessageAttributeId`.propertyValue.value" } ], "emailConfigurations": [ { "from": "$sitewise.assetModel.`assetModelId`.`fromAddressAttributeId`.propertyValue.value", "recipients": { "to": [ { "ssoIdentity": { "identityStoreId": "$sitewise.assetModel.`assetModelId`.`identityStoreIdAttributeId`.propertyValue.value", "userId": "$sitewise.assetModel.`assetModelId`.`userIdAttributeId`.propertyValue.value" } } ] }, "content": { "subject": "$sitewise.assetModel.`assetModelId`.`emailSubjectAttributeId`.propertyValue.value", "additionalMessage": "$sitewise.assetModel.`assetModelId`.`additionalMessageAttributeId`.propertyValue.value" } } ] } ] } }
    7. (Opsional) Tambahkan kemampuan alarm (alarmCapabilities) ke payload dialarm-model-payload.json. Dalam objek ini, Anda dapat menentukan apakah alur pengakuan diaktifkan dan status aktifkan default untuk aset berdasarkan model aset. Untuk informasi lebih lanjut tentang alur pengakuan, lihatStatus alarm.

      { "alarmModelName": "BoilerTemperatureHighAlarm", "alarmModelDescription": "Detects when the boiler temperature is high.", "severity": 3, "alarmRule": { "simpleRule": { "inputProperty": "$sitewise.assetModel.`assetModelId`.`alarmPropertyId`.propertyValue.value", "comparisonOperator": "GREATER", "threshold": "$sitewise.assetModel.`assetModelId`.`thresholdAttributeId`.propertyValue.value" } }, "alarmEventActions": { "alarmActions": [ { "iotSiteWise": { "assetId": "$sitewise.assetModel.`assetModelId`.`alarmPropertyId`.assetId", "propertyId": "'alarmStatePropertyId'" } } ] }, "alarmNotification": { "notificationActions": [ { "action": { "lambdaAction": { "functionArn": "alarmNotificationFunctionArn" } }, "smsConfigurations": [ { "recipients": [ { "ssoIdentity": { "identityStoreId": "$sitewise.assetModel.`assetModelId`.`identityStoreIdAttributeId`.propertyValue.value", "userId": "$sitewise.assetModel.`assetModelId`.`userIdAttributeId`.propertyValue.value" } } ], "senderId": "$sitewise.assetModel.`assetModelId`.`senderIdAttributeId`.propertyValue.value", "additionalMessage": "$sitewise.assetModel.`assetModelId`.`additionalMessageAttributeId`.propertyValue.value" } ], "emailConfigurations": [ { "from": "$sitewise.assetModel.`assetModelId`.`fromAddressAttributeId`.propertyValue.value", "recipients": { "to": [ { "ssoIdentity": { "identityStoreId": "$sitewise.assetModel.`assetModelId`.`identityStoreIdAttributeId`.propertyValue.value", "userId": "$sitewise.assetModel.`assetModelId`.`userIdAttributeId`.propertyValue.value" } } ] }, "content": { "subject": "$sitewise.assetModel.`assetModelId`.`emailSubjectAttributeId`.propertyValue.value", "additionalMessage": "$sitewise.assetModel.`assetModelId`.`additionalMessageAttributeId`.propertyValue.value" } } ] } ] }, "alarmCapabilities": { "initializationConfiguration": { "disabledOnInitialization": false }, "acknowledgeFlow": { "enabled": true } } }
    8. Tambahkan peran layanan IAM (roleArn) yang AWS IoT Events dapat mengasumsikan untuk mengirim data ke AWS IoT SiteWise. Peran ini membutuhkan iotsitewise:BatchPutAssetPropertyValue izin dan hubungan kepercayaan yang memungkinkan iotevents.amazonaws.com untuk mengambil peran. Untuk mengirim notifikasi, peran ini juga memerlukan sso-directory:DescribeUser izin lambda:InvokeFunction dan. Untuk informasi selengkapnya, lihat Peran layanan alarm di Panduan AWS IoT Events Pengembang.

      • Ganti roleArn dengan ARN dari peran yang AWS IoT Events dapat diasumsikan untuk melakukan tindakan ini.

      { "alarmModelName": "BoilerTemperatureHighAlarm", "alarmModelDescription": "Detects when the boiler temperature is high.", "severity": 3, "alarmRule": { "simpleRule": { "inputProperty": "$sitewise.assetModel.`assetModelId`.`alarmPropertyId`.propertyValue.value", "comparisonOperator": "GREATER", "threshold": "$sitewise.assetModel.`assetModelId`.`thresholdAttributeId`.propertyValue.value" } }, "alarmEventActions": { "alarmActions": [ { "iotSiteWise": { "assetId": "$sitewise.assetModel.`assetModelId`.`alarmPropertyId`.assetId", "propertyId": "'alarmStatePropertyId'" } } ] }, "alarmNotification": { "notificationActions": [ { "action": { "lambdaAction": { "functionArn": "alarmNotificationFunctionArn" } }, "smsConfigurations": [ { "recipients": [ { "ssoIdentity": { "identityStoreId": "$sitewise.assetModel.`assetModelId`.`identityStoreIdAttributeId`.propertyValue.value", "userId": "$sitewise.assetModel.`assetModelId`.`userIdAttributeId`.propertyValue.value" } } ], "senderId": "$sitewise.assetModel.`assetModelId`.`senderIdAttributeId`.propertyValue.value", "additionalMessage": "$sitewise.assetModel.`assetModelId`.`additionalMessageAttributeId`.propertyValue.value" } ], "emailConfigurations": [ { "from": "$sitewise.assetModel.`assetModelId`.`fromAddressAttributeId`.propertyValue.value", "recipients": { "to": [ { "ssoIdentity": { "identityStoreId": "$sitewise.assetModel.`assetModelId`.`identityStoreIdAttributeId`.propertyValue.value", "userId": "$sitewise.assetModel.`assetModelId`.`userIdAttributeId`.propertyValue.value" } } ] }, "content": { "subject": "$sitewise.assetModel.`assetModelId`.`emailSubjectAttributeId`.propertyValue.value", "additionalMessage": "$sitewise.assetModel.`assetModelId`.`additionalMessageAttributeId`.propertyValue.value" } } ] } ] }, "alarmCapabilities": { "initializationConfiguration": { "disabledOnInitialization": false }, "acknowledgeFlow": { "enabled": false } }, "roleArn": "arn:aws:iam::123456789012:role/MyIoTEventsAlarmRole" }
    9. Jalankan perintah berikut untuk membuat model AWS IoT Events alarm dari payload dialarm-model-payload.json.

      aws iotevents create-alarm-model --cli-input-json file://alarm-model-payload.json
    10. Operasi mengembalikan respons yang mencakup ARN dari model alarm,. alarmModelArn Salin ARN ini untuk mengatur definisi alarm pada model aset Anda di langkah berikutnya.

Langkah 3: Mengaktifkan aliran data antara dan AWS IoT SiteWiseAWS IoT Events

Setelah Anda membuat sumber daya yang diperlukan di AWS IoT SiteWise dan AWS IoT Events, Anda dapat mengaktifkan aliran data antara sumber daya untuk mengaktifkan alarm Anda. Di bagian ini, Anda memperbarui definisi alarm dalam model aset untuk menggunakan model alarm yang Anda buat pada langkah sebelumnya.

Untuk mengaktifkan aliran data antara AWS IoT SiteWise dan AWS IoT Events (CLI)
  • Atur model alarm sebagai sumber alarm dalam model aset. Lakukan hal-hal berikut:

    1. Jalankan perintah berikut untuk mengambil definisi model aset yang ada. Ganti asset-model-iddengan ID model aset.

      aws iotsitewise describe-asset-model --asset-model-id asset-model-id

      Operasi mengembalikan respons yang berisi detail model aset.

    2. Buat file bernama update-asset-model-payload.json dan salin respons perintah sebelumnya ke dalam file.

    3. Hapus pasangan kunci-nilai berikut dari file: update-asset-model-payload.json

      • assetModelId

      • assetModelArn

      • assetModelCreationDate

      • assetModelLastUpdateDate

      • assetModelStatus

    4. Tambahkan properti sumber alarm (AWS/ALARM_SOURCE) ke model komposit alarm yang Anda tentukan sebelumnya. Ganti alarmModelArndengan ARN model alarm, yang menetapkan nilai properti sumber alarm.

      { ... "assetModelCompositeModels": [ ... { "name": "BoilerTemperatureHighAlarm", "type": "AWS/ALARM", "properties": [ { "id": "a1b2c3d4-5678-90ab-cdef-11111EXAMPLE", "name": "AWS/ALARM_TYPE", "dataType": "STRING", "type": { "attribute": { "defaultValue": "IOT_EVENTS" } } }, { "id": "a1b2c3d4-5678-90ab-cdef-22222EXAMPLE", "name": "AWS/ALARM_STATE", "dataType": "STRUCT", "dataTypeSpec": "AWS/ALARM_STATE", "type": { "measurement": {} } }, { "name": "AWS/ALARM_SOURCE", "dataType": "STRING", "type": { "attribute": { "defaultValue": "alarmModelArn" } } } ] } ] }
    5. Jalankan perintah berikut untuk memperbarui model aset dengan definisi yang disimpan dalam update-asset-model-payload.json file. Ganti asset-model-iddengan ID model aset.

      aws iotsitewise update-asset-model \ --asset-model-id asset-model-id \ --cli-input-json file://update-asset-model-payload.json

Model aset Anda sekarang mendefinisikan alarm yang mendeteksi. AWS IoT Events Alarm memantau properti target di semua aset berdasarkan model aset ini. Anda dapat mengonfigurasi alarm pada setiap aset untuk menyesuaikan properti seperti ambang batas atau penerima Pusat Identitas IAM untuk setiap aset. Untuk informasi selengkapnya, lihat Mengkonfigurasi alarm pada aset.