MS SQL Server 데이터베이스의 이벤트 트리거

5728 단어 databasesqlgraphql


event triggers in Hasura을 사용하면 데이터에 대한 사용자 정의 비즈니스 논리를 수행할 수 있습니다. 지정된 테이블에서 이벤트(삽입, 업데이트, 삭제)를 캡처한 다음 HTTP 웹후크를 호출하여 사용자 지정 비즈니스 논리를 실행합니다.

이 문서에서는 MS SQL Server 데이터베이스에서 이벤트 트리거를 사용하는 방법을 보여줍니다.

SQL 서버 데이터베이스



Hasura 애플리케이션을 만들기 전에 SQL Server 데이터베이스를 사용할 수 있어야 합니다. 또한 데이터베이스가 Hasura에 의해 도달 가능한지 확인하십시오.

Hasura 프로젝트의 IP 주소에서 연결할 수 있도록 데이터베이스 설정을 업데이트하십시오. 프로젝트 설정에서 IP 주소를 찾을 수 있습니다.



그런 다음 데이터베이스를 Hasura에 연결할 수 있습니다.

SQL Server 데이터베이스를 Hasura에 연결



새 Hasura 프로젝트를 만들고 프로젝트 콘솔을 시작합니다.



그런 다음 "Data Manager"로 이동하여 Hasura를 기존 SQL Server 데이터베이스에 연결합니다. 데이터베이스 이름을 선택하고 MS SQL Server를 선택한 다음 데이터베이스 URL을 입력합니다.

데이터베이스 URL의 형식은 다음과 같습니다.

Driver={ODBC Driver 17 for SQL Server};Server=tcp:<b>hasura-test.database.windows.net</b>,<b>1433</b>;Database=<b>db-name</b>;Uid=<b>username</b>;Pwd=<b>password</b>;Encrypt=yes;TrustServerCertificate=no;Connection Timeout=30;





데이터베이스를 연결한 후 다음 필드가 있는 user 테이블을 생성합니다.

  • "int"(기본 키) 유형의 id

  • "varchar(250)"유형의 name

  • "varchar(250)"유형의 email


  • id 필드를 기본 키로 선택하고 테이블을 저장합니다.

    데이터베이스 연결을 테스트할 시간입니다. GraphiQL 페이지로 이동하여 새 사용자를 데이터베이스에 삽입합니다. 다음은 사용할 수 있는 변형의 예입니다.

    mutation MyMutation {
      insert_user(objects: {id: 1, name: "Hasura User", email: "[email protected]"}) {
        affected_rows
        returning {
          id
          name
          email
        }
      }
    }
    
    


    변형이 성공하면 아래 이미지와 유사한 응답이 표시됩니다.



    Hasura 이벤트 트리거 설정



    이벤트 트리거를 사용하려면 Hasura가 호출할 수 있는 웹후크를 사용할 수 있어야 합니다. 이 경우 새 사용자에게 환영 이메일을 보내는 서버가 있다고 가정해 보겠습니다.

    새 사용자가 데이터베이스에 추가될 때마다 서버는 자동으로 해당 사용자에게 환영 이메일을 보냅니다.

    "이벤트"페이지로 이동하고 다음 세부 정보로 새 이벤트 트리거를 만듭니다.
  • 트리거 이름 - send_email
  • 데이터베이스 - default
  • 스키마/테이블 - public/users
  • 트리거 작업 - insert

  • "Webhook (HTTP/S) Handler"필드에 새 사용자가 데이터베이스에 삽입될 때 Hasura가 호출해야 하는 끝점을 입력합니다.



    이제 "REST 커넥터 구성"섹션이 보일 때까지 아래로 스크롤하고 "요청 옵션 변환 추가"버튼을 클릭합니다.

    그러면 요청 방법 및 URL 템플릿을 수정할 수 있는 새 섹션이 열립니다. 새로 만든 사용자의 이름과 이메일을 전달하도록 URL 템플릿을 변경해야 합니다.

    "Query Params"섹션에서 다음 매개변수를 추가합니다.
  • 이름-{{$body.event.data.new.name}}
  • 이메일 - {{$body.event.data.new.email}}



  • 새 이벤트 트리거를 저장하면 완료됩니다!

    이벤트 트리거 테스트



    이벤트 트리거를 테스트하려면 새 사용자를 데이터베이스에 삽입해야 합니다. GraphiQL 편집기에서 다음 변형을 실행합니다.

    mutation {
      insert_user(objects: {id: 2, name: "Charlie Kirby", email: "[email protected]"}) {
        affected_rows
        returning {
          id
          name
          email
        }
      }
    }
    
    


    그림은 작동 중인 돌연변이를 보여줍니다. 변형이 성공했으므로 이벤트 트리거는 웹후크를 호출하고 사용자는 환영 이메일을 받아야 합니다.



    이메일 수신함을 확인하면 사용자가 이메일을 수신했음을 확인합니다.



    "호출 로그"를 확인하여 이벤트 트리거가 성공했는지 여부를 확인할 수도 있습니다.



    이것은 SQL Server 데이터베이스에서 이벤트 트리거를 사용하는 한 가지 예일 뿐입니다. 자세한 내용은 Hasura 문서event triggers를 참조하십시오. 광범위한 섹션 커버링MS SQL Server도 있습니다.

    좋은 웹페이지 즐겨찾기