ExecuteStreamCommand 2025.10.9.21 — 외부 명령 실행 프로세서
ExecuteStreamCommand 2025.10.9.21 — 외부 명령 실행 프로세서
ExecuteStreamCommand 프로세서는 NiFi 데이터 흐름에 외부 명령이나 스크립트를 유연하게 통합할 수 있게 해줘요. 들어오는 FlowFile의 내용을 파이프(piping) 방식처럼 실행되는 명령에 전달할 수 있어요.
출처: Snowflake 문서
본문
기능 — 일반 공개 (Generally Available)
Openflow Snowflake 배포는 AWS, Azure, GCP의 상용 리전에서 모든 계정에 제공돼요.
Openflow BYOC 배포는 AWS의 상용 리전에서 모든 계정에 제공돼요.
Bundle
org.apache.nifi | nifi-standard-nar
Description
ExecuteStreamCommand 프로세서는 NiFi 데이터 흐름에 외부 명령과 스크립트를 유연하게 통합할 수 있는 방법을 제공해요. ExecuteStreamCommand는 들어오는 FlowFile의 내용을 파이핑 방식과 유사하게 실행하는 명령에 전달할 수 있어요.
Tags
command, command execution, execute, stream
Input Requirement
REQUIRED
Supports Sensitive Dynamic Properties
true
Properties
| Property | Description |
|---|---|
| Argument Delimiter | 명령의 인자를 구분하는 데 사용하는 구분자예요 [기본값: ;]. 단일 문자여야 해요 |
| Command Arguments | ; 문자로 구분해서 실행 파일에 전달할 인자예요 |
| Command Path | 실행할 명령을 지정해요. 실행 파일의 이름만 제공하면 사용자의 환경 PATH에 있어야 해요 |
| Ignore STDIN | true면 들어오는 flow file의 내용이 실행 중인 명령에 전달되지 않아요 |
| Max Attribute Length | 스트림 명령의 출력을 속성으로 라우팅할 때, 속성 값에 넣는 문자 수는 최대 이 값이에요. 속성은 메모리에 유지되므로 큰 속성은 빠르게 메모리 부족 문제를 일으키기 때문에 중요해요. 출력이 이 값보다 길면 잘라서 맞추게 돼요. 가능하면 더 작게 설정하는 걸 고려해보세요 |
| Output Destination Attribute | 설정하면 스트림 명령의 출력이 별도의 FlowFile 대신 원래 FlowFile의 속성에 들어가요. 그러면 'output stream'이나 'nonzero status' 관계는 더 이상 없어져요. 이 속성의 값이 출력 속성의 키가 돼요 |
| Output MIME Type | "mime.type" 속성에 설정할 값을 지정해요. 'Output Destination Attribute'가 설정돼 있으면 이 속성은 무시돼요 |
| Working Directory | 명령을 실행할 때 현재 작업 디렉터리로 사용할 디렉터리예요 |
| argumentsStrategy | 명령에 제공할 인자를 구성하는 전략이에요 |
Restrictions
| Required Permission | Explanation |
|---|---|
| execute code | 운영자에게 NiFi가 가진 모든 권한을 가정해 임의의 코드를 실행할 수 있는 능력을 제공해요 |
Relationships
| Name | Description |
|---|---|
| nonzero status | 반환 상태 코드가 0이 아닐 때 명령의 출력으로 생성된 flow file의 대상 경로예요. 이 관계로 라우팅된 모든 flow file은 불이익(penalized)을 받아요 |
| original | 원래 FlowFile이 라우팅돼요. 스크립트 실행 결과를 설명하는 새 속성이 추가돼요 |
| output stream | 반환 상태 코드가 0일 때 명령의 출력으로 생성된 flow file의 대상 경로예요 |
Writes attributes
| Name | Description |
|---|---|
| execution.command | 실행된 명령의 이름 |
| execution.command.args | 세미콜론으로 구분된 인자 목록. 민감한 속성은 마스킹돼요 |
| execution.status | 명령 실행에서 반환된 종료 상태 코드 |
| execution.error | 명령 실행에서 반환된 모든 오류 메시지 |
| mime.type | 'Output MIME Type' 속성이 설정되고 'Output Destination Attribute'가 설정되지 않았을 때 출력의 MIME 타입을 설정해요 |