# トリガーの構造

> Understand the structure of a trigger configuration that defines what to invoke when an event fires.

トリガー設定では、イベントが発生したときに呼び出す必要のあるものを定義します。

以下のようになります。

```json
{
  "name" : "example-trigger",
  "eventType" : "com.unity.services.{{SERVICE_NAME}}.{{EVENT_NAME}}.v{{EVENT_VERSION}}",
  "actionUrn" : "urn:ugs:cloud-code:{{SCRIPT}}",
  "actionType" : "cloud-code",
  "filter": "data['parameter'] == 'value'"
}
```

* `name`: トリガーの名前。プロジェクトごとに一意である必要があります。
* `eventType`: トリガーをイベントと照合するために使用されます。イベント設定の `eventName` および `payloadVersion` フィールドに対応する `eventName` および `eventVersion` フィールドから構成されます。
* `actionUrn`: トリガーが発生したときに呼び出す必要のあるものを定義します。例えば、`urn:ugs:cloud-code:TestScript` は `TestScript` Cloud Code スクリプトを呼び出し、`urn:ugs:cloud-code:TestModule/TestFunction` は `TestModule` Cloud Code モジュール内の `TestFunction` 関数を呼び出します。
* `actionType`: トリガーが発生したときに実行されるアクションのタイプ。現在、`cloud-code` のみがサポートされています。
* `filter`: トリガーが起動するために満たす必要がある条件を定義する任意のフィールド。条件が満たされない場合、トリガーは起動しません。詳細については、[フィルター](./filters.md) を参照してください。

> **Note:**
>
> **ノート:** CLI を使用して、フィルターを使用するトリガーを作成することはできません。[Triggers API](/triggers/tutorials/define-triggers/rest-api.md) または [Unity Dashboard](/triggers/tutorials/define-triggers/unity-dashboard.md) を使用してください。

## イベントとのオーバーラップ##overlap-with-events

Triggers は、イベントに関連付けられています。イベントが発生すると、関連付けられたトリガーが呼び出されます。イベントとトリガーは、同じ `eventName` および `payloadVersion` 設定を共有する必要があります。

> **Note:**
>
> **ノート:** `eventType` はイベントをトリガーにマップします。

### スケジュールされたイベント##scheduled-events

以下のスケジュール設定があります。

```json
{
  "name" : "recurring-schedule",
  "eventName": "example-event",
  "type": "recurring",
  "schedule": "0 0 * * *",
  "payloadVersion": 1,
  "payload": "{\"someBoolean\": true, \"someString\": \"something\"}"
}
```

以下のトリガー設定があります。

```json
{
  "name" : "example-trigger",
  "eventType" : "com.unity.services.scheduler.example-event.v1",
  "actionUrn" : "urn:ugs:cloud-code:my-script",
  "actionType" : "cloud-code"
}
```

トリガー設定の `eventType` フィールドをスケジュール設定の `eventName` および `payloadVersion` フィールドに設定することでトリガーをイベントタイプに関連付けることができます。

スケジュール設定がデプロイされると、指定された時刻にスケジュールがトリガーされ、イベントが Triggers サービスに送信されて、そこで関連付けられた Cloud Code リソースが呼び出されます。

### UGS イベント##ugs-events

UGS からトリガーをイベントタイプに関連付ける場合、トリガー設定でイベントタイプを指定する必要があります。

例えば、[Authentication: サインアップ](/triggers/manage-events/supported-ugs-events.md#signed-up) イベントでトリガーを発生させる場合は、以下のトリガー設定を作成できます。

```json
{
  "name" : "example-trigger",
  "eventType" : "com.unity.services.player-auth.signed-up.v1",
  "actionUrn" : "urn:ugs:cloud-code:my-script",
  "actionType" : "cloud-code"
}
```

ユーザーがサインアップするたびに、トリガーが発生し、`my-script` Cloud Code スクリプトが呼び出されます。

### トリガーごとに複数のイベント##multiple-events-per-trigger

同じイベントを複数のトリガーに関連付けることができます。

> **Note:**
>
> **ノート:** 現在、イベントタイプあたりのトリガー数は 32 個に制限されています。

例えば、ユーザーがサインアップしたときに呼び出される 2 つのトリガーを作成できます。

最初のトリガーは、`add-cloud-save-data` スクリプトを呼び出して、認証されたユーザーの Cloud Save データエントリーを追加します。

```json
{
  "name" : "auth-cloud-save",
  "eventType" : "com.unity.services.player-auth.signed-up.v1",
  "actionUrn" : "urn:ugs:cloud-code:add-cloud-save-data",
  "actionType" : "cloud-code"
}
```

2 番目のトリガーは、`Economy` モジュールから `add-economy-items` エンドポイントを呼び出して、認証されたユーザーに仮想アイテムを追加します。

```json
{
  "name" : "auth-economy",
  "eventType" : "com.unity.services.player-auth.signed-up.v1",
  "actionUrn" : "urn:ugs:cloud-code:Economy/add-economy-items",
  "actionType" : "cloud-code"
}
```

ユーザーがサインアップするたびに、両方のトリガーが起動し、関連する Cloud Code リソースが呼び出されます。
