노드 플러그인 JSON

이 페이지는 노드의 설정정보를 변경할 수 있는 JSON 구성 가이드 입니다.

전체 구조

Name

Type

Description

logger

object

로그 설정

socket

object

관리용 소켓 설정

inits

object array

초기화 명령 모음

plugin

object

플러그인 설정

models

object array

모델 설정 목록

processes

object array

프로세스 설정 목록

immutable

bool

설정파일 변경 여부

루트 JSON 구조는 다음과 같습니다.

 1{
 2    "logger": {
 3        ...
 4    },
 5    "socket": {
 6        ...
 7    },
 8    "inits": [
 9        ...
10    ],
11    "plugin": {
12        ...
13    },
14    "models": [
15      ...
16    ],
17    "processes": [
18      ...
19    ],
20    "immutable": true
21}

logger

로그 설정 입니다. 노드의 상세 정보를 확인할 수 있습니다.

Name

Type

Description

name

string

로그 이름

sink

string

로그 싱크

arguments

string

싱크의 인자

generator

string

로그 메시지 생성기

line_feed

string

메시지별 개행 여부

severity

string

적용될 로그 심각도

auto_flush

bool

로그 버퍼의 자동 플러시 여부

thread

bool

멀티 스레드 모드 적용 여부

sink 는 로그 메시지의 마지막 종착지점 입니다. 아래의 값 중 하나를 사용할 수 있습니다.

  • console: TTY 터미널에 로그를 출력합니다.

  • file: 로그를 파일로 저장합니다.

  • rotate_file: 현재, 공식적으로 지원되지 않습니다.

  • null: 모든 메시지를 버립니다.

sink 의 값이 console 일 경우 아래의 값을 arguments 로 사용할 수 있습니다.

  • stdout: 표준 출력을 사용합니다.

  • stderr: 표준 에러를 사용합니다.

  • auto: 에러 보다 심각한 메시지는 stderr 로, 그 밖의 경우는 stdout 을 사용합니다.

sink 의 값이 file 일 경우 arguments 값은 파일 경로에 해당됩니다.

generator 는 로그 메시지를 생성할 규칙을 지정할 수 있습니다. 아래의 값 중 하나를 사용할 수 있습니다.

  • default: 기본 포맷을 사용합니다.

  • default_color: 기본 포맷에, Terminal Control Escape Sequences 를 적용하여 색상을 적용합니다.

  • raw: 원본 메시지를 그대로 사용합니다.

  • raw_color: 원본 메시지에, Terminal Control Escape Sequences 를 적용하여 색상을 적용합니다.

line_feed 은 아래의 값 중 하나를 사용할 수 있습니다.

  • auto: 시스템에 맞는 개행을 적용합니다.

  • unix: LF(\n)를 사용합니다.

  • windows: CRLF(\r\n)를 사용합니다.

severity 은 아래의 값 중 하나를 사용할 수 있습니다.

  • off: 출력을 끕니다.

  • emergency: 비상

  • alert: 경고

  • critical: 중요

  • error: 오류

  • warning: 경고

  • notice: 알림

  • info: 정보

  • debug: 디버깅

예제 코드는 다음과 같습니다.

 1{
 2    "name": "default.logger",
 3    "sink": "console",
 4    "arguments": "stdout",
 5    "generator": "default_color",
 6    "line_feed": "auto",
 7    "severity": "notice",
 8    "auto_flush": true,
 9    "thread": true
10}

socket

관리용 소켓 설정. 노드와 통신할 소켓 설정 입니다.

Name

Type

Description

recv_timeout

string

소켓의 수신 제한시간

send_timeout

string

소켓의 송신 제한시간

recv_number_of_messages

unsigned

소켓의 수신 버퍼가 수용할 수 있는 메시지 개수

send_number_of_messages

unsigned

소켓의 송신 버퍼가 수용할 수 있는 메시지 개수

recv_buffer_byte

string

단일 패킷의 수신 버퍼의 크기

send_buffer_byte

string

단일 패킷의 송신 버퍼 크기

reconnect_time_min

unsigned

이전 연결 시도가 실패한 후 재시도 까지 대기하는 최소 시간

reconnect_time_max

unsigned

이전 연결 시도가 실패한 후 재시도 까지 대하기는 최대 시간

예제 코드는 다음과 같습니다.

 1{
 2    "recv_timeout": "4sec",
 3    "send_timeout": "1sec",
 4    "recv_number_of_messages": 16,
 5    "send_number_of_messages": 16,
 6    "recv_buffer_byte": "32m",
 7    "send_buffer_byte": "32m",
 8    "reconnect_time_min": 10,
 9    "reconnect_time_max": 10
10}

inits

초기화 목록. 노드 실행시 실행됩니다.

Name

Type

Description

type

string

초기화 타입

arguments

string

초기화 타입에 따른 인자

branch

string

브렌치 이름

auto_update

bool

자동 업데이트 여부

destination

string

결과 위치

예제 코드는 다음과 같습니다.

1{
2    "type": "git",
3    "arguments": "https://github.com/bogonets/answer-lambda-cv2",
4    "branch": "master",
5    "auto_update": true,
6    "destination": "${STORAGE_PYTHON}/answer-lambda-cv2"
7}

plugin

플러그인 정보.

Name

Type

Description

script

string

스크립트 위치

event_create

string

노드가 생성될 때 호출할 함수

event_loop_begin

string

노드의 이벤트 루프 시작 함수

event_loop_end

string

노드의 이벤트 루프 종료 함수

event_destroy

string

노드가 소멸될 때 호출할 함수

예제 코드는 다음과 같습니다.

1{
2    "script": "${STORAGE_PYTHON}/npp.py",
3    "event_create": "on_create",
4    "event_loop_begin": "on_loop_begin",
5    "event_loop_end": "on_loop_end",
6    "event_destroy": "on_destroy"
7}

models

노드 시작시 함께 실행할 모델 목록 입니다.

processes

노드 시작시 함께 실행할 프로세스 목록 입니다.

immutable

true 일 경우 Node 종료시 마지막 설정 정보로 변경 및 적용됩니다.