다음을 통해 공유


DurableOrchestrationContext class

오케스트레이션 작업을 구현하는 애플리케이션 코드에 대한 기능을 제공합니다.

속성

currentUtcDateTime

오케스트레이터 함수에서 사용하기에 안전한 방식으로 현재 날짜/시간을 가져옵니다.

이 날짜/시간 값은 오케스트레이션 기록에서 파생됩니다. 항상 오케스트레이터 함수 코드의 특정 지점에서 동일한 값을 반환하므로 결정적이고 재생이 안전합니다.

customStatus

오케스트레이션에 대한 사용자 지정 상태

instanceId

현재 오케스트레이션 인스턴스의 ID입니다.

인스턴스 ID는 오케스트레이터 함수가 예약될 때 생성되고 수정됩니다. 자동 생성될 수 있으며, 이 경우 GUID로 형식이 지정되거나 모든 형식으로 사용자 지정될 수 있습니다.

isReplaying

오케스트레이터 함수가 현재 자신을 재생하고 있는지 여부를 나타내는 값을 가져옵니다.

이 속성은 오케스트레이터 함수가 재생되지 경우에만 실행해야 하는 논리가 경우에 유용합니다. 예를 들어 오케스트레이터 함수 재생의 일부로 복제될 때 특정 유형의 애플리케이션 로깅이 너무 시끄럽게 될 수 있습니다. 오케스트레이터 코드는 함수가 재생되고 있는지 확인한 다음 이 값이 false때 로그 문을 실행합니다.

parentInstanceId

현재 하위 오케스트레이션 인스턴스의 부모 오케스트레이션 ID입니다. 값은 하위 오케스트레이션에서만 사용할 수 있습니다.

부모 인스턴스 ID는 부모 오케스트레이터 함수가 예약될 때 생성되고 수정됩니다. 자동 생성될 수 있으며, 이 경우 GUID로 형식이 지정되거나 모든 형식으로 사용자 지정될 수 있습니다.

Task

Task 인스턴스가 나타내는 보류 중인 작업의 컬렉션을 처리하는 메서드의 진입점입니다. 병렬 처리 작업에 사용합니다.

메서드

callActivity(string, unknown)

실행을 위해 name이라는 활동 함수를 예약합니다.

callActivityWithRetry(string, RetryOptions, unknown)

재시도 옵션을 사용하여 실행을 위해 name 활동 함수를 예약합니다.

callEntity(EntityId, string, unknown)

엔터티에 대한 작업을 호출하고 인수를 전달하며 완료되기를 기다립니다.

callHttp(CallHttpOptions)

지정된 엔드포인트에 대한 지속성 HTTP 호출을 예약합니다.

callSubOrchestrator(string, unknown, string)

실행을 위해 name 오케스트레이션 함수를 예약합니다.

callSubOrchestratorWithRetry(string, RetryOptions, unknown, string)

재시도 옵션을 사용하여 실행을 위해 name 오케스트레이터 함수를 예약합니다.

continueAsNew(unknown)

기록을 지워 오케스트레이션을 다시 시작합니다.

createTimer(Date)

지정된 시간에 만료되는 지속성 타이머를 만듭니다.

이 메서드를 사용하여 만든 모든 지속성 타이머는 오케스트레이터 함수가 완료되기 전에 TimerTask.cancel() 사용하여 만료되거나 취소되어야 합니다. 그렇지 않으면 기본 프레임워크는 타이머가 만료될 때까지 인스턴스를 활성 상태로 유지합니다.

getInput<T>()

현재 오케스트레이터 함수의 입력을 역직렬화된 값으로 가져옵니다.

newGuid(string)

오케스트레이션 또는 작업 내에서 재생에 안전한 새 GUID를 만듭니다.

이 메서드의 기본 구현은 RFC 4122 §4.3의 알고리즘을 사용하여 이름 기반 UUID를 만듭니다. 이 값을 생성하는 데 사용되는 이름 입력은 오케스트레이션 인스턴스 ID와 내부적으로 관리되는 시퀀스 번호의 조합입니다.

setCustomStatus(unknown)

현재 오케스트레이터 함수의 JSON 직렬화 가능 상태를 설정합니다.

customStatusObject 값은 JSON으로 직렬화되며 오케스트레이션 상태 쿼리 API에 사용할 수 있습니다. 직렬화된 JSON 값은 16KB의 UTF-16으로 인코딩된 텍스트를 초과해서는 안됩니다.

직렬화된 customStatusObject 값은 다음 yield 또는 return 문 다음에 앞서 언급한 API에서 사용할 수 있게 됩니다.

signalEntity(EntityId, string, unknown)

