Skip to content

스크립트 개발 / 커넥터 객체 DFF.CONN / DataFlux Func Sidecar

Sidecar 커넥터 작업 객체를 사용하면 사용자가 Sidecar를 호출하여 Shell 명령을 실행할 수 있습니다.

DFF.CONN(...) 매개변수는 다음과 같습니다:

매개변수 타입 필수 / 기본값 설명
connector_id str 필수 커넥터 ID
timeout int/float 10 현재 작업 객체의 기본 HTTP 요청 타임아웃 시간(초)

Sidecar 가이드

Sidecar의 전체 사용 방법은 Sidecar 가이드를 참조하십시오

.shell(...)

Sidecar를 호출하여 Shell 명령을 실행합니다. 매개변수는 다음과 같습니다:

매개변수 타입 필수 / 기본값 설명
cmd str 필수 실행할 Shell 명령
예: "ls -l"
wait bool True 실행 완료를 기다릴지 여부
False로 설정하면 이 함수는 즉시 반환되며 터미널 출력을 반환하지 않습니다
workdir str None Shell 명령이 실행되는 작업 디렉터리
예: "/home/dev"
envs dict None 환경 변수, 키와 값 모두 문자열
예: {"MY_NAME": "Tom"}
callback_url str None 콜백 주소, 명령 실행 후 stdoutstderr를 POST 방식으로 지정된 URL로 전송합니다
일반적으로 wait=False 매개변수와 함께 사용하여 비동기 콜백을 구현합니다
timeout int/float None 이번 요청의 타임아웃 시간
참고: 이 매개변수는 Shell 명령의 타임아웃이 아니라 Func가 Sidecar에 요청하는 타임아웃입니다
생략하면 작업 객체의 기본값인 10초를 사용합니다

이 메서드는 (status_code, result)를 반환합니다: status_code는 Sidecar의 HTTP 응답 상태 코드이고, result는 파싱된 응답 내용입니다. HTTP 상태 코드가 400 이상이면 예외가 발생합니다.

.call(...)

Sidecar에 커넥터 서명이 포함된 HTTP 요청을 전송합니다. 매개변수는 다음과 같습니다:

매개변수 타입 필수 / 기본값 설명
method str 필수 HTTP 요청 메서드; "GET /path" 형식으로도 작성할 수 있습니다
path str None /로 시작하는 요청 경로; 생략하면 method에서 분리합니다
query dict None URL 쿼리 매개변수
body - None 요청 본문; 문자열이 아닌 값은 먼저 JSON으로 직렬화됩니다
timeout int/float None 이번 요청의 타임아웃 시간, 생략하면 작업 객체의 기본값을 사용합니다

반환 값은 .shell(...)과 동일합니다.

실행 후 콜백

SidecarHelper.shell(...)을 호출하고 callback_url 매개변수를 지정하면, Sidecar는 Shell 명령을 실행한 후 표준 출력 stdout 및 표준 오류 stderr를 POST 방식으로 이 주소로 전송합니다.

구체적인 구조는 다음과 같습니다:

Text Only
1
2
3
4
5
6
7
8
9
POST {callback_url}
Content-Type: application/json

{
  "kwargs": {
    "stdout": "<표준 출력 텍스트>",
    "stderr": "<표준 오류 텍스트>"
  }
}

이 구조는 DataFlux Func의 '함수 API' 표준 POST 방식과 일치하므로, '함수 API'를 사용하여 실행 후 콜백을 직접 받을 수 있습니다