기술 자료

지원

Cloud Code

Cloud Code

이벤트

Understand how the Scheduler service and Unity Gaming Services produce events that Triggers service processes.
읽는 시간 2분최근 업데이트: 2달 전

Scheduler 서비스와 Unity Gaming Services는 이벤트를 생성합니다. 생성된 이벤트는 Triggers 서비스로 전송되며, Triggers 서비스는 이벤트에 대응하는 구성을 찾은 다음 해당 Cloud Code 스크립트 또는 모듈을 실행합니다.

발생된 이벤트

Scheduler 서비스와 Unity Gaming Services는 트리거를 연결할 수 있는 이벤트를 발생시킵니다.

발생 주체

커스터마이즈 가능 여부

이벤트 페이로드

발생 시점

사용 사례

Unity Gaming Services아니요이벤트별 페이로드 및 버전 관리를 통해 사전 정의됨플레이어 또는 게임 상태의 변화게임이나 플레이어의 상태 변화에 대한 응답으로 Cloud Code 스크립트 또는 모듈을 트리거하려는 경우, UGS에서 발생시키는 이벤트를 사용합니다.
Scheduler 서비스일정 구성에서 사용자에 의해 생성됨사용자가 정의한 시점에 또는 일정 간격으로 반복Cloud Code 스크립트 또는 모듈이 트리거되는 시점을 제어하려는 경우 Scheduler 서비스에서 발생시키는 이벤트를 사용합니다.

전달 시맨틱

기본적으로 이벤트는 최소 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
Authentication 서비스1사전 정의됨
com.unity.services.player-auth.signed-in.v1
Authentication 서비스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
    필드에 따라 타임스탬프 또는 크론 표현식이어야 합니다.
  • payloadVersion
    : 페이로드의 버전을 나타내는 정수로, 트리거의 이벤트 유형을 구성하는 데 사용됩니다.
  • payload
    : Cloud Code 스크립트나 모듈로 파라미터를 전달하기 위한 이벤트 페이로드로 사용되는
    JSON
    오브젝트입니다.

일회성 일정

일회성 일정은 특정 시점에 실행되는 단일 이벤트입니다. 예시는 다음과 같습니다.
{"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
필드는 이벤트가 트리거되는 시점을 정의하는 크론 표현식입니다.

Triggers와 오버랩

이벤트가 트리거와 연결되는 방식을 알아보려면 Triggers 구조를 참고하십시오.