InvokeHTTP 프로세서
InvokeHTTP 프로세서
Openflow의 InvokeHTTP 프로세서는 구성 가능한 HTTP 엔드포인트와 상호 작용할 수 있는 HTTP 클라이언트 프로세서예요. 대상 URL과 HTTP 메서드를 구성할 수 있습니다.
출처: Snowflake 문서
본문
기능 — 일반 공급 (Generally Available)
Openflow Snowflake 배포는 AWS, Azure, GCP 상용(Commercial) 리전의 모든 계정에서 사용할 수 있어요. Openflow BYOC 배포는 AWS 상용 리전의 모든 계정에서 사용할 수 있습니다.
Bundle
org.apache.nifi | nifi-standard-nar
설명
구성 가능한 HTTP 엔드포인트와 상호 작용할 수 있는 HTTP 클라이언트 프로세서입니다. 대상 URL과 HTTP 메서드는 구성할 수 있습니다. HTTP 메서드가 PUT, POST 또는 PATCH인 경우 FlowFile 콘텐츠가 요청 본문으로 포함되고, FlowFile 속성은 구성 속성에 따라 선택적으로 HTTP 헤더로 변환됩니다.
태그
client, http, https, rest
입력 요구사항
허용 (ALLOWED)
민감한 동적 속성 지원
true
속성
| 이름 | 설명 |
|---|---|
| Connection Timeout | HTTP URL에 대한 초기 소켓 연결을 기다리는 최대 시간입니다. |
| HTTP Method | HTTP 요청 메서드(GET, POST, PUT, PATCH, DELETE, HEAD, OPTIONS)입니다. 임의의 메서드도 지원됩니다. POST, PUT, PATCH 이외의 메서드는 메시지 본문 없이 전송됩니다. |
| HTTP URL | http 또는 https의 scheme과 호스트 이름 또는 IP 주소(선택적 port와 path 포함)를 포함하는 HTTP 원격 URL입니다. URL 인코딩은 사용자가 직접 해야 합니다. |
| HTTP/2 Disabled | HTTP/2 프로토콜 협상을 비활성화합니다. HTTP/2는 TLS를 요구합니다. HTTP/2가 비활성화되면 HTTP/1.1 프로토콜 지원이 필요합니다. |
| OAuth2 Access Token Refresh Strategy | OAuth2 Access Token을 새로고침하는 데 사용할 전략을 지정합니다. |
| Request Body Enabled | PATCH, POST 또는 PUT 메서드에 대해 HTTP 요청 본문 전송을 활성화합니다. |
| Request Chunked Transfer-Encoding Enabled | Transfer-Encoding 헤더를 chunked로 설정하고 Content-Length 헤더 전송을 비활성화하는 HTTP 요청 전송을 활성화합니다. Transfer-Encoding은 RFC 7230 섹션 3.3.1에 설명된 대로 HTTP/1.1 요청의 본문에 적용됩니다. |
| Request Content-Encoding | 전송 중 요청 본문에 적용되는 HTTP Content-Encoding입니다. 요청 실패를 피하려면 수신 서버가 선택한 인코딩을 지원해야 합니다. |
| Request Content-Type | PATCH, POST 또는 PUT 메서드에 대해 HTTP 요청 본문을 보낼 때 적용되는 HTTP Content-Type 헤더입니다. 구성하지 않으면 Content-Type은 기본적으로 application/octet-stream입니다. |
| Request Date Header Enabled | RFC 7231 섹션 7.1.1.2에 설명된 대로 HTTP 요청에 HTTP Date 헤더 전송을 활성화합니다. |
| Request Digest Authentication Enabled | RFC 7616에 설명된 대로 Username 및 Password 자격 증명으로 HTTP 요청에 Digest Authentication을 활성화합니다. |
| Request Failure Penalization Enabled | HTTP 응답 상태 코드가 400~499 사이일 때 요청 FlowFile에 대한 페널티 부여를 활성화합니다. |
| Request Header Attributes Pattern | 요청에서 HTTP 헤더로 보낼 FlowFile 속성을 정의하는 정규식입니다. 정의하지 않으면 속성이 헤더로 전송되지 않습니다. 동적 속성은 항상 헤더로 전송됩니다. 동적 속성 이름이 헤더 키가 되고, Expression Language로 해석된 동적 속성 값이 헤더 값이 됩니다. HTTP 프로토콜 요구사항으로 인해 속성과 값은 ASCII 문자로 제한됩니다. |
| Request Multipart Form-Data Filename Enabled | multipart/form-data HTTP 요청의 Content-Disposition 헤더에서 filename 매개변수로 FlowFile filename 속성 전송을 활성화합니다. |
| Request Multipart Form-Data Name | 구성된 폼 이름을 사용하여 multipart/form-data로 형식화된 HTTP 요청 본문 전송을 활성화합니다. |
| Request OAuth2 Access Token Provider | Authorization Header를 사용하여 HTTP 요청에 적용되는 OAuth2 Bearer Token의 관리형 조회를 활성화합니다. |
| Request Password | HTTP 요청 인증을 위해 제공되는 비밀번호입니다. RFC 7617에 설명된 대로 HTTP Basic Authentication을 위해 Base64로 인코딩됩니다. |
| Request User-Agent | 요청에 적용되는 HTTP User-Agent 헤더입니다. RFC 7231 섹션 5.5.3에 권장 형식이 설명되어 있습니다. |
| Request Username | HTTP 요청 인증을 위해 제공되는 사용자 이름입니다. RFC 7617에 설명된 대로 HTTP Basic Authentication을 위해 Base64로 인코딩됩니다. |
| Response Body Attribute Name | Original 관계로 전송되는 FlowFile에 HTTP 응답 본문을 기록하는 데 사용되는 FlowFile 속성 이름입니다. |
| Response Body Attribute Size | HTTP 응답 본문을 FlowFile 속성에 기록할 때 적용되는 최대 크기(바이트)입니다. 최대값을 초과하는 속성은 잘립니다. |
| Response Body Ignored | Response 관계로 HTTP 응답 FlowFile 기록을 비활성화합니다. |
| Response Cache Enabled | RFC 7234에 설명된 HTTP 응답 캐싱을 활성화합니다. 캐싱은 ETag 및 기타 헤더를 고려합니다. |
| Response Cache Size | 바이트 단위의 HTTP 응답 캐시 최대 크기입니다. 캐싱은 ETag 및 기타 헤더를 고려합니다. |
| Response Cookie Strategy | HTTP 쿠키를 수락하고 유지하기 위한 전략입니다. 쿠키를 수락하면 여러 요청에 걸쳐 지속성이 활성화됩니다. |
| Response FlowFile Naming Strategy | Response 관계로 전송되는 FlowFile의 filename 속성 설정 전략을 결정합니다. |
| Response Generation Required | 수신된 HTTP 응답 상태 코드와 관계없이 Response 관계로 FlowFile 생성 및 전송을 활성화합니다. |
| Response Header Request Attributes Enabled | Original, Retry 또는 No Retry 관계로 전송되는 FlowFile에 HTTP 응답 헤더를 속성으로 추가하는 것을 활성화합니다. |
| Response Header Request Attributes Prefix | Original, Retry 또는 No Retry 관계로 전송되는 FlowFile에 속성으로 포함될 때 HTTP 응답 헤더에 대한 접두사입니다. '.' 또는 '-' 같은 구분 문자로 끝나는 것이 좋습니다. |
| Response Redirects Enabled | RFC 7231 섹션 6.4에 설명된 대로 HTTP 300 시리즈 응답으로 전송되는 HTTP 리디렉션을 따르는 것을 활성화합니다. |
| SSL Context Service | SSL Context Service는 TLS 통신을 위한 신뢰할 수 있는 인증서와 클라이언트 인증서를 제공합니다. |
| Socket Idle Connections | HTTP URL에 대한 최대 유휴(idle) 연결 수입니다. |
| Socket Idle Timeout | HTTP URL에 대한 유휴 연결을 닫기 전에 기다리는 최대 시간입니다. |
| Socket Read Timeout | HTTP URL에 대한 소켓 연결에서 응답을 받기 위해 기다리는 최대 시간입니다. |
| Socket Write Timeout | HTTP URL에 대한 소켓 연결에서 요청을 보내는 동안 쓰기 작업을 위해 기다리는 최대 시간입니다. |
| proxy-configuration-service | 네트워크 요청을 프록시할 Proxy Configuration 컨트롤러 서비스를 지정합니다. SOCKS의 경우 프로세서가 선택한 SOCKS 버전을 사용한다는 보장은 없습니다. |
관계
| 이름 | 설명 |
|---|---|
| Failure | 소켓 통신 오류가 발생했을 때 전송되는 요청 FlowFile입니다. |
| No Retry | HTTP 응답 상태 코드가 400~499 사이일 때 전송되는 요청 FlowFile입니다. |
| Original | HTTP 응답 상태 코드가 200~299 사이일 때 전송되는 요청 FlowFile입니다. |
| Response | HTTP 응답 상태 코드가 200~299 사이일 때 전송되는 응답 FlowFile입니다. [Response Generation Required]를 활성화하면 라우팅 동작이 바뀌어 실패한 응답도 각각의 관계로 보내고, 수신된 상태 코드와 관계없이 Response 관계로도 FlowFile을 보냅니다. |
| Retry | HTTP 응답 상태 코드가 500~599 사이일 때 전송되는 요청 FlowFile입니다. |
쓰기 속성
| 이름 | 설명 |
|---|---|
| invokehttp.status.code | 반환된 상태 코드입니다. |
| invokehttp.status.message | 반환된 상태 메시지입니다. |
| invokehttp.response.body | 수신된 상태 코드가 성공(2xx)이 아닌 경우 응답 본문이 요청 FlowFile의 'invokehttp.response.body' 속성에 저장됩니다. |
| invokehttp.request.url | 원래 요청 URL입니다. |
| invokehttp.request.duration | 외부 엔드포인트에 대한 HTTP 호출의 지속 시간(밀리초)입니다. |
| invokehttp.response.url | 리디렉션을 따른 후 최종적으로 요청된 URL입니다. |
| invokehttp.tx.id | 응답을 읽은 후 반환되는 트랜잭션 ID입니다. |
| invokehttp.remote.dn | 원격 서버의 DN입니다. |
| invokehttp.java.exception.class | 프로세서가 실패할 때 발생하는 Java 예외 클래스입니다. |
| invokehttp.java.exception.message | 프로세서가 실패할 때 발생하는 Java 예외 메시지입니다. |
| user-defined | 'Put Response Body In Attribute' 속성이 설정되면 그 값이 속성 키가 되고 값은 HTTP 응답 본문이 됩니다. |