API を使って設定する
当ガイドでは、API を使用したイベントハンドラーの設定方法を説明します。
設定方法
イベントハンドラーは、ユーザーコンソールだけでなく API でも設定できます。具体的には
/event_handlers に対する POST(Create Event Handler) で設定をします。
soracom-cli で作成する場合には、soracom event-handlers create --body @{JSONファイルのパス}
となります。
JSON の構造は以下のとおりです。target
, ruleConfig
, actionConfigList[]
がイベントハンドラの設定に必要な要素です。各要素についてはこの後の項目で詳しく解説します。
{
"handlerId": "ハンドラーのID 更新時に使用",
//targetImsi,targetOperatorId,targetGroupのいずれかをセットします
"targetImsi": "IMSI番号",
"targetGroupId": "グループID",
"targetSimId": "SIM ID",
"targetOperatorId": "OperatorId",
"name": "表示名",
"description": "ハンドラーの詳細",
"ruleConfig": {
"type": "ルールのタイプ",
"properties": { "key": "value" }
},
"actionConfigList": [
{
"type": "アクションのタイプ",
"properties": { "key": "value" }
}
]
}
具体的には、例えばユーザーコンソールの監視設定から「データ通信量が月間 1GB を超えたら通信速度を制限する」という設定を投入し
SORACOM CLI の soracom event-handlers list
コマンドで確認すると以下のような設定が入っていることが確認できます。
{
"handlerId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"targetImsi": null,
"targetGroupId": null,
"targetSimId": null,
"targetOperatorId": "OP0000000000",
"name": "Prefixed event handler",
"description": null,
"ruleConfig": {
"type": "MonthlyTrafficRule",
"properties": {
"inactiveTimeoutDateConst": "BEGINNING_OF_NEXT_MONTH",
"limitTotalTrafficMegaByte": "1000"
}
},
"status": "active",
"actionConfigList": [
{
"type": "ChangeSpeedClassAction",
"properties": {
"speedClass": "s1.minimum",
"executionDateTimeConst": "IMMEDIATELY"
}
},
{
"type": "ChangeSpeedClassAction",
"properties": {
"speedClass": "s1.standard",
"executionDateTimeConst": "BEGINNING_OF_NEXT_MONTH"
}
},
{
"type": "SendMailToOperatorAction",
"properties": {
"executionDateTimeConst": "IMMEDIATELY",
"message": "対象SIM ${imsi} \n\nSIMの月次通信量が1000MiBに到達したので通信速度が制限されました",
"title": "速度制限のお知らせ"
}
},
{
"type": "SendMailToOperatorAction",
"properties": {
"executionDateTimeConst": "BEGINNING_OF_NEXT_MONTH",
"message": "対象SIM ${imsi} \n\n速度制限期間が終わったので、速度が元に戻りました",
"title": "速度制限解除のお知らせ"
}
}
]
}
各パラメータについて、これ以降で説明します。
target
イベントハンドラーの実行対象を設定するための項目です。以下のいずれかを指定してください。
targetImsi
(IMSI)targetGroupId
(グループ ID)targetSimId
(SIM ID)targetOperatorId
(オペレータ ID)
SIM ID については こちら をご確認ください。
複数のルール(例えば IMSI 単位と OperatorId 全体)が同時に条件を満たした場合、デフォルトでは両方のアクションが実行されます。 ただし SIM 詳細の監視タブより、グループや全体の SIM に対してのアクションを無効にする事が可能です。
3. ruleConfig
actionConfigList[]で指定されたアクションを実行するかどうかを判定するルールを設定する項目です。 例えば「月の通信量が XX MiB を越したらアクションを実行」というようなルールを設定することで、指定のアクションを実行できます。
{
"ruleConfig": {
"type": "ルールのタイプ",
"properties": { "key": "value" }
}
}
どのルールを使用するかは、type
属性で指定します。また各ルールには、共通パラメータとして inactiveTimeoutDateConst
を設定できます。これは、ルール適用時に、このルールを再評価させない期間の指定となります。
例えばその月で XX MiB 使ったらアクションを実行する場合は、BEGINNING_OF_NEXT_MONTH
を指定しておくと、一度ルールにマッチしたあとは翌月まではルールを評価対象から外すことができます。
3.1. type 一覧
type | 説明 |
---|---|
SubscriberDailyTrafficRule | サブスクライバーの日のデータ通信量が一定を超えたらアクションを実行するルール |
SubscriberMonthlyTrafficRule | サブスクライバーの月のデータ通信量が一定を超えたらアクションを実行するルール |
SubscriberCumulativeTrafficRule | サブスクライバーの利用開始からの累積データ通信量が一定を超えたらアクションを実行するルール |
SubscriberStatusAttributeRule | サブスクライバーのステータスが変更されたらアクションを実行するルール |
SubscriberSpeedClassAttributeRule | サブスクライバーの速度クラスが変更されたらアクションを実行するルール |
SubscriberFirstTrafficRule | 当ルールを設定後、サブスクライバーの通信量が初めて記録されたら実行するルール |
SubscriberExpiredRule | サブスクライバーの有効期限が切れた時にアクションを実行するルール |
SimDailyTotalTrafficRule | SIM(SIM ID)の日のデータ通信量が一定を超えたらアクションを実行するルール |
SimMonthlyTotalTrafficRule | SIM(SIM ID)の月のデータ通信量が一定を超えたらアクションを実行するルール |
SimCumulativeTotalTrafficRule | SIM(SIM ID)の利用開始からの累積データ通信量が一定を超えたらアクションを実行するルール |
SimStatusAttributeRule | SIM(SIM ID)のステータスが変更されたらアクションを実行するルール |
SimSpeedClassAttributeRule | SIM(SIM ID)の速度クラスが変更されたらアクションを実行するルール |
SimExpiredRule | SIM(SIM ID)の有効期限が切れた時にアクションを実行するルール |
SimSubscriptionStatusRule | サブスクリプションの追加を行った場合に OTA の状況によってアクションを実行するルール |
DailyTotalTrafficRule | Operator にひもづく全 SIM の日のデータ通信量合計が一定を超えたらアクションを実行するルール |
MonthlyTotalTrafficRule | Operator にひもづく全 SIM の月のデータ通信量合計が一定を超えたらアクションを実行するルール |
3.2. 各 type で共通した properties
properties | 説明 |
---|---|
inactiveTimeoutDateConst | どのルールでも設定を行う必須プロパティ。ルールが実行された後、再度評価されるタイミングの指定。 |
inactiveTimeoutOffsetMinutes | 任意のプロパティ。inactiveTimeoutDateConst で設定した時間との差分を指定します(単位: 分)。inactiveTimeoutDateConst から指定時間(分)の経過後に再評価を実行します。 |
runOnceAmongTarget | true or false を指定します。true を指定した場合、監視対象に含まれるいずれかのサブスクライバーのルールが適用された後、次に再評価を行うタイミングまでは監視対象に含まれる別のサブスクライバーに対してルールの評価をしません。
再評価のタイミング をあわせてご確認ください。 |
inactiveTimeoutDateConst
が取りうる値は以下のとおりです。
値 | 説明 |
---|---|
IMMEDIATELY | すぐに再実行 |
BEGINNING_OF_NEXT_MONTH | 翌月初 |
BEGINNING_OF_NEXT_DAY | 翌日開始時 |
AFTER_ONE_DAY | 1 日後 |
NEVER | 実行/再評価を行わない |
3.3. ruleConfig の type に応じた properties の設定
type: SubscriberDailyTrafficRule
サブスクライバーの日のデータ通信量が一定を超えたらアクションを実行するルール
properties | 説明 |
---|---|
limitTotalTrafficMegaByte | このデータ量(MiB)を超えたらアクションを実行する |
type: SubscriberMonthlyTrafficRule
サブスクライバーの月のデータ通信量が一定を超えたらアクションを実行するルール
properties | 説明 |
---|---|
limitTotalTrafficMegaByte | データ量(MiB)がこの量を超えたらアクションを実行する |
type: SubscriberCumulativeTrafficRule
サブスクライバーの利用開始からの累積データ通信量が一定を超えたらアクションを実行するルール
properties | 説明 |
---|---|
limitTotalTrafficMegaByte | 累積データ量(MiB)がこの値を超えたらアクションを実行する |
type: SubscriberStatusAttributeRule
サブスクライバーのステータスが変更されたらアクションを実行するルール
properties | 説明 |
---|---|
targetStatus | SIM がこのステータスになった場合にアクションを実行する。例えば targetStatus を inactive に設定しておくと、SIM が inactive になった時に指定のアクションを実行できます。 |
targetStatus
が取りうる値は以下のとおりです。
targetStatus の値 | 説明 |
---|---|
null (未設定) | すべてのステータス |
ready | ready ステータス |
active | active ステータス |
inactive | inactive ステータス |
suspended | suspended ステータス |
terminated | terminated ステータス |
サポートされる変数 (この変数は、Action の中で設定すると実行時にその値を取得できます)
サポートされる変数 | 説明 |
---|---|
${newStatus} | 変更後のステータス |
${oldStatus} | 変更前のステータス |
ステータスの詳細は リファレンス: SIM のステータス一覧 もご確認ください。
type: SubscriberSpeedClassAttributeRule
サブスクライバーの速度クラスが変更されたらアクションを実行するルール
properties | 説明 |
---|---|
targetSpeedClass | SIM がこの速度クラスになった場合にアクションを実行する。例えば targetSpeedClass を s1.minimum に設定しておくと、SIM が s1.minimum の速度クラスになった時にアクションを実行できます。 |
targetSpeedClass が取りうる値は以下のとおりです。
targetStatus の値 | 説明 |
---|---|
null (未設定) | すべての速度クラス |
s1.minimum | 速度クラス s1.minimum |
s1.slow | 速度クラス s1.slow |
s1.standard | 速度クラス s1.standard |
s1.fast | 速度クラス s1.fast |
s1.4xfast | 速度クラス s1.4xfast |
サポートされる変数 (この変数は、Action の中で設定すると実行時にその値を取得できます)
サポートされる変数 | 説明 |
---|---|
${newSpeedClass} | 変更後の速度クラス |
${oldSpeedClass} | 変更前の速度クラス |
type: SubscriberFirstTrafficRule
当ルールを設定後、サブスクライバーの通信量が初めて記録されたら実行するルール
このルールで指定できる properties とサポートされる変数はありません。また、このルールでは inactiveTimeoutDateConst
に NEVER
のみ指定できます。
type: SubscriberExpiredRule
サブスクライバーの有効期限が切れた時にアクションを実行するルール
サポートされる変数 (この変数は、Action の中で設定すると実行時にその値を取得できます)
サポートされる変数 | 説明 |
---|---|
${newStatus} | 有効期限が切れた後のステータス |
${oldStatus} | 有効期限が切れる前のステータス |
type: SimDailyTotalTrafficRule
SIM(SIM ID)の日のデータ通信量が一定を超えたらアクションを実行するルール
properties | 説明 |
---|---|
limitTotalTrafficMegaByte | このデータ量(MiB)を超えたらアクションを実行する |
type: SimMonthlyTotalTrafficRule
SIM(SIM ID)の月のデータ通信量が一定を超えたらアクションを実行するルール
properties | 説明 |
---|---|
limitTotalTrafficMegaByte | データ量(MiB)がこの量を超えたらアクションを実行する |
type: SimCumulativeTotalTrafficRule
SIM(SIM ID)の利用開始からの累積データ通信量が一定を超えたらアクションを実行するルール
properties | 説明 |
---|---|
limitTotalTrafficMegaByte | 累積データ量(MiB)がこの値を超えたらアクションを実行する |
type: SimStatusAttributeRule
SIM(SIM ID)のステータスが変更されたらアクションを実行するルール
properties | 説明 |
---|---|
targetStatus | SIM がこのステータスになった場合にアクションを実行する。例えば targetStatus を inactive に設定しておくと、SIM が inactive になった時に指定のアクションを実行できます。 |
targetStatus
が取りうる値は以下のとおりです。
targetStatus の値 | 説明 |
---|---|
null (未設定) | すべてのステータス |
ready | ready ステータス |
active | active ステータス |
inactive | inactive ステータス |
suspended | suspended ステータス |
terminated | terminated ステータス |
サポートされる変数 (この変数は、Action の中で設定すると実行時にその値を取得できます)
サポートされる変数 | 説明 |
---|---|
${newStatus} | 変更後のステータス |
${oldStatus} | 変更前のステータス |
ステータスの詳細は リファレンス: SIM のステータス一覧 もご確認ください。
type: SimSpeedClassAttributeRule
SIM(SIM ID)の速度クラスが変更されたらアクションを実行するルール
properties | 説明 |
---|---|
targetSpeedClass | SIM がこの速度クラスになった場合にアクションを実行する。例えば targetSpeedClass を s1.minimum に設定しておくと、SIM が s1.minimum の速度クラスになった時にアクションを実行できます。 |
targetSpeedClass が取りうる値は以下のとおりです。
targetStatus の値 | 説明 |
---|---|
(未設定) | すべての速度クラス |
s1.minimum | 速度クラス s1.minimum |
s1.slow | 速度クラス s1.slow |
s1.standard | 速度クラス s1.standard |
s1.fast | 速度クラス s1.fast |
s1.4xfast | 速度クラス s1.4xfast |
サポートされる変数 (この変数は、Action の中で設定すると実行時にその値を取得できます)
サポートされる変数 | 説明 |
---|---|
${newSpeedClass} | 変更後の速度クラス |
${oldSpeedClass} | 変更前の速度クラス |
type: SimExpiredRule
SIM(SIM ID)の有効期限が切れた時にアクションを実行するルール
サポートされる変数 (この変数は、Action の中で設定すると実行時にその値を取得できます)
サポートされる変数 | 説明 |
---|---|
${newStatus} | 有効期限が切れた後のステータス |
${oldStatus} | 有効期限が切れる前のステータス |
type: SimSubscriptionStatusRule
サブスクリプションの追加を行った場合に OTA の状況によってアクションを実行するルール
properties | 説明 |
---|---|
started | サブスクリプションの追加を開始した場合にアクションを実行 |
finished | サブスクリプションの追加が完了した場合にアクションを実行 |
failed | サブスクリプションの追加が失敗した場合にアクションを実行 |
null | 上記のいずれの場合もアクションを実行 |
サポートされる変数 (この変数は、Action の中で設定すると実行時にその値を取得できます)
サポートされる変数 | 説明 |
---|---|
${imsi} | ステータスによって入る値は異なります。started : plan01s の IMSIfinished : 追加されたサブスクリプションの IMSIfailed : plan01s の IMSI |
${primaryImsi} | plan01s の IMSI |
${subscription} | OTA で追加されたサブスクリプション |
${otaStatus} | サブスクリプション追加のステータスstarted : サブスクリプションの追加を開始した状態finished : サブスクリプションの追加が完了した状態failed : サブスクリプションの追加が失敗した状態 |
type: DailyTotalTrafficRule
Operator にひもづく全 SIM の日のデータ通信量合計が一定を超えたらアクションを実行するルール
properties | 説明 |
---|---|
limitTotalTrafficMegaByte | データ量(MiB)がこの量を超えたらアクションを実行する このルールは、ターゲットとして targetOperatorId の場合のみ有効です。 |
type: MonthlyTotalTrafficRule
Operator にひもづく全 SIM の月のデータ通信量合計が一定を超えたらアクションを実行するルール
properties | 説明 |
---|---|
limitTotalTrafficMegaByte | データ量(MiB)がこの量を超えたらアクションを実行する このルールは、ターゲットとして targetOperatorId の場合のみ有効です。 |
4. actionConfigList[]
ruleConfig
で指定されたルールが適用された場合に実行されるアクションを指定するための項目です。
例えば、ルールが適用されたタイミングで指定のアドレスにメールを送ったり、SIM の速度クラスを変更したりできます。
{
"actionConfigList": [
{
"type": "アクションのタイプ",
"properties": { "key": "value" }
}
]
}
ルールと同様、type 属性でどのアクションを使うかを指定できます。
また共通パラメータとして executionDateTimeConst
を設定できます。
executionDateTimeConst
はそのアクションをいつ実行するかを指定するパラメータです。
4.1. type 一覧
type | 説明 |
---|---|
ChangeSpeedClassAction | SIM の SpeedClass を変更するアクション |
SendMailAction | メールを送るアクション |
SendMailToOperatorAction | オペレーターの登録メールアドレスにメールを送るアクション |
ActivationAction | SIM の状態を Active (使用中)にするアクション |
DeactivationAction | SIM の状態を Inactive (休止中)にするアクション |
StandbyAction | SIM の状態を Standby (利用開始待ち)にするアクション |
ExecuteWebRequestAction | 指定の URL にリクエストをするアクション |
InvokeAWSLambdaAction | AWS Lambda を呼び出すアクション |
4.2. 各 type で共通した properties
properties | 説明 |
---|---|
executionDateTimeConst | すべてのアクションに共通の必須パラメータです。ルールの判定が有効になった際、どのタイミングでアクションを実行するかを指定します。 |
executionOffsetTime | 任意のプロパティ。executionDateTimeConst で設定した時間との差分を指定します(単位: 分)。executionDateTimeConst から指定時間(分)の経過後にアクションを実行します。 |
executionDateTimeConst
が取りうる値は以下のとおりです。
値 | 説明 |
---|---|
IMMEDIATELY | すぐに実行 |
BEGINNING_OF_NEXT_MONTH | 翌月初 |
BEGINNING_OF_NEXT_DAY | 翌日開始時 |
AFTER_ONE_DAY | 1 日後 |
NEVER | 実行しない |
4.3. actionConfigList の type に応じた properties の設定
type: ChangeSpeedClassAction
SIM の SpeedClass を変更するアクション
properties | 説明 |
---|---|
speedClass | “s1.slow”,“s1.standard"などの速度クラスを設定する |
type: SendMailAction
メールを送るアクション
properties | 説明 |
---|---|
to | 送付先メールアドレス |
title | メールタイトル |
message | メール本文 |
メールのタイトル、および本文には、以下の変数を利用することが可能です。また、これ以外にも、ルールでサポートされる変数を利用できます。
サポートされる変数 | 説明 |
---|---|
${simId} | 対象 SIM の SIM ID |
${imsi} | 対象 SIM の IMSI |
${operatorId} | 対象 SIM を持つ Operator の ID |
${date} | 送信日付(yyyy/m/d) |
${year} | 送信年 (yyyy) |
${month} | 送信月 (m) |
${day} | 送信日 (d) |
${tags.[任意のタグ名]} | 対象 SIM のタグ名に対応する値 (例: tags.name ) |
type: SendMailToOperatorAction
Operator にメールを送るアクション
properties | 説明 |
---|---|
title | メールタイトル |
message | メール本文 メールのタイトル、および本文には、「メールを送るアクション」と同じ変数が利用できます。 |
type: ActivationAction
SIM の状態を Active (使用中)にするアクション
当 type に応じた properties の設定はありません。
type: DeactivationAction
SIM の状態を Inactive (休止中)にするアクション
当 type に応じた properties の設定はありません。
type: StandbyAction
SIM の状態を Standby (利用開始待ち)にするアクション
当 type に応じた properties の設定はありません。
type: ExecuteWebRequestAction
指定の URL にリクエストをするアクション
properties | 説明 |
---|---|
url | 接続先 URL とパラメーター |
httpMethod | GET,POST,PUT,DELETE のいずれか |
contentType | application/json などの ContentType |
headers | ヘッダーに設定する値(エスケープされた JSON オブジェクト(hash))(任意) |
body | リクエストボディにセットする文字列(任意) GET,DELETE の場合は設定できません |
url,headers および body には、以下の変数を設定できます。またこれ以外にも、ルールでサポートされる変数を利用することが可能です。
サポートされる変数 | 説明 |
---|---|
${simId} | 対象 SIM の SIM ID |
${imsi} | 対象 SIM の IMSI |
${operatorId} | 対象 SIM を持つ Operator の ID |
${date} | 送信日付(yyyy/m/d) |
${year} | 送信年 (yyyy) |
${month} | 送信月 (m) |
${day} | 送信日 (d) |
${tags.[任意のタグ名]} | 対象 SIM のタグ名に対応する値 (例: tags.name ) |
type: InvokeAWSLambdaAction
AWS Lambda を呼び出すアクション
properties | 説明 |
---|---|
endpoint | Lambda のエンドポイント URL |
functionName | Lambda ファンクション名 (バージョンやエイリアス指定も可) |
accessKey | (非推奨。credentialsId を利用してください) アクセスキー |
secretAccessKey | (非推奨。credentialsId を利用してください) シークレットアクセスキー |
credentialsId | 認証情報 ID |
parameter1 | パラメーター 1(optional) |
parameter2 | パラメーター 2(optional) |
parameter3 | パラメーター 3(optional) |
parameter4 | パラメーター 4(optional) |
parameter5 | パラメーター 5(optional) |
認証情報 ID には、認証情報ストアで登録できる AWS 認証情報
または AWS IAM ロール認証情報
の ID を指定します。
パラメーターには任意の文字列 (最大 100 文字)および以下の変数を設定できます。またこれ以外にも、ルールでサポートされる変数(${newSpeedClass}
など)を設定できます
サポートされる変数 | 説明 |
---|---|
${simId} | 対象 SIM の SIM ID |
${imsi} | 対象 SIM の IMSI |
${operatorId} | 対象 SIM を持つ Operator の ID |
${date} | 送信日付(yyyy/m/d) |
${year} | 送信年 (yyyy) |
${month} | 送信月 (m) |
${day} | 送信日 (d) |
${tags.[任意のタグ名]} | 対象 SIM のタグ名に対応する値 (例: tags.name ) |
呼び出し先の Lambda ファンクションには、以下の JSON が渡されます。
{
"imsi": "対象のimsi",
"parameter1": "上記のparameter1",
"parameter2": "上記のparameter2",
"parameter3": "上記のparameter3",
"parameter4": "上記のparameter4",
"parameter5": "上記のparameter5"
}
Lambda ファンクション実装例
exports.handler = function (event, context) {
console.log("imsi =", event.imsi);
console.log("value1 =", event.parameter1);
context.succeed(event.imsi);
};
5. 設定サンプル
5.1. SIM の速度変更時に、ExecuteWebRequestAction で Slack に通知するサンプル
{
"targetOperatorId": "OPXXXXXXXXXX",
"name": "SpeedClass",
"ruleConfig": {
"type": "SimSpeedClassAttributeRule",
"properties": {
"inactiveTimeoutDateConst": "IMMEDIATELY"
}
},
"status": "active",
"actionConfigList": [
{
"type": "ExecuteWebRequestAction",
"properties": {
"headers": "{\"contentType\":\"application/json; charset=utf-8\"}",
"executionDateTimeConst": "IMMEDIATELY",
"httpMethod": "POST",
"body": "{\"text\":\"${imsi} speed class changed. from ${oldSpeedClass} to ${newSpeedClass}\"}",
"contentType": "application/json",
"url": "https://hooks.slack.com/services/XXXX"
}
}
]
}
5.2. ChangeSpeedClassAction, SendMailAction を利用し、1 日 100M 利用で 1 日後まで速度制限しメール通知するサンプル
{
"targetImsi": "xxxxxxxxxxxx",
"name": "100MiBリミット",
"description": "1日100MiB利用で、1日後まで速度制限",
"ruleConfig": {
"type": "SubscriberDailyTrafficRule",
"properties": {
"inactiveTimeoutDateConst": "AFTER_ONE_DAY",
"limitTotalTrafficMegaByte": "100"
}
},
"status": "active",
"actionConfigList": [
{
"type": "ChangeSpeedClassAction",
"properties": {
"speedClass": "s1.slow",
"executionDateTimeConst": "IMMEDIATELY"
}
},
{
"type": "ChangeSpeedClassAction",
"properties": {
"speedClass": "s1.fast",
"executionDateTimeConst": "AFTER_ONE_DAY"
}
},
{
"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": "速度制限を解除します"
}
}
]
5.3. InvokeAWSLambdaAction を利用し、累積 3GB 利用時に AWS Lambda 呼び出しするサンプル
累積でのイベントのため、一度のみの評価を行う NEVER
を inactiveTimeoutDateConst
に設定します。
{
"targetOperatorId": "OPXXXXXXXXX",
"name": "3GBリミット",
"description": "累積3GB利用時",
"ruleConfig": {
"properties": {
"inactiveTimeoutDateConst": "NEVER",
"limitTotalTrafficMegaByte": 3000
},
"type": "CumulativeTrafficRule"
},
"actionConfigList": [
{
"properties": {
"credentialsId": "認証情報 ID",
"endpoint": "https://lambda.ap-northeast-1.amazonaws.com",
"functionName": "Lambdaのfunction名",
"executionDateTimeConst": "IMMEDIATELY",
"parameter3": "param3",
"parameter2": "param2",
"parameter1": "param1"
},
"type": "InvokeAWSLambdaAction"
}
]
}
5.4. InvokeAWSLambdaAction を利用し、速度クラス変更時に AWS Lambda で履歴を保存するサンプル
速度クラス変更のルールで利用できる変数(${newSpeedClass}
と ${oldSpeedClass}
)を使用します。
指定した AWS Lambda に変更前後の速度クラスがパラメーターとして渡されるため、Lambda のプログラムで DB などに履歴保存します。
{
"targetOperatorId": "OPXXXXXXXXX",
"name": "SpeedClass変更",
"description": "SpeedClass変更時に実行",
"ruleConfig": {
"properties": {
"inactiveTimeoutDateConst": "IMMEDIATELY",
"targetSpeedClass": null
},
"type": "SubscriberSpeedClassAttributeRule"
},
"actionConfigList": [
{
"properties": {
"credentialsId": "認証情報 ID",
"endpoint": "https://lambda.ap-northeast-1.amazonaws.com",
"functionName": "Lambdaのfunction名",
"executionDateTimeConst": "IMMEDIATELY",
"parameter1": "${oldSpeedClass}",
"parameter2": "${newSpeedClass}"
},
"type": "InvokeAWSLambdaAction"
}
]
}