カウンターマスタフォーマット

回数制限カウンターのマスターデータはGS2マネージメントコンソールでカウンター情報を登録し、エクスポートすることで生成できます。
これによって、開発環境用のカウンターと製品環境のカウンターで同じデータを2度登録する手間を省けます。

また、エクスポートされるデータはただの JSON 形式のデータですので、GS2マネージメントコンソールを通さずに自作のツールでカウンターマスタを作成することも可能です。
マスターデータは以下のフォーマットで定義されます。

  1. {
  2. "version": "2017-12-18",
  3. "counters": [
  4. {
  5. "max": 5,
  6. "name": "counter-0001",
  7. "resetType": "none"
  8. },
  9. {
  10. "max": 10,
  11. "name": "counter-0002",
  12. "resetType": "daily",
  13. "resetHour": 3,
  14. },
  15. {
  16. "max": 15,
  17. "name": "counter-0003",
  18. "resetType": "weekly",
  19. "resetDayOfWeek": "monday",
  20. "resetHour": 4
  21. },
  22. {
  23. "max": 20,
  24. "name": "counter-0004",
  25. "resetType": "monthly",
  26. "resetDayOfMonth": 1,
  27. "resetHour": 5
  28. }
  29. ]
  30. }

version には現時点では 『2017-12-18』 を指定してください。
将来フォーマットが変更されたときに読み込むフォーマットバージョンを確定するのに使用します。

counters にはカウンターのマスターリストを定義します。
1つの回数制限に最大10個のカウンターを定義出来ます。

name にはカウンターの名前を設定します。
GS2-SDK の DescribeCounter や GetCounter でカウンターデータを取得する際に使用出来ます。

max には実行を許可する最大回数を設定します。
この制限回数を超えてカウンターを進めようとすると 409: Conflict(ConflictException) を返します。

resetType にはリセット周期を設定します。
リセット周期には4種類存在し、どのリセット周期を適用するかを文字列で指定します。
  • リセット無し(none)
  • 毎日(daily)
  • 毎週(weekly)
  • 毎月(monthly)
resetHour にはリセット時間をUTC基準(日本時間 -9時間)で指定します。
resetType に none 以外を指定した場合に指定が必要となります。
例えば、日本時間で毎朝5時にリセットをしたい場合は 20 を指定します。

resetDayOfWeek にはリセットを行いたい曜日をUTC基準で指定します。
resetType に weekly を指定したときにのみ指定が必要となります。
例えば、日本時間で毎週月曜日朝5時にリセットしたい場合は UTC 基準のため、指定するべき曜日は sunday、resetHour に指定するべき値は 20 となります。

resetDayOfMonth にはリセットを行いたい日を指定します。
resetType に monthly を指定したときにのみ指定が必要となります。
例えば、日本時間で毎月1日朝5時にリセットしたい場合は、31以上の値を指定することで毎月月末に丸められるため月末日の指定となり、resetHour に指定するべき値は 20 となります。

Comments