중요 참고: 이 블로그 게시물에는 Eventing의 개발자 프리뷰 CURL 함수에 대한 정보가 포함되어 있습니다. Couchbase Server 6.5에서 CURL 함수가 변경될 예정이니 다음을 참조하세요. 이벤트 서비스와 함께 cURL 사용하기: 업데이트 에서 자세한 내용을 확인하세요.
카우치베이스 이벤트 서비스는 다음과 같이 새롭게 제공됩니다. 카우치베이스 5.5에 대한 튜토리얼을 작성한 적이 있습니다. 민감한 정보 감지 및 알림 전송. 이전 튜토리얼에서 N1QL의 cURL 연산자를 사용하여 원격 서비스에 요청하는 방법을 보여드렸습니다. 하지만 N1QL을 사용하여 작업을 완료하고 싶지 않다면 어떻게 해야 할까요?
N1QL 대신 cURL 함수를 사용하여 요청을 하는 방법을 살펴보겠습니다. 이벤트 서비스.
현재 이벤트 기능은 개발자 프리뷰 버전이므로 기능이 변경될 수 있습니다. 하지만 어떤 기능을 사용할 수 있는지에 대한 아이디어는 얻을 수 있습니다.
컬 구조는 아직 개발 중이라는 점에 유의하세요. 이 기능은 개발용으로만 제공되며 프로덕션 환경에서는 사용해서는 안 됩니다.
사용할 API를 찾는 대신 이전 예제에서 했던 것과 비슷하게 Node.js를 사용하여 직접 만들겠습니다. API가 준비되면 새 문서가 생성되거나 변경될 때 트리거되는 함수를 Couchbase에 만들겠습니다.
요청 수신을 위한 Node.js API 만들기
이 튜토리얼의 초점은 Node.js가 아니기 때문에 API는 매우 간단할 것입니다. 데이터를 수신하고 동일한 데이터를 함수에 다시 반환하겠습니다.
컴퓨터에 새 디렉토리를 만들고 해당 디렉터리 내의 CLI에서 다음 명령을 실행합니다:
1 2 |
npm init -y npm 설치 express body-파서 --저장 |
위의 명령은 새로운 package.json 파일을 열고 Express 프레임워크와 요청 본문 수락용 모듈을 설치합니다. 종속성을 사용할 수 있는 상태에서 다음을 실행합니다:
1 |
터치 앱.js |
Windows를 사용하는 경우, 계속해서 app.js 파일을 원하는 대로 수정하세요.
새로 생성된 app.js 파일을 열고 다음 자바스크립트 코드를 포함합니다:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
const Express = require("express"); const 바디파서 = require("body-parser"); var 앱 = Express(); 앱.사용(바디파서.json()); 앱.사용(바디파서.urlencoded({ 확장: true })); 앱.post("/알림", (요청, 응답) => { 콘솔.로그("POST /알림"); 응답.보내기(요청.body); }); var 서버 = 앱.듣기(3000, () => { 콘솔.로그("듣기..."); }); |
앞서 언급한 것과 정확히 동일한 기능을 하는 단일 엔드포인트가 있습니다. 이 애플리케이션을 실행하면 포트 3000에서 서비스됩니다. 이 예제에서는 데이터베이스와 Node.js 애플리케이션이 모두 로컬에서 실행됩니다. 상황이 다른 경우 원격 호스트에서 Node.js 애플리케이션에 액세스할 수 있는지 확인하세요.
cURL을 지원하는 간단한 카우치베이스 함수 개발하기
이 예제에서는 함수를 매우 간단하게 만들겠습니다. 특정 데이터를 확인하지 않고 무언가가 생성 또는 변경되었는지 여부만 확인하겠습니다. 함수가 트리거되면 데이터를 Node.js 애플리케이션에 게시합니다.
에서 이벤트 섹션에서 올바른 버킷과 메타 정보 버킷을 매핑하는 새 함수를 만듭니다. 추가하려는 코드는 다음과 같습니다:
1 2 3 4 5 6 7 |
함수 온업데이트(doc, 메타) { 로그('document', doc); var 응답 = curl("http://localhost:3000/notify", { 메서드: "POST", 데이터: doc }); 로그('curl', 응답); } 함수 OnDelete(메타) { } |
우리는 curl
함수를 호출하고 요청 본문 및 메서드와 같은 몇 가지 옵션을 지정합니다. 원한다면 헤더나 권한 부여와 같은 다른 속성을 추가할 수도 있습니다.
새 문서를 추가하거나 문서를 변경해 보세요. 문서가 전송됩니다.
결론
방금 cURL 함수와 Couchbase Eventing 서비스를 사용하여 Couchbase 함수에서 원격 서비스로 데이터를 전송하는 방법을 살펴보았습니다. 이것은 제 이전 예제 N1QL을 사용하지 않기 때문입니다.
카우치베이스 이벤트 서비스에 대해 자세히 알아보려면 다음을 확인하세요. 카우치베이스 개발자 포털.