ListenHTTP

ListenHTTP

HTTP 서버를 시작하고 지정된 base path에서 수신 대기하며 들어오는 요청을 FlowFiles로 변환하는 프로세서예요. 서비스의 기본 URI는 http://{hostname}:{port}/contentListener예요. HEAD와 POST 요청만 지원돼요. GET, PUT, DELETE, OPTIONS, TRACE는 오류와 함께 HTTP 응답 상태 코드 405를 반환하고, CONNECT도 오류와 함께 상태 코드 400을 반환해요. GET은 <service_URI>/healthcheck에서 지원돼요. 서비스가 사용 가능하면 콘텐츠 “OK”와 함께 “200 OK”를 반환해요. health check 기능은 다른 포트를 통해 접근하도록 구성할 수 있어요. 자세한 내용은 "Listening Port for health check requests" 속성 문서를 참고하세요. 들어오는 요청을 레코드로 처리하려면 프로세서에서 Record Reader와 Record Writer 속성을 활성화할 수 있어요. multipart 요청과 FlowFileV3 형식(minifi)의 요청에는 레코드 처리가 허용되지 않아요. 들어오는 요청에 FlowFileV3 패키지 형식이 포함되어 있으면 데이터가 패키지 안에 포함된 개별 FlowFile(들)로 자동으로 풀리고, 원본 FlowFile 이름이 복원돼요.

출처: Snowflake 문서

본문

기능 — 일반 제공(Generally Available)

Openflow Snowflake 배포는 AWS, Azure, GCP Commercial 리전의 모든 계정에서 사용할 수 있어요. Openflow BYOC 배포는 AWS Commercial 리전의 모든 계정에서 사용할 수 있어요.

Bundle

org.apache.nifi | nifi-standard-nar

설명 (Description)

HTTP 서버를 시작하고 주어진 base path에서 수신 대기하며 들어오는 요청을 FlowFiles로 변환해요. 서비스의 기본 URI는 http://{hostname}:{port}/contentListener예요. HEAD와 POST 요청만 지원돼요. GET, PUT, DELETE, OPTIONS, TRACE는 오류와 함께 HTTP 응답 상태 코드 405를 만들고, CONNECT도 오류와 함께 HTTP 응답 상태 코드 400을 만들어요. GET은 <service_URI>/healthcheck에서 지원돼요. 서비스가 사용 가능하면 콘텐츠 “OK”와 함께 “200 OK”를 반환해요. health check 기능은 다른 포트를 통해 접근하도록 구성할 수 있어요. 자세한 내용은 "Listening Port for health check requests" 속성 문서를 참고하세요. 들어오는 요청을 레코드로 처리하려면 프로세서에서 Record Reader와 Record Writer 속성을 활성화할 수 있어요. multipart 요청과 FlowFileV3 형식(minifi)의 요청에는 레코드 처리가 허용되지 않아요. 들어오는 요청에 FlowFileV3 패키지 형식이 포함되어 있으면 데이터가 패키지 안에 포함된 개별 FlowFile(들)로 자동으로 풀리고, 원본 FlowFile 이름이 복원돼요.

태그 (Tags)

http, https, ingest, listen, rest

입력 요구사항 (Input Requirement)

FORBIDDEN (금지)

민감한 동적 속성 지원 (Supports Sensitive Dynamic Properties)

false

속성 (Properties)

Property Description
Authorized DN Pattern 들어오는 연결의 Subject Distinguished Name에 적용할 Regular Expression이에요. 패턴이 Subject DN과 일치하지 않으면 프로세서는 HTTP 403 Forbidden 상태로 응답해요.
Base Path 들어오는 연결의 기본 경로예요.
HTTP Headers to receive as Attributes (Regex) FlowFile 특성으로 전달해야 할 HTTP Header 이름을 결정하는 Regular Expression을 지정해요.
HTTP Protocols TLS와 함께 사용할 Application Layer Protocol Negotiation에 지원되는 HTTP 프로토콜이에요.
Listening Port 들어오는 연결을 수신 대기할 포트예요.
Max Unconfirmed Flowfile Time 캐시에서 제거되기 전에 FlowFile이 확인될 때까지 기다리는 최대 시간이에요.
Request Header Maximum Size 이 프로세서로 전송되는 요청의 HTTP 헤더 최대 지원 크기예요.
Return Code 모든 HTTP 호출 후 반환되는 HTTP 반환 코드예요.
SSL Context Service SSL Context Service는 HTTPS 지원을 활성화해요.
authorized-issuer-dn-pattern 들어오는 연결의 Issuer Distinguished Name에 적용할 Regular Expression이에요. 패턴이 Issuer DN과 일치하지 않으면 프로세서는 HTTP 403 Forbidden 상태로 응답해요.
client-authentication TLS 연결에 대한 Client Authentication 정책이에요. SSL Context Service가 구성된 경우 필요해요.
health-check-port 들어오는 health check 요청을 수신 대기할 포트예요. 설정하면 Listening Port와 달라야 해요. 프로세서가 양방향(two-way) SSL을 사용하도록 설정되고 health check 요청에 대해 클라이언트 인증을 지원하지 않는 load balancer를 사용할 때 이 포트를 구성하세요. 이 포트에서는 /<base_path>/healthcheck 서비스만 사용할 수 있고 GET과 HEAD 요청만 지원돼요. 프로세서가 SSL을 사용하지 않도록 설정되면 이 포트에서도 SSL이 사용되지 않아요. 프로세서가 단방향(one-way) SSL을 사용하도록 설정되면 이 포트에서 단방향 SSL이 사용돼요. 프로세서가 양방향 SSL을 사용하도록 설정되면 이 포트에서 단방향 SSL이 사용돼요(클라이언트 인증 불필요).
max-thread-pool-size 내장된 Jetty 서버가 사용할 최대 스레드 수예요. 값은 8에서 1000 사이로 설정할 수 있어요. 이 속성의 값은 flow 성능과 운영 체제에 영향을 주므로 기본값은 정당한 경우에만 변경해야 해요. 소수의 HTTP 클라이언트만 서버에 연결한다면 기본값보다 작은 값이 적합할 수 있어요. 많은 수의 HTTP 클라이언트가 동시에 요청할 것으로 예상된다면 더 큰 값이 적합할 수 있어요.
multipart-read-buffer-size 들어오는 파일의 내용이 디스크에 기록되는 임계 크기예요. Content-Type: multipart/form-data 요청에만 적용돼요. heap이나 disk 공간을 채우는 것을 막기 위해 서비스 거부(denial of service) 공격을 방지하는 데 사용돼요.
multipart-request-max-size 요청의 최대 크기예요. Content-Type: multipart/form-data 요청에만 적용되며, heap이나 disk 공간을 채우는 것을 막기 위해 서비스 거부 공격을 방지하는 데 사용돼요.
record-reader 들어오는 FlowFile을 Records로 파싱하는 데 사용할 Record Reader예요.
record-writer 변환된 후 Records를 직렬화하는 데 사용할 Record Writer예요.

관계 (Relationships)

Name Description
success 성공적으로 수신된 FlowFiles에 대한 관계예요.

사용 사례 (Use cases)

수행 내용
POST로 수신한 FlowFileV3 콘텐츠 풀기.

다른 구성 요소를 사용하는 사용 사례 (Use Cases Involving Other Components)

수행 내용
수락되는 데이터 flow 속도 제한하기.

더 알아보기 (Learn more)