응답을 기다리지 않고 인수를 전달하여 지속성 엔터티에 신호 작업을 보냅니다. 화재 및 잊어 버린 작업입니다.

waitForExternalEvent(string)

name 이름으로 이벤트가 발생할 때까지 비동기적으로 대기하고 이벤트 데이터를 반환합니다.

외부 클라이언트는 raiseEvent()사용하여 대기 중인 오케스트레이션 인스턴스에 이벤트를 발생할 수 있습니다.

속성 세부 정보

currentUtcDateTime

오케스트레이터 함수에서 사용하기에 안전한 방식으로 현재 날짜/시간을 가져옵니다.

이 날짜/시간 값은 오케스트레이션 기록에서 파생됩니다. 항상 오케스트레이터 함수 코드의 특정 지점에서 동일한 값을 반환하므로 결정적이고 재생이 안전합니다.

currentUtcDateTime: Date

속성 값

Date

customStatus

오케스트레이션에 대한 사용자 지정 상태

customStatus: unknown

속성 값

unknown

instanceId

현재 오케스트레이션 인스턴스의 ID입니다.

인스턴스 ID는 오케스트레이터 함수가 예약될 때 생성되고 수정됩니다. 자동 생성될 수 있으며, 이 경우 GUID로 형식이 지정되거나 모든 형식으로 사용자 지정될 수 있습니다.

instanceId: string

속성 값

string

isReplaying

오케스트레이터 함수가 현재 자신을 재생하고 있는지 여부를 나타내는 값을 가져옵니다.

이 속성은 오케스트레이터 함수가 재생되지 경우에만 실행해야 하는 논리가 경우에 유용합니다. 예를 들어 오케스트레이터 함수 재생의 일부로 복제될 때 특정 유형의 애플리케이션 로깅이 너무 시끄럽게 될 수 있습니다. 오케스트레이터 코드는 함수가 재생되고 있는지 확인한 다음 이 값이 false때 로그 문을 실행합니다.

isReplaying: boolean

속성 값

boolean

parentInstanceId

현재 하위 오케스트레이션 인스턴스의 부모 오케스트레이션 ID입니다. 값은 하위 오케스트레이션에서만 사용할 수 있습니다.

부모 인스턴스 ID는 부모 오케스트레이터 함수가 예약될 때 생성되고 수정됩니다. 자동 생성될 수 있으며, 이 경우 GUID로 형식이 지정되거나 모든 형식으로 사용자 지정될 수 있습니다.

parentInstanceId: undefined | string

속성 값

undefined | string

Task

Task 인스턴스가 나타내는 보류 중인 작업의 컬렉션을 처리하는 메서드의 진입점입니다. 병렬 처리 작업에 사용합니다.

Task: { all: (tasks: Task[]) => Task, any: (tasks: Task[]) => Task }

속성 값

{ all: (tasks: Task[]) => Task, any: (tasks: Task[]) => Task }

메서드 세부 정보

callActivity(string, unknown)

실행을 위해 name이라는 활동 함수를 예약합니다.

function callActivity(name: string, input?: unknown): Task

매개 변수

name

string

호출할 활동 함수의 이름입니다.

input

unknown

활동 함수에 전달할 JSON 직렬화 가능 입력입니다.

반환

호출된 작업 함수가 완료되거나 실패할 때 완료되는 지속성 작업입니다.

callActivityWithRetry(string, RetryOptions, unknown)

재시도 옵션을 사용하여 실행을 위해 name 활동 함수를 예약합니다.

function callActivityWithRetry(name: string, retryOptions: RetryOptions, input?: unknown): Task

매개 변수

name

string

호출할 활동 함수의 이름입니다.

retryOptions
RetryOptions

작업 함수에 대한 다시 시도 옵션입니다.

input

unknown

활동 함수에 전달할 JSON 직렬화 가능 입력입니다.

반환

callEntity(EntityId, string, unknown)

엔터티에 대한 작업을 호출하고 인수를 전달하며 완료되기를 기다립니다.

function callEntity(entityId: EntityId, operationName: string, operationInput?: unknown): Task

매개 변수

entityId
EntityId

대상 엔터티입니다.

operationName

string

작업의 이름입니다.

operationInput

unknown

작업에 대한 입력입니다.

반환

callHttp(CallHttpOptions)

지정된 엔드포인트에 대한 지속성 HTTP 호출을 예약합니다.

function callHttp(options: CallHttpOptions): Task

매개 변수

options
CallHttpOptions

HTTP 옵션 개체

반환

callSubOrchestrator(string, unknown, string)

실행을 위해 name 오케스트레이션 함수를 예약합니다.

