ドキュメント

サポート

Cloud Code

イベント

Understand how the Scheduler service and Unity Gaming Services produce events that Triggers service processes.
読み終わるまでの所要時間 3 分最終更新 23日前

Scheduler サービスと Unity Gaming Services ではイベントが生成されます。イベントは、Triggers サービスに送信されます。そこでイベントは設定と照合され、対応する Cloud Code スクリプトまたはモジュールが実行されます。

発行されるイベント

Scheduler サービスと Unity Gaming Services は、トリガーを関連付けるイベントを発行します。

発行元

カスタマイズ可能

イベントペイロード

発行対象

ユースケース

Unity Gaming Servicesいいえイベント固有のペイロードとバージョン管理で事前定義プレイヤーまたはゲーム状態の変更ゲーム内またはプレイヤーの状態変更に反応して、Cloud Code スクリプトまたはモジュールをトリガーする際に UGS によって発行されるイベントを使用します。
Scheduler サービスはいスケジュール設定でユーザーが作成ユーザー定義の設定時刻または反復的な瞬間Cloud Code スクリプトまたはモジュールがいつトリガーされるかを制御する場合に Scheduler サービスによって発行されるイベントを使用します。

配信セマンティクス

デフォルトでは、イベントは at-least-once 配信セマンティクスを持ちます。これは、すべてのイベントが 1 回処理されることが保証されるものの、ネットワークの問題発生時に複数回処理される可能性があることを意味します。これを回避するための推奨されるベストプラクティスは、冪等性のある Cloud Code スクリプトおよびモジュールを作成することです。

イベントの構造

すべてのイベントには、イベントタイプ、ペイロードバージョンが含まれ、ペイロードを搬送します。

フィールド

説明

eventType
イベントタイプは、発行サービス、イベント名、およびペイロードバージョンを含む文字列です。イベントタイプは、アソシエーションを作成するトリガー設定でも使用されます。
com.unity.services.scheduler.example-event.v1
payloadVersion
ペイロードバージョンは、ペイロードのバージョンを示す整数です。1
payload
ペイロードは、イベントデータを含む文字列です。Cloud Code にスクリプトまたはモジュールパラメーターとして渡されます。
"{\"someBoolean\": true, \"someString\": \"something\"}"
イベントタイプは、Scheduler サービスと UGS のどちらによって発行されるかに応じて若干異なります。

イベントタイプ

発行元

ペイロードバージョン

ペイロード

com.unity.services.scheduler.example-event.v1
Scheduler サービス1ユーザー定義
com.unity.services.player-auth.signed-up.v1
認証サービス1事前定義
com.unity.services.player-auth.signed-in.v1
認証サービス1事前定義
com.unity.services.cloud-save.key-saved.v1
Cloud Save サービス1事前定義
com.unity.servics.leaderboards.reset.v1
Leaderboards サービス1事前定義
com.unity.servics.leaderboards.score-submitted.v1
Leaderboards サービス1事前定義
Scheduler サービスによって発行されるイベントは、イベント名、ペイロードバージョン、およびペイロードをスケジュール設定で定義することでカスタマイズできます。UGS で発行されたイベントには、イベントタイプに応じて異なるペイロード構造があり、カスタマイズできません。 各イベントタイプが返す内容について詳しくは、サポートされる UGS イベント を参照してください。

ペイロードバージョン管理

ペイロードバージョン管理は、破壊的変更の回避に役立ちます。すべてのイベントに、イベントペイロードのペイロードバージョン管理が含まれます。 例えば、
com.unity.services.player-auth.signed-up.v1
はペイロードバージョンが
1
の Authentication サービスによって発行されるイベントタイプです。これにより、同じイベントのさまざまなペイロードバージョンに対して異なるトリガーを設定できます。

スケジュールされたイベントのペイロード

Scheduler サービスによって発行されたイベントには、カスタマイズ可能なペイロードがあります。ペイロードは、スケジュール設定で定義されます。 例えば、スケジュールされたイベントのペイロードに新しいフィールドを追加する場合は、ペイロードの新しいバージョンを作成し、ペイロードの新しいバージョンを使用するようにトリガーを作成できます。 スケジュール設定では以下のようになります。
{"name" : "recurring-schedule","eventName": "example-event","type": "recurring","schedule": "0 0 * * *","payloadVersion": 1,"payload": "{\"someBoolean\": true, \"someString\": \"something\"}"}
上記のサンプルの結果は
com.unity.services.scheduler.example-event.v1
のイベントタイプになります。
このイベントタイプのトリガーを設定できます。
{"name" : "example-trigger","eventType" : "com.unity.services.scheduler.example-event.v1","actionUrn" : "urn:ugs:cloud-code:my-script","actionType" : "cloud-code"}
イベントのペイロードに新しいフィールドを追加する場合は、ペイロードの新しいバージョンを作成し、ペイロードの新しいバージョンを使用するようにトリガーを作成できます。
{"name" : "recurring-schedule","eventName": "example-event","type": "recurring","schedule": "0 0 * * *","payloadVersion": 2,"payload": "{\"someBoolean\": true, \"someString\": \"something\", \"someNewField\": \"something else\"}"}
この結果は
com.unity.services.scheduler.example-event.v2
のイベントタイプになります。これにより、新しいトリガーを新しいイベントタイプに関連付けることができます。

スケジュールされたイベント

スケジュールされたイベントを発行するには、スケジュール設定を作成する必要があります。詳細については、イベントのスケジュール を参照してください。 スケジュール設定をデプロイすることにより、設定した時刻または反復的な瞬間に発行されるイベントを作成できます。 以下は、スケジュール設定のサンプルです。
{"name" : "example-schedule","eventName": "example-event","type": "recurring","schedule": "0 0 * * *","payloadVersion": 1,"payload": "{\"someBoolean\": true, \"someString\": \"something\"}"}
  • name
    : スケジュールの名前。プロジェクトごとに一意である必要があります。
  • eventName
    : イベントのプロジェクトスコープ名。トリガーのイベントタイプを構成するために使用されます。
  • type
    : スケジュールのタイプ。
    one-time
    または
    recurring
    である必要があります。
  • schedule
    : イベントがいつ発生する必要があるかを指定します。
    type
    フィールドに応じて、タイムスタンプまたは cron 式である必要があります。
  • payloadVersion
    : ペイロードのバージョンを示す整数。トリガーのイベントタイプを構成するために使用されます。
  • payload
    : パラメーターを Cloud Code スクリプトまたはモジュールに転送するためにイベントペイロードとして使用される
    JSON
    オブジェクト。

1 回限りのスケジュール

1 回限りのスケジュールは、特定の時刻に実行される単一のイベントです。以下のようになります。
{"name" : "one-time-schedule","eventName": "example-event","type": "one-time","schedule": "2020-01-01T00:00:00Z","payloadVersion": 1,"payload": "{\"someBoolean\": true, \"someString\": \"something\"}"}
schedule
フィールドは、イベントがいつトリガーされるかを定義する RFC3339 タイムスタンプです。

反復的なスケジュール

反復的なスケジュールは、特定の時間間隔で実行される一連のイベントです。以下のようになります。
{"name" : "recurring-schedule","eventName": "example-event","type": "recurring","schedule": "0 0 * * *","payloadVersion": 1,"payload": "{\"someBoolean\": true, \"someString\": \"something\"}"}
schedule
フィールドは、イベントがいつトリガーされるかを定義する cron 式です。

Triggers とのオーバーラップ

イベントがトリガーとどのように関連付けられているかを確認するには、Triggers 構造 を確認してください。