웹훅 싱크
워크플로 결과를 사용해 원격 API에 요청을 보냅니다.
이 웹훅 싱크 이 블록은 워크플로 결과를 포함한 HTTP 요청을 보내 워크플로에서 외부 API로 데이터를 전송할 수 있게 해줍니다.
이 블록의 작동 방식
여러 HTTP 메서드(GET, POST, PUT)를 지원하며 다음을 전송하도록 구성할 수 있습니다:
JSON 페이로드
쿼리 파라미터
멀티파트 인코딩 파일
이 블록은 데이터 교환, 알림 또는 기타 통합을 위해 워크플로를 원격 시스템과 연동할 수 있도록 유연성을 제공하도록 설계되었습니다.
쿼리 파라미터 설정
요청에 대한 쿼리 파라미터를 쉽게 설정할 수 있습니다:
query_parameters = {
"api_key": "$inputs.api_key",
}다음 URL로 요청을 보냅니다: https://your-host/some/resource?api_key=<API_KEY_VALUE>
헤더 설정
헤더 설정은 쿼리 파라미터 설정만큼 쉽습니다:
JSON 페이로드 전송
직접 구성한 JSON 문서를 메시지 본문으로 설정할 수 있으며, 다음을 지정합니다 json_payload 및 json_payload_operations 속성. json_payload 다음과 유사하게 작동합니다 query_parameters 및 headers하지만 JSON 본문 요소 위에 UQL 연산을 선택적으로 적용할 수 있습니다.
객체 탐지 모델이 예측한 바운딩 박스 수를 다음 이름의 본문 필드로 보내고 싶다고 가정해 보겠습니다: detections_number그러면 다음과 유사한 구성을 지정해야 합니다:
POST 요청에서의 멀티파트 인코딩 파일
엔드포인트가 multipart 요청도 받을 수 있습니다. JSON 페이로드와 비슷한 방식으로 구성할 수 있으며, 다음을 설정합니다 multi_part_encoded_files 및 multi_part_encoded_files_operations.
요청에 이미지를 보내고 싶다고 가정해 보겠습니다. 그러면 구성은 다음과 같을 수 있습니다:
쿨다운
이 블록은 다음을 허용합니다 cooldown_seconds (이는 기본값은 5 초) 원치 않는 알림 폭주를 방지합니다. 필요에 따라 조정하고, 0 쿨다운 없음으로 설정하세요.
쿨다운 기간 동안, 해당 단계가 연속으로 실행되면 throttling_status 출력이 설정됩니다 True 그리고 알림은 전송되지 않습니다.
쿨다운 제한 사항
현재 쿨다운 구현은 비디오 처리에만 제한됩니다. HTTP 서비스 뒤에서 실행되는 워크플로(Roboflow Hosted API, Dedicated Deployment 또는 자체 호스팅 inference 서버)에서 이 블록을 사용해도 HTTP 요청 처리에는 영향을 주지 않습니다.
비동기 실행
다음을 fire_and_forget 속성. 요청을 백그라운드에서 보내 워크플로가 데이터 전송을 기다리지 않고 계속 진행하도록 하려면 True로 설정합니다. 이 경우 다음에 의존할 수 없습니다 error_status 출력이며, 항상 다음으로 설정됩니다 False, 따라서 우리는 다음 설정을 권장합니다 fire_and_forget=False 디버깅 목적으로.
런타임 매개변수를 기반으로 알림 비활성화
때로는 다음을 수동으로 비활성화하는 것이 편리할 수 있습니다 웹훅 싱크 블록. 다음을 설정하면 가능합니다 disable_sink 플래그를 Workflow 입력에 대한 참조로 두는 것입니다. 이렇게 설정하면 호출자가 필요할 때 합의된 입력 매개변수를 보내 싱크를 비활성화할 수 있습니다.
일반적인 사용 사례
이 블록을 사용하여 [블록 유형에 따른 목적]
다른 블록에 연결하기
이 블록의 출력은 워크플로의 다른 블록에 연결할 수 있습니다.
유형 식별자
단계에서 다음 식별자를 사용하세요 "type" 필드: roboflow_core/webhook_sink@v1 워크플로우에 이 블록을 단계로 추가하려면.
속성
이름
유형
설명
참조
name
str
이 단계에 대한 고유 식별자를 입력하세요..
❌
url
str
요청을 보낼 리소스의 URL입니다.
✅
method
str
사용할 HTTP 메서드입니다.
❌
query_parameters
Dict[str, Union[List[Union[bool, float, int, str]], bool, float, int, str]]
요청 쿼리 파라미터입니다.
✅
headers
Dict[str, Union[bool, float, int, str]]
요청 헤더입니다.
✅
json_payload
Dict[str, Union[Dict[Any, Any], List[Any], bool, float, int, str]]
JSON 페이로드에 넣을 필드입니다.
✅
json_payload_operations
Dict[str, List[Union[ClassificationPropertyExtract, ConvertDictionaryToJSON, ConvertImageToBase64, ConvertImageToJPEG, DetectionsFilter, DetectionsOffset, DetectionsPropertyExtract, DetectionsRename, DetectionsSelection, DetectionsShift, DetectionsToDictionary, Divide, ExtractDetectionProperty, ExtractFrameMetadata, ExtractImageProperty, LookupTable, Multiply, NumberRound, NumericSequenceAggregate, PickDetectionsByParentClass, RandomNumber, SequenceAggregate, SequenceApply, SequenceElementsCount, SequenceLength, SequenceMap, SortDetections, StringMatches, StringSubSequence, StringToLowerCase, StringToUpperCase, TimestampToISOFormat, ToBoolean, ToNumber, ToString]]]
정의된 데이터에 대해 각 값별로 수행할 작업의 UQL 정의입니다 json_payload 파라미터.
❌
multi_part_encoded_files
Dict[str, Union[Dict[Any, Any], List[Any], bool, float, int, str]]
멀티파트 인코딩 파일로 POST할 데이터입니다.
✅
multi_part_encoded_files_operations
Dict[str, List[Union[ClassificationPropertyExtract, ConvertDictionaryToJSON, ConvertImageToBase64, ConvertImageToJPEG, DetectionsFilter, DetectionsOffset, DetectionsPropertyExtract, DetectionsRename, DetectionsSelection, DetectionsShift, DetectionsToDictionary, Divide, ExtractDetectionProperty, ExtractFrameMetadata, ExtractImageProperty, LookupTable, Multiply, NumberRound, NumericSequenceAggregate, PickDetectionsByParentClass, RandomNumber, SequenceAggregate, SequenceApply, SequenceElementsCount, SequenceLength, SequenceMap, SortDetections, StringMatches, StringSubSequence, StringToLowerCase, StringToUpperCase, TimestampToISOFormat, ToBoolean, ToNumber, ToString]]]
정의된 데이터에 대해 각 값별로 수행할 작업의 UQL 정의입니다 multi_part_encoded_files 파라미터.
❌
form_data
Dict[str, Union[Dict[Any, Any], List[Any], bool, float, int, str]]
폼 데이터에 넣을 필드입니다.
✅
form_data_operations
Dict[str, List[Union[ClassificationPropertyExtract, ConvertDictionaryToJSON, ConvertImageToBase64, ConvertImageToJPEG, DetectionsFilter, DetectionsOffset, DetectionsPropertyExtract, DetectionsRename, DetectionsSelection, DetectionsShift, DetectionsToDictionary, Divide, ExtractDetectionProperty, ExtractFrameMetadata, ExtractImageProperty, LookupTable, Multiply, NumberRound, NumericSequenceAggregate, PickDetectionsByParentClass, RandomNumber, SequenceAggregate, SequenceApply, SequenceElementsCount, SequenceLength, SequenceMap, SortDetections, StringMatches, StringSubSequence, StringToLowerCase, StringToUpperCase, TimestampToISOFormat, ToBoolean, ToNumber, ToString]]]
정의된 데이터에 대해 각 값별로 수행할 작업의 UQL 정의입니다 form_data 파라미터.
❌
request_timeout
정수
원격 API 응답을 기다릴 시간(초)입니다.
✅
fire_and_forget
bool
더 빠른 워크플로를 위해 블록을 비동기(True)로 실행할지, 디버깅 및 오류 처리를 위해 동기(False)로 실행할지 나타내는 불리언 플래그..
✅
disable_sink
bool
블록 실행을 비활성화하는 불리언 플래그..
✅
cooldown_seconds
정수
후속 알림을 보낼 수 있을 때까지 기다릴 시간(초)입니다..
✅
이 참조 열은 워크플로우 런타임에서 사용 가능한 동적 값으로 속성을 매개변수화할 수 있는 가능성을 나타냅니다 워크플로우 런타임입니다. 자세한 내용은 바인딩 을 참조하세요.
런타임 호환성
인터넷 필요 - 에어갭 / 오프라인 배포 : 이 블록은 완전히 오프라인 / 에어갭된 배포에서는 접근할 수 없는 서비스에 의존합니다.
소프트 - 런타임 호스팅 서버리스, 전용 배포; 실행 원격 : 쿨다운/속도 제한 타이머는 프로세스 메모리에 저장됩니다. 상태 비저장 또는 다중 복제본 HTTP 런타임에서 원격 단계 실행을 사용하면 각 요청이 새 작업자를 받으므로 쿨다운이 속도를 제한하지 않습니다. 쿨다운은 지속적인 WebRTC 세션에서 로컬 단계 실행을 사용할 때만 문서화된 대로 작동합니다.
입력 및 출력 바인딩
사용 가능한 연결은 바인딩 유형에 따라 달라집니다. 어떤 바인딩 유형인지 확인하세요 웹훅 싱크 버전 v1 을 가지고 있는지.
입력 및 출력 바인딩
입력
url(string): 요청을 보낼 리소스의 URL입니다.query_parameters(Union[roboflow_model_id,list_of_values,정수,string,float,boolean,roboflow_api_key,top_class,roboflow_project,0에서 1 사이의 실수]): 요청 쿼리 파라미터입니다.headers(Union[roboflow_model_id,정수,0에서 1 사이의 실수,string,float,roboflow_api_key,top_class,roboflow_project,boolean]): 요청 헤더입니다.json_payload(*): JSON 페이로드에 넣을 필드입니다.multi_part_encoded_files(*): 멀티파트 인코딩 파일로 POST할 데이터입니다.form_data(*): 폼 데이터에 넣을 필드입니다.request_timeout(정수): 원격 API 응답을 기다릴 시간(초)입니다.fire_and_forget(boolean): 더 빠른 워크플로를 위해 블록을 비동기(True)로 실행할지, 디버깅 및 오류 처리를 위해 동기(False)로 실행할지 나타내는 불리언 플래그..disable_sink(boolean): 블록 실행을 비활성화하는 불리언 플래그..cooldown_seconds(정수): 후속 알림을 보낼 수 있을 때까지 기다릴 시간(초)입니다..
마지막 업데이트
도움이 되었나요?