Soracom

Users

ドキュメント
Home ドキュメント イベントハンドラー リファレンス

アクションタイプ一覧

イベントハンドラーで指定できるアクションは以下のとおりです。

イベントを作成する操作については、以下のページを参照してください。

メールを送る / オペレーターのプライマリメールアドレスにメールを送る

ルール (条件) を満たしたときに、メールを送ります。

送信元メールアドレス

送信元メールアドレスは、カバレッジタイプによって異なります。受信メールサーバーで迷惑メールなどに分類されないように設定してください。

  • グローバルカバレッジ: no-reply@soracom.io
  • 日本カバレッジ: no-reply@soracom.jp

詳しくは、イベント一覧画面で作成する を参照してください。

  • 任意のメールアドレスにメールを送る場合は、[メールを送る] を選択します。
  • オペレーターの プライマリメールアドレス にメールを送る場合は、[オペレーターのプライマリメールアドレスにメールを送る] を選択します。

設定できる項目は、以下のとおりです。

項目説明
[実行するタイミング] *実行するタイミング
[オフセット (分)]アクションのオフセット (分)。デフォルトは 0 です。0525600 の整数を指定します。
[宛先] (*1)宛先のメールアドレス。複数のメールアドレスは指定できません。
[件名]件名。
[本文]本文。
  • (*1) オペレーターのプライマリメールアドレスにメールを送る場合は、指定できません。

各項目に入力する情報が多すぎると、以下のエラーが発生することがあります。エラーが発生した場合は、入力する情報を減らしてください。

  • サーバ内部でエラーが発生しました。メッセージ:DB access error. (COM0003)

詳しくは、SORACOM CLI / SORACOM API で作成する を参照してください。

  • 任意のメールアドレスにメールを送る場合は、actionConfigList[].typeSendMailAction を指定します。
  • オペレーターの プライマリメールアドレス にメールを送る場合は、actionConfigList[].typeSendMailToOperatorAction を指定します。

actionConfigList[].properties に設定できるプロパティは、以下のとおりです。

