イベントハンドラーで指定できるアクションは以下のとおりです。
- メールを送る / オペレーターのプライマリメールアドレスにメールを送る
- IoT SIM の速度クラスを変更する
- IoT SIM のステータスを変更する
- 指定の URL にリクエストを送る
- AWS Lambda を呼び出す
イベントを作成する操作については、以下のページを参照してください。
メールを送る / オペレーターのプライマリメールアドレスにメールを送る
ルール (条件) を満たしたときに、メールを送ります。
送信元メールアドレス
送信元メールアドレスは、カバレッジタイプによって異なります。受信メールサーバーで迷惑メールなどに分類されないように設定してください。
- グローバルカバレッジ:
no-reply@soracom.io
- 日本カバレッジ:
no-reply@soracom.jp
詳しくは、イベント一覧画面で作成する を参照してください。
- 任意のメールアドレスにメールを送る場合は、 を選択します。
- オペレーターの プライマリメールアドレス にメールを送る場合は、 を選択します。
設定できる項目は、以下のとおりです。
項目 | 説明 |
---|---|
* | 実行するタイミング。 |
アクションのオフセット (分)。デフォルトは 0 です。0 ~525600 の整数を指定します。 | |
(*1) | 宛先のメールアドレス。複数のメールアドレスは指定できません。 |
件名。 | |
本文。 |
- (*1) オペレーターのプライマリメールアドレスにメールを送る場合は、指定できません。
各項目に入力する情報が多すぎると、以下のエラーが発生することがあります。エラーが発生した場合は、入力する情報を減らしてください。
- サーバ内部でエラーが発生しました。メッセージ:DB access error. (COM0003)
詳しくは、SORACOM CLI / SORACOM API で作成する を参照してください。
- 任意のメールアドレスにメールを送る場合は、
actionConfigList[].type
にSendMailAction
を指定します。 - オペレーターの プライマリメールアドレス にメールを送る場合は、
actionConfigList[].type
にSendMailToOperatorAction
を指定します。
actionConfigList[].properties
に設定できるプロパティは、以下のとおりです。
- (*1) オペレーターのプライマリメールアドレスにメールを送る場合は、指定できません。
- (*2) 変数を利用できます。詳しくは、アクションで利用できる変数 を参照してください。
例:
{
...
"actionConfigList": [
{
"type": "SendMailAction",
"properties": {
"executionDateTimeConst": "IMMEDIATELY",
"to": "notify@exmaple.com",
"title": "ソラコムからのお知らせ",
"message": "1日のデータ通信量が100MiBに到達したので速度制限を行います"
}
},
{
"type": "SendMailAction",
"properties": {
"executionDateTimeConst": "AFTER_ONE_DAY",
"to": "notify@exmaple.com",
"title": "ソラコムからのお知らせ",
"message": "速度制限を解除します"
}
}
]
...
}
アクションで利用できる変数
すべてのルールで利用できる変数は以下のとおりです。
利用できる変数 | 説明 |
---|---|
${simId} | 対象 IoT SIM の SIM ID |
${imsi} | 対象 IoT SIM の IMSI (*1) |
${operatorId} | 対象 IoT SIM を持つオペレーターの ID |
${date} | 送信日付 (yyyy/m/d) |
${year} | 送信年 (yyyy) |
${month} | 送信月 (m) |
${day} | 送信日 (d) |
${tags.[任意のタグ名]} | 対象 IoT SIM のタグ名に対応する値 (例: tags.name ) |
${coverage} | イベントが発生したカバレッジタイプ。jp または g に置き換えられます。 |
- (*1) IoT SIM にサブスクリプションが追加されたら実行 の場合は、変化後の OTA の状況によって、入る値が異なります。
OTA の状況 説明 開始 プライマリサブスクライバー の IMSI 成功 追加されたサブスクリプション (セカンダリサブスクライバー) の IMSI 失敗 プライマリサブスクライバー の IMSI
特定のルールでのみ利用できる変数もあります。
サブスクライバー / IoT SIM のステータスが変更されたら実行
利用できる変数 説明 ${oldStatus}
変更前のステータス ${newStatus}
変更後のステータス サブスクライバー / IoT SIM の速度クラスが変更されたら実行
利用できる変数 説明 ${oldSpeedClass}
変更前の速度クラス ${newSpeedClass}
変更後の速度クラス サブスクライバー / IoT SIM の有効期限が切れたら実行
利用できる変数 説明 ${oldStatus}
有効期限が切れる前のステータス ${newStatus}
有効期限が切れた後のステータス 利用できる変数 説明 ${primaryImsi}
プライマリサブスクライバー の IMSI ${subscription}
追加したサブスクリプション ${otaStatus}
OTA の状況。以下のいずれかの値です。
started
: 開始finished
: 成功failed
: 失敗
サブスクライバー / IoT SIM が IMEI ロックにより接続失敗したら実行
利用できる変数 説明 ${currentImei}
接続失敗した時のIMEI ${configuredImei}
IMEI ロックに設定されている IMEI 利用できる変数 説明 ${limitTotalAmount}
「オペレーターの今月の利用料金」のしきい値 ${currentTotalAmount}
集計時の「オペレーターの今月の利用料金」
IoT SIM の速度クラスを変更する
ルール (条件) を満たしたときに、IoT SIM の速度クラスを変更します。速度クラスを変更したときの注意事項については、IoT SIM の速度クラスを変更する を参照してください。
監視対象 (イベントを実行する対象) で「オペレーター」を選択した場合は、オペレーターに紐づくすべての IoT SIM の設定が変更されます。
詳しくは、イベント一覧画面で作成する を参照してください。
を選択します。
設定できる項目は、以下のとおりです。
項目 | 説明 |
---|---|
* | 実行するタイミング。 |
アクションのオフセット (分)。デフォルトは 0 です。0 ~525600 の整数を指定します。 | |
* | 速度クラス。 |
詳しくは、SORACOM CLI / SORACOM API で作成する を参照してください。
actionConfigList[].type
に ChangeSpeedClassAction
を指定します。
actionConfigList[].properties
に設定できるプロパティは、以下のとおりです。
例:
{
...
"actionConfigList": [
{
"type": "ChangeSpeedClassAction",
"properties": {
"speedClass": "s1.slow",
"executionDateTimeConst": "IMMEDIATELY"
}
},
{
"type": "ChangeSpeedClassAction",
"properties": {
"speedClass": "s1.fast",
"executionDateTimeConst": "AFTER_ONE_DAY"
}
}
]
...
}
IoT SIM のステータスを変更する
ルール (条件) を満たしたときに、IoT SIM のステータスを変更 します。
監視対象 (イベントを実行する対象) で「オペレーター」を選択した場合は、オペレーターに紐づくすべての IoT SIM の設定が変更されます。
詳しくは、イベント一覧画面で作成する を参照してください。
以下のいずれかを選択します。
設定できる項目は、以下のとおりです。
項目 | 説明 |
---|---|
* | 実行するタイミング。 |
アクションのオフセット (分)。デフォルトは 0 です。0 ~525600 の整数を指定します。 |
詳しくは、SORACOM CLI / SORACOM API で作成する を参照してください。
actionConfigList[].type
に 以下のいずれかを指定します。
ActivationAction
: 使用中 (active) に変更します。DeactivationAction
: 休止中 (inactive) に変更します。StandbyAction
: 利用開始待ち (standby) に変更します。SuspendAction
: 利用中断中 (suspended) に変更します。
actionConfigList[].properties
に設定できるプロパティは、以下のとおりです。
例:
{
...
"actionConfigList": [
{
"type": "SuspendAction",
"properties": {
"executionDateTimeConst": "IMMEDIATELY"
}
}
]
...
}
ステータスを変更するときに料金が発生する場合があります
ステータスを変更するときに発生する料金は、サブスクリプションによって異なります。ステータスおよび料金が発生する条件について詳しくは、IoT SIM のステータス を参照してください。
料金が発生するステータス変更をアクションで実行する場合は、ルールの 再評価を行うタイミング の設定で「再評価を行わない」を指定して繰り返しを避けるなど、意図しない料金が発生しないように注意してください。
サブスクリプションによってはステータスが存在しない場合があります
サブスクリプションによって、定義されているステータスが異なります。IoT SIM が契約しているサブスクリプションで存在しないステータスを指定した場合は、ステータスは変更されません。ステータスについて詳しくは、IoT SIM のステータス を参照してください。
指定の URL にリクエストを送る
ルール (条件) を満たしたときに、指定の URL にリクエストを送ります。
詳しくは、イベント一覧画面で作成する を参照してください。
を選択します。
設定できる項目は、以下のとおりです。
項目 | 説明 |
---|---|
* | 実行するタイミング。 |
アクションのオフセット (分)。デフォルトは 0 です。0 ~525600 の整数を指定します。 | |
* | 接続先 URL とクエリパラメーター。(*1) |
* | HTTP リクエストメソッド。 |
* | Content-Type。 |
HTTP リクエストヘッダーのキー。 | |
HTTP リクエストヘッダーのキーに対応する値。(*1) | |
HTTP リクエストメッセージボディ。 | で「POST」または「PUT」を選択した場合のみ入力できます。(*1)
- (*1) 変数を利用できます。詳しくは、アクションで利用できる変数 を参照してください。
詳しくは、SORACOM CLI / SORACOM API で作成する を参照してください。
actionConfigList[].type
に ExecuteWebRequestAction
を指定します。
actionConfigList[].properties
に設定できるプロパティは、以下のとおりです。
- (*1) 変数を利用できます。詳しくは、アクションで利用できる変数 を参照してください。
例:
{
...
"actionConfigList": [
{
"type": "ExecuteWebRequestAction",
"properties": {
"executionDateTimeConst": "IMMEDIATELY",
"url": "https://hooks.slack.com/services/XXXX",
"httpMethod": "POST",
"contentType": "application/json",
"headers": "{\"contentType\":\"application/json; charset=utf-8\"}",
"body": "{\"text\":\"${imsi} speed class changed. from ${oldSpeedClass} to ${newSpeedClass}\"}"
}
}
]
...
}
AWS Lambda を呼び出す
ルール (条件) を満たしたときに、AWS Lambda を呼び出します。
詳しくは、イベント一覧画面で作成する を参照してください。
を選択します。
設定できる項目は、以下のとおりです。
項目 | 説明 |
---|---|
* | 実行するタイミング。 |
アクションのオフセット (分)。デフォルトは 0 です。0 ~525600 の整数を指定します。 | |
* | AWS Lambda のサービスエンドポイント。 |
* | AWS Lambda のファンクション名。バージョンやエイリアスも指定できます。例: sample-function:12 , sample-function:production |
* | AWS Lambda の認証情報 ID。あらかじめ、認証情報ストア で「AWS 認証情報」または「AWS IAM ロール認証情報」を登録してください。 |
AWS Lambda に渡すパラメーターのキー。以下のいずれかを指定します。(*1)
| |
AWS Lambda に渡すパラメーターの値。(*2) |
- (*1) 同じパラメーターのキーを繰り返し指定しないでください。
- (*2) 変数を利用できます。詳しくは、アクションで利用できる変数 を参照してください。
詳しくは、SORACOM CLI / SORACOM API で作成する を参照してください。
actionConfigList[].type
に InvokeAWSLambdaAction
を指定します。
actionConfigList[].properties
に設定できるプロパティは、以下のとおりです。
- (*1) 同じパラメーターのキーを繰り返し指定しないでください。
- (*2) 変数を利用できます。詳しくは、アクションで利用できる変数 を参照してください。
例:
{
...
"actionConfigList": [
{
"type": "InvokeAWSLambdaAction",
"properties": {
"executionDateTimeConst": "IMMEDIATELY",
"endpoint": "https://lambda.ap-northeast-1.amazonaws.com",
"functionName": "{Lambda の function名}",
"credentialsId": "{認証情報 ID}",
"parameter1": "${oldSpeedClass}",
"parameter2": "${newSpeedClass}"
}
}
]
...
}
accessKey
および secretAccessKey
は非推奨のプロパティです。credentialsId
を利用してください。
なお、AWS Lambda のファンクションには、以下の JSON が渡されます。
{
"imsi": "対象のimsi",
"parameter1": "上記のparameter1",
"parameter2": "上記のparameter2",
"parameter3": "上記のparameter3",
"parameter4": "上記のparameter4",
"parameter5": "上記のparameter5"
}
AWS Lambda のファンクションでは、以下のように実装するとパラメーターを取得できます。
exports.handler = function (event, context) {
console.log("imsi =", event.imsi);
console.log("value1 =", event.parameter1);
console.log("value2 =", event.parameter2);
console.log("value3 =", event.parameter3);
console.log("value4 =", event.parameter4);
console.log("value5 =", event.parameter5);
context.succeed(event.imsi);
};
監視対象に「グループ」「IoT SIM」「オペレーター」を選択した場合でも、ルール (条件) を満たしたかどうかの判定およびアクションの実行は、サブスクライバー (IMSI) ごとに行われます。つまり、AWS Lambda のファンクションは IoT SIM ごとに起動されます。AWS Lambda のファンクションが呼び出されるトリガーになった IoT SIM は、
event
オブジェクトのimsi
パラメーターで判別します。ルールを満たした IoT SIM が所属するグループに対してアクションを実行する場合は、
parameter1
などでグループ ID を AWS Lambda のファンクションに渡してください。なお、グループ ID に置き換えられる変数はありません。たとえば、AWS Lambda のファンクションで以下の SORACOM API を呼び出します。
- グループの情報 (タグなど) を取得する:
Group:getGroup API
- グループに所属する IoT SIM を取得する:
Group:listSubscribersInGroup API
- グループの情報 (タグなど) を取得する: