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 のサービスエンドポイント。
[FUNCTION NAME] *AWS Lambda のファンクション名。バージョンやエイリアスも指定できます。例: sample-function:12, sample-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 のサービスエンドポイント。
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 を呼び出します。