function callSubOrchestrator(name: string, input?: unknown, instanceId?: string): Task

매개 변수

name

string

호출할 오케스트레이터 함수의 이름입니다.

input

unknown

오케스트레이터 함수에 전달할 JSON 직렬화 가능 입력입니다.

instanceId

string

하위 오케스트레이션 인스턴스에 사용할 고유 ID입니다. instanceId 지정하지 않으면 확장에서 id를 <calling orchestrator instance ID>:<#> 형식으로 생성합니다.

반환

callSubOrchestratorWithRetry(string, RetryOptions, unknown, string)

재시도 옵션을 사용하여 실행을 위해 name 오케스트레이터 함수를 예약합니다.

function callSubOrchestratorWithRetry(name: string, retryOptions: RetryOptions, input?: unknown, instanceId?: string): Task

매개 변수

name

string

호출할 오케스트레이터 함수의 이름입니다.

retryOptions
RetryOptions

오케스트레이터 함수에 대한 재시도 옵션입니다.

input

unknown

오케스트레이터 함수에 전달할 JSON 직렬화 가능 입력입니다.

instanceId

string

하위 오케스트레이션 인스턴스에 사용할 고유 ID입니다.

반환

continueAsNew(unknown)

기록을 지워 오케스트레이션을 다시 시작합니다.

function continueAsNew(input: unknown)

매개 변수

input

unknown

인스턴스를 다시 초기화할 JSON 직렬화 가능 데이터입니다.

createTimer(Date)

지정된 시간에 만료되는 지속성 타이머를 만듭니다.

이 메서드를 사용하여 만든 모든 지속성 타이머는 오케스트레이터 함수가 완료되기 전에 TimerTask.cancel() 사용하여 만료되거나 취소되어야 합니다. 그렇지 않으면 기본 프레임워크는 타이머가 만료될 때까지 인스턴스를 활성 상태로 유지합니다.

function createTimer(fireAt: Date): TimerTask

매개 변수

fireAt

Date

타이머가 만료되어야 하는 시간입니다.

반환

지속성 타이머가 만료되면 완료되는 TimerTask입니다.

getInput<T>()

현재 오케스트레이터 함수의 입력을 역직렬화된 값으로 가져옵니다.

function getInput<T>(): T

반환

T

newGuid(string)

오케스트레이션 또는 작업 내에서 재생에 안전한 새 GUID를 만듭니다.

이 메서드의 기본 구현은 RFC 4122 §4.3의 알고리즘을 사용하여 이름 기반 UUID를 만듭니다. 이 값을 생성하는 데 사용되는 이름 입력은 오케스트레이션 인스턴스 ID와 내부적으로 관리되는 시퀀스 번호의 조합입니다.

function newGuid(input: string): string

매개 변수

input

string

고유 GUID를 생성하는 데 사용됩니다.

반환

string

setCustomStatus(unknown)

현재 오케스트레이터 함수의 JSON 직렬화 가능 상태를 설정합니다.

customStatusObject 값은 JSON으로 직렬화되며 오케스트레이션 상태 쿼리 API에 사용할 수 있습니다. 직렬화된 JSON 값은 16KB의 UTF-16으로 인코딩된 텍스트를 초과해서는 안됩니다.

직렬화된 customStatusObject 값은 다음 yield 또는 return 문 다음에 앞서 언급한 API에서 사용할 수 있게 됩니다.

function setCustomStatus(customStatusObject: unknown)

매개 변수

customStatusObject

unknown

오케스트레이터 함수의 사용자 지정 상태로 사용할 JSON 직렬화 가능 값입니다.

signalEntity(EntityId, string, unknown)

응답을 기다리지 않고 인수를 전달하여 지속성 엔터티에 신호 작업을 보냅니다. 화재 및 잊어 버린 작업입니다.

function signalEntity(entityId: EntityId, operationName: string, operationInput?: unknown)

매개 변수

entityId
EntityId

대상 엔터티의 ID입니다.

operationName

string

작업의 이름입니다.

operationInput

unknown

(선택 사항) 작업에 대한 입력입니다.

waitForExternalEvent(string)

name 이름으로 이벤트가 발생할 때까지 비동기적으로 대기하고 이벤트 데이터를 반환합니다.

외부 클라이언트는 raiseEvent()사용하여 대기 중인 오케스트레이션 인스턴스에 이벤트를 발생할 수 있습니다.

function waitForExternalEvent(name: string): Task

매개 변수

name

string

대기할 외부 이벤트의 이름입니다.

반환

지정된 이름의 외부 이벤트가 수신될 때 완료되는 작업