プロパティ説明
executionDateTimeConst *String実行するタイミング
executionOffsetMinutesStringアクションのオフセット (分)。デフォルトは 0 です。0525600 の整数を String 型で指定します。
to (*1)String宛先のメールアドレス。複数のメールアドレスは指定できません。
titleString件名。(*2)
messageString本文。(*2)
  • (*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 に置き換えられます。

特定のルールでのみ利用できる変数もあります。

IoT SIM の速度クラスを変更する

ルール (条件) を満たしたときに、IoT SIM の速度クラスを変更します。速度クラスを変更したときの注意事項については、IoT SIM の速度クラスを変更する を参照してください。

監視対象に「グループ」「オペレーター」を選択した場合でも、アクションの実行は、IoT SIM ごとに行われます。

詳しくは、イベント一覧画面で作成する を参照してください。

[SIM の速度クラスを変更する] を選択します。

設定できる項目は、以下のとおりです。

項目説明
[実行するタイミング] *実行するタイミング
[オフセット (分)]アクションのオフセット (分)。デフォルトは 0 です。0525600 の整数を指定します。
[速度クラス] *速度クラス

詳しくは、SORACOM CLI / SORACOM API で作成する を参照してください。

actionConfigList[].typeChangeSpeedClassAction を指定します。

actionConfigList[].properties に設定できるプロパティは、以下のとおりです。

プロパティ説明
executionDateTimeConst *String実行するタイミング
executionOffsetMinutesStringアクションのオフセット (分)。デフォルトは 0 です。0525600 の整数を String 型で指定します。
speedClassString速度クラス。以下のいずれかを指定します。
  • s1.minimum
  • s1.slow
  • s1.standard
  • s1.fast
  • s1.4xfast

例:

{
  ...
  "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 ごとに行われます。

詳しくは、イベント一覧画面で作成する を参照してください。

以下のいずれかを選択します。

  • [SIM のステータスを使用中 (active) にする]
  • [SIM のステータスを休止中 (inactive) にする]
  • [SIM のステータスを利用開始待ち (standby) にする]
  • [SIM のステータスを利用中断中 (suspended) にする]

設定できる項目は、以下のとおりです。

項目説明
[実行するタイミング] *実行するタイミング
[オフセット (分)]アクションのオフセット (分)。デフォルトは 0 です。0525600 の整数を指定します。

詳しくは、SORACOM CLI / SORACOM API で作成する を参照してください。

actionConfigList[].type に以下のいずれかを指定します。

  • ActivationAction: 「使用中 (active)」に変更します。
  • DeactivationAction: 「休止中 (inactive)」に変更します。
  • StandbyAction: 「利用開始待ち (standby)」に変更します。
  • SuspendAction: 「利用中断中 (suspended)」に変更します。

actionConfigList[].properties に設定できるプロパティは、以下のとおりです。

プロパティ説明
executionDateTimeConst *String実行するタイミング
executionOffsetMinutesStringアクションのオフセット (分)。デフォルトは 0 です。0525600 の整数を String 型で指定します。

例:

{
  ...
  "actionConfigList": [
    {
      "type": "SuspendAction",
      "properties": {
        "executionDateTimeConst": "IMMEDIATELY"
      }
    }
  ]
  ...
}
ステータスを変更するときに料金が発生する場合があります

ステータスを変更するときに発生する料金は、サブスクリプションによって異なります。ステータスおよび料金が発生する条件について詳しくは、IoT SIM のステータス を参照してください。

料金が発生するステータス変更をアクションで実行する場合は、ルールの 再評価を行うタイミング の設定で「再評価を行わない」を指定して繰り返しを避けるなど、意図しない料金が発生しないように注意してください。

サブスクリプションによってはステータスが存在しない場合があります

サブスクリプションによって、定義されているステータスが異なります。IoT SIM が契約しているサブスクリプションで存在しないステータスを指定した場合は、ステータスは変更されません。ステータスについて詳しくは、IoT SIM のステータス を参照してください。

指定の URL にリクエストを送る

ルール (条件) を満たしたときに、指定の URL にリクエストを送ります。

詳しくは、イベント一覧画面で作成する を参照してください。

[指定の URL にリクエストを送る] を選択します。

設定できる項目は、以下のとおりです。

項目説明
[実行するタイミング] *実行するタイミング
[オフセット (分)]アクションのオフセット (分)。デフォルトは 0 です。0525600 の整数を指定します。
[URL] *接続先 URL とクエリパラメーター。(*1)
[METHOD] *HTTP リクエストメソッド。
[CONTENT TYPE] *Content-Type。
[HTTP HEADER のキー]HTTP リクエストヘッダーのキー。
[HTTP HEADER の値]HTTP リクエストヘッダーのキーに対応する値。(*1)
[BODY]HTTP リクエストメッセージボディ。[METHOD] で「POST」または「PUT」を選択した場合のみ入力できます。(*1)

詳しくは、SORACOM CLI / SORACOM API で作成する を参照してください。

actionConfigList[].typeExecuteWebRequestAction を指定します。

actionConfigList[].properties に設定できるプロパティは、以下のとおりです。

プロパティ説明
executionDateTimeConst *String実行するタイミング
executionOffsetMinutesStringアクションのオフセット (分)。デフォルトは 0 です。0525600 の整数を String 型で指定します。
url *String接続先 URL とクエリパラメーター。(*1)
httpMethod *String

HTTP リクエストメソッド。以下のいずれかを指定します。

  • GET
  • POST
  • PUT
  • DELETE
contentType *StringContent-Type。
headersStringHTTP リクエストヘッダー。キーと値を、エスケープした JSON オブジェクトで指定します。(*1)
例: "{\"key1\":\"value1\"},{\"key2\":\"value2\"}"
bodyStringHTTP リクエストメッセージボディ。httpMethodPOST または PUT を指定した場合のみ入力できます。(*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 を呼び出します。

詳しくは、イベント一覧画面で作成する を参照してください。

[AWS Lambda を呼び出す] を選択します。

設定できる項目は、以下のとおりです。

項目説明
[実行するタイミング] *実行するタイミング
[オフセット (分)]アクションのオフセット (分)。デフォルトは 0 です。0525600 の整数を指定します。
[ENDPOINT] *AWS Lambda の関数 URL。
[FUNCTION NAME] *AWS Lambda のファンクション名。バージョンやエイリアスも指定できます。例: sample-function:12sample-function:production
[認証情報 ID] *AWS Lambda の認証情報 ID。あらかじめ、認証情報ストア で「AWS 認証情報」または「AWS IAM ロール認証情報」を登録してください。
[PARAM NAME]AWS Lambda に渡すパラメーターのキー。以下のいずれかを指定します。(*1)
  • parameter1
  • parameter2
  • parameter3
  • parameter4
  • parameter5
[PARAM VALUE]AWS Lambda に渡すパラメーターの値。(*2)
  • (*1) 同じパラメーターのキーを繰り返し指定しないでください。
  • (*2) 変数を利用できます。詳しくは、アクションで利用できる変数 を参照してください。

詳しくは、SORACOM CLI / SORACOM API で作成する を参照してください。

actionConfigList[].typeInvokeAWSLambdaAction を指定します。

actionConfigList[].properties に設定できるプロパティは、以下のとおりです。

プロパティ説明
executionDateTimeConst *String実行するタイミング
executionOffsetMinutesStringアクションのオフセット (分)。デフォルトは 0 です。0525600 の整数を String 型で指定します。
endpoint *StringAWS Lambda の関数 URL。
functionName *StringAWS Lambda のファンクション名。バージョンやエイリアスも指定できます。
credentialsId *StringAWS Lambda の認証情報 ID。あらかじめ、認証情報ストア で「AWS 認証情報」または「AWS IAM ロール認証情報」を登録してください。
parameter1parameter2parameter3parameter4parameter5StringAWS Lambda に渡すパラメーターの値。(*1) (*2)
  • (*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 を呼び出します。

IMEI ロックを設定する

ルール (条件) を満たしたときに、IMEI ロック を設定します。たとえば、IoT SIM を取り付けた製品を出荷した後に初めて IoT SIM が通信を開始したときに、そのデバイスの IMEI による IMEI ロックを設定できます。

申請が必要です

このアクションを利用するためには、セッションステータスルールと IMEI ロックアクション イベントハンドラーの利用申請が必要です。ユースケースと想定するイベントの発生頻度を添えて、SORACOM サポート にお問い合わせください。

  • このアクションを設定できるのは [サブスクライバーのセッションの状態が変更されたら実行] ルールを選択し、かつ [IMEI あり] オプションが有効になっている場合のみです。
  • IMEI が通知されない通信キャリアや通信方式で発生したセッションイベントでは、IMEI ロックは設定されません。その他の注意事項については、IMEI ロック のユーザードキュメントを参照してください。

詳しくは、イベント一覧画面で作成する を参照してください。

[IMEI ロック] を選択します。

設定できる項目は、以下のとおりです。

項目説明
[実行するタイミング] *実行するタイミング
[オフセット (分)]アクションのオフセット (分)。デフォルトは 0 です。0525600 の整数を指定します。

詳しくは、SORACOM CLI / SORACOM API で作成する を参照してください。

actionConfigList[].typeImeiLockAction を指定します。

actionConfigList[].properties に設定できるプロパティは、以下のとおりです。

プロパティ説明
executionDateTimeConst *String実行するタイミング
executionOffsetMinutesStringアクションのオフセット (分)。デフォルトは 0 です。0525600 の整数を String 型で指定します。

例:

{
  ...
  "actionConfigList": [
    {
      "type": "ImeiLockAction",
      "properties": {
        "executionDateTimeConst": "IMMEDIATELY"
      }
    }
  ]
  ...
}