콘텐츠로 이동

제어

다섯 개의 박스가 시나리오의 실행 흐름을 조종합니다.

참고로 모든 박스에는 암묵적인 포트 in, error, done 도 있습니다 — 포트와 링크를 참고하십시오.

시나리오의 파라미터를 선언합니다.

입력없음
출력value{ name: value, … } 형태의 단일 객체
설정name (파라미터 이름), valueType (타입과 기본값)

값은 실행 시점에, 명령줄의 --param name=value 로 제공되거나, 값이 없는 상태로 실행이 이 박스에 도달한 경우 대화식으로 요청됩니다.

입력 “baseUrl” (문자열) ──► 요청의 env 포트

시나리오의 호출자에게 결과를 공개합니다.

입력value
출력없음 — 종단 박스입니다. errordone 도 없습니다
설정name

시나리오 실행 액션이 호출한 시나리오는 각 출력을 호출자의 output:<name> 포트에서 사용할 수 있게 합니다.

두 갈래 분기입니다.

입력left, right
출력then, else
설정operator: lt, lte, eq, gte, gt, ne, contains — 그리고 리터럴 값으로서의 leftright

팁: 어느 피연산자도 배선되지 않고 값도 입력되지 않은 경우, 이 박스는 in 으로 받은 신호의 참 여부만 판정합니다. 명시적인 조건 없이 “여기까지 도달했는가”를 확인하는 것입니다.

N 갈래 분기입니다.

입력on
출력선언한 케이스마다 case-<id> 포트, 그리고 default
설정cases: { id, value } 의 목록

갈래가 셋 이상이 되면 If를 줄줄이 잇는 것보다 이쪽이 낫습니다. 케이스마다 독립된 선이 되어 그림으로 읽기 쉽습니다.

오류 복구의 경계입니다.

입력maxAttempts, delay
출력attempt (시도마다), exhausted (시도를 모두 소진했을 때)
설정아래 참고
필드기본값역할
maxAttempts3최대 시도 횟수
backofffixedfixed, linear, exponential
delay + delayUnit기본 대기 시간 (ms, s, min)
factor2지수 모드에서의 증가 계수
maxDelay + maxDelayUnit대기 시간의 상한
retryOnErrortrue오류 발생 시 재시도
retryOnFailurefalse업무적 실패 시 재시도
retryOnStatusHTTP 상태 코드 목록, 예를 들어 [429, 503]

attempt 에 연결한 하위 그래프가 재시도의 범위가 됩니다. 성공한 경우에는 done 으로 나갑니다. **이 박스에는 error 포트가 없습니다.**이 박스 자체가 경계이기 때문입니다.

Retry (3, 지수, [429,503])
├─ attempt ──► HTTP 요청 ──► Assert
└─ exhausted ──► Throw “서비스 이용 불가”