HandleHttpRequest 프로세서
HandleHttpRequest 프로세서
Openflow의 HandleHttpRequest 프로세서는 HTTP 서버를 시작하고 HTTP 요청을 수신하는 프로세서예요. Web Service를 만들기 위해 HandleHttpResponse 프로세서와 함께 사용되도록 설계되었습니다.
출처: Snowflake 문서
본문
기능 — 일반 공급 (Generally Available)
Openflow Snowflake 배포는 AWS, Azure, GCP 상용(Commercial) 리전의 모든 계정에서 사용할 수 있어요. Openflow BYOC 배포는 AWS 상용 리전의 모든 계정에서 사용할 수 있습니다.
Bundle
org.apache.nifi | nifi-standard-nar
설명
HTTP 서버를 시작하고 HTTP 요청을 수신합니다. 각 요청에 대해 FlowFile을 생성하고 'success'로 전송합니다. 이 프로세서는 Web Service를 만들기 위해 HandleHttpResponse 프로세서와 함께 사용되도록 설계되었습니다. multipart 요청의 경우 각 파트에 대해 하나의 FlowFile이 생성됩니다.
태그
http, https, ingress, listen, request, web service
입력 요구사항
금지 (FORBIDDEN)
민감한 동적 속성 지원
false
속성
| 이름 | 설명 |
|---|---|
| Additional HTTP Methods | 허용해야 하는 비표준 HTTP 메서드의 쉼표로 구분된 목록입니다. |
| Allow DELETE | HTTP DELETE 메서드를 허용합니다. |
| Allow GET | HTTP GET 메서드를 허용합니다. |
| Allow HEAD | HTTP HEAD 메서드를 허용합니다. |
| Allow OPTIONS | HTTP OPTIONS 메서드를 허용합니다. |
| Allow POST | HTTP POST 메서드를 허용합니다. |
| Allow PUT | HTTP PUT 메서드를 허용합니다. |
| Allowed Paths | 들어오는 URL 요청에서 허용되는 유효한 HTTP 경로를 지정하는 정규식입니다. 이 값이 지정되고 HTTP 요청의 경로가 이 정규식과 일치하지 않으면 프로세서는 404: NotFound로 응답합니다. |
| Client Authentication | 프로세서가 클라이언트를 인증할지 여부를 지정합니다. 이 값은 SSL Context Service 속성이 지정되지 않았거나 제공된 SSL Context가 KeyStore만 사용하고 TrustStore를 사용하지 않는 경우 무시됩니다. |
| Default URL Character Set | HTTP 요청이 문자 집합을 제공하지 않을 때 URL 매개변수를 디코딩하는 데 사용할 문자 집합입니다. |
| HTTP Context Map | HTTP 요청 정보를 캐싱하는 데 사용할 HTTP Context Map 컨트롤러 서비스입니다. |
| HTTP Protocols | TLS와의 Application Layer Protocol Negotiation을 위해 지원되는 HTTP 프로토콜입니다. |
| Hostname | 바인딩할 호스트 이름입니다. 지정하지 않으면 모든 호스트에 바인딩됩니다. |
| Listening Port | 들어오는 HTTP 요청을 수신할 포트입니다. |
| Maximum Threads | 임베디드 HTTP 서버가 요청 처리에 사용할 최대 스레드 수입니다. |
| Request Header Maximum Size | 이 프로세서로 전송된 요청의 HTTP 헤더 최대 지원 크기입니다. |
| SSL Context Service | 서버를 보호하기 위해 사용할 SSL Context Service입니다. 지정하면 서버는 HTTPS 요청만 허용하고, 그렇지 않으면 HTTP 요청만 허용합니다. |
| container-queue-size | Http Request Container 대기열의 크기입니다. |
| multipart-read-buffer-size | 들어오는 파일의 콘텐츠가 디스크에 기록되는 임계 크기입니다. Content-Type이 multipart/form-data인 요청에만 적용됩니다. 서비스 거부 유형의 공격을 방지하고 힙 또는 디스크 공간이 가득 차는 것을 방지하는 데 사용됩니다. |
| multipart-request-max-size | 요청의 최대 크기입니다. Content-Type이 multipart/form-data인 요청에만 적용되며, 서비스 거부 유형의 공격을 방지하고 힙 또는 디스크 공간이 가득 차는 것을 방지하는 데 사용됩니다. |
| parameters-to-attributes | 속성으로 출력할 HTTP 매개변수 또는 폼 데이터의 쉼표로 구분된 목록입니다. |
관계
| 이름 | 설명 |
|---|---|
| success | 수신된 모든 콘텐츠는 'success' 관계로 라우팅됩니다. |
쓰기 속성
| 이름 | 설명 |
|---|---|
| http.context.identifier | HandleHttpRequest와 HandleHttpResponse가 어떤 FlowFile이 어떤 HTTP 요청/응답에 속하는지 조정할 수 있게 해주는 식별자입니다. |
| mime.type | HTTP 헤더 "Content-Type"에 따른 데이터의 MIME 타입입니다. |
| http.servlet.path | 요청 URL 중 Servlet Path로 간주되는 부분입니다. |
| http.context.path | 요청 URL 중 Context Path로 간주되는 부분입니다. |
| http.method | GET 또는 POST와 같이 요청에 사용된 HTTP 메서드입니다. |
| http.local.name | 서버의 IP 주소/호스트 이름입니다. |
| http.server.port | 서버의 수신 포트입니다. |
| http.query.string | 요청 URL의 쿼리 문자열 부분입니다. |
| http.remote.host | 요청자의 호스트 이름입니다. |
| http.remote.addr | 요청자의 호스트 이름:포트 조합입니다. |
| http.remote.user | 요청자의 사용자 이름입니다. |
| http.protocol | 통신에 사용된 프로토콜입니다. |
| http.request.uri | 전체 요청 URL입니다. |
| http.auth.type | 사용된 HTTP Authorization 유형입니다. |
| http.principal.name | 요청을 하는 인증된 사용자의 이름입니다. |
| http.query.param.XXX | 요청의 각 쿼리 매개변수가 "http.query.param." 접두사와 함께 속성으로 추가됩니다. |
| http.param.XXX | "Parameters to Attributes List"로 구성된 요청의 폼 매개변수가 "http.param." 접두사와 함께 속성으로 추가됩니다. 대용량 폼 매개변수를 넣는 것은 권장되지 않습니다. |
| http.subject.dn | 요청자의 Distinguished Name입니다. 프로세서가 SSLContext Service를 사용하도록 구성되지 않은 경우 이 값은 채워지지 않습니다. |
| http.issuer.dn | Subject의 인증서를 발급한 엔터티의 Distinguished Name입니다. 프로세서가 SSLContext Service를 사용하도록 구성되지 않은 경우 이 값은 채워지지 않습니다. |
| http.certificate.sans.N.name | mutual TLS 인증에서 가져온 X.509 클라이언트 인증서 Subject Alternative Name 값입니다. 속성 이름은 클라이언트 인증서 내용에 따라 0부터 시작하는 인덱스를 가집니다. |
| http.certificate.sans.N.nameType | mutual TLS 인증에서 가져온 X.509 클라이언트 인증서 Subject Alternative Name 유형입니다. RFC 3280 섹션 4.1.2.7의 General Names 중 하나입니다. |
| http.headers.XXX | 요청에서 수신된 각 HTTP 헤더가 "http.headers." 접두사와 함께 속성으로 추가됩니다. 예를 들어 요청에 "x-my-header"라는 HTTP 헤더가 있으면 값이 "http.headers.x-my-header"라는 속성에 추가됩니다. |
| http.headers.multipart.XXX | multipart 요청에서 수신된 각 HTTP 헤더가 "http.headers.multipart." 접두사와 함께 속성으로 추가됩니다. 예를 들어 multipart 요청에 "content-disposition"라는 HTTP 헤더가 있으면 값이 "http.headers.multipart.content-disposition"라는 속성에 추가됩니다. |
| http.multipart.size | Content-Type이 "multipart/form-data"인 요청의 경우 파트의 콘텐츠 크기가 이 속성에 기록됩니다. |
| http.multipart.content.type | Content-Type이 "multipart/form-data"인 요청의 경우 파트의 콘텐츠 유형이 이 속성에 기록됩니다. |
| http.multipart.name | Content-Type이 "multipart/form-data"인 요청의 경우 파트의 이름이 이 속성에 기록됩니다. |
| http.multipart.filename | Content-Type이 "multipart/form-data"인 요청에서 파트에 업로드된 파일이 포함된 경우 파일 이름이 이 속성에 기록됩니다. 파일은 "java.io.File" Java 문서에 명시된 기본 임시 파일 디렉터리에 임시로 저장됩니다. |
| http.multipart.fragments.sequence.number | Content-Type이 "multipart/form-data"인 요청의 경우 파트의 인덱스가 이 속성에 기록됩니다. 인덱스는 1부터 시작합니다. |
| http.multipart.fragments.total.number | Content-Type이 "multipart/form-data"인 요청의 경우 모든 파트의 수가 이 속성에 기록됩니다. |
참고 항목
org.apache.nifi.processors.standard.HandleHttpResponse