다음을 통해 공유


앱에서 Kusto 쿼리 언어 지원과 Monaco 편집기 통합

모나코 편집기를 앱에 Kusto 쿼리 언어 지원(monaco-kusto)과 통합할 수 있습니다. monaco-kusto를 앱에 통합하면 완성, 색 지정, 리팩터링, 이름 바꾸기 및 정의로 이동과 같은 편집 환경을 제공합니다. 인증, 쿼리 실행, 결과 표시 및 스키마 탐색을 위한 솔루션을 빌드해야 합니다. 필요에 맞는 사용자 환경을 유연하게 구성할 수 있습니다.

이 문서에서는 Monaco 편집기에 monaco-kusto 를 추가하고 앱에 통합하는 방법을 알아봅니다. 패키지는 GitHubnpm에서 사용할 수 있습니다.

다음 단계를 사용하여 npm을 사용하여 monaco-kusto를 앱에 통합합니다.

1단계: monaco-kusto 패키지 설치

2단계: monaco-kusto 패키지를 사용하도록 앱 설정

3단계: 편집기에서 데이터베이스 스키마 추가

샘플 프로젝트와 통합해 보세요!

사전 요구 사항

monaco-kusto 패키지 설치

  1. Monaco Editor npm 패키지를 설치합니다.

    npm i monaco-editor
    

    참고

    네이티브 Monaco 편집기를 사용자 지정하려면 Monaco Editor GitHub 리포지토리를 참조하세요.

  2. monaco-kusto npm 패키지를 설치합니다.

    npm i @kusto/monaco-kusto
    

monaco-kusto 패키지를 사용하도록 앱 설정

다음 방법 중 하나를 사용하여 monaco-kusto 를 사용하도록 앱을 설정할 수 있습니다.

  1. index.html 파일과 같이 Monaco 편집기가 사용되는 페이지에 다음 HTML을 추가합니다. 패키지가 에 kusto-language-service있는 종속성으로 인해 필요합니다.

    <script src="%PUBLIC_URL%/monaco-editor/min/vs/language/kusto/bridge.min.js"></script>
    <script src="%PUBLIC_URL%/monaco-editor/min/vs/language/kusto/kusto.javascript.client.min.js"></script>
    <script src="%PUBLIC_URL%/monaco-editor/min/vs/language/kusto/newtonsoft.json.min.js"></script>
    <script src="%PUBLIC_URL%/monaco-editor/min/vs/language/kusto/Kusto.Language.Bridge.min.js"></script>
    
  2. monaco 및monaco-kusto 패키지의 정적 파일을 웹 서버의 monaco-editor 폴더에 복사합니다. 앱은 이러한 정적 파일에 액세스해야 합니다.

  3. 모나코를 사용하여 로드합니다. 예제는 샘플을 참조하세요.

편집기에서 데이터베이스 스키마 추가

monaco-kusto 패키지는 편집기에서 데이터베이스 스키마를 추가하는 방법을 제공합니다. 스키마를 사용하면 편집기에서 자동 완성 제안 및 기타 기능을 제공할 수 있습니다.

다음 구조를 사용하여 스키마를 정의합니다.

const schema = {... <YOUR_DATABASE_SCHEMA> ...};

export function setSchema(editor) {
  window.monaco.languages.kusto.getKustoWorker().then((workerAccessor) => {
    const model = editor.getModel();
    workerAccessor(model.uri).then((worker) => {
      //EITHER: Set schema from a show schema command
      // worker.setSchemaFromShowSchema(
      //     schema,
      //     clusterURI,
      //     database
      // );
      //OR: Set schema from a manually created schema
      // worker.setSchema(schema);
    });
  });
}

다음 방법 중 하나를 사용하여 데이터베이스 스키마를 가져올 수 있습니다.

  1. Azure Data Explorer 웹 UI의 왼쪽 메뉴에서 쿼리를 선택합니다.

  2. 스키마를 만들 데이터베이스를 선택합니다.

  3. 쿼리 창에서 다음 쿼리를 실행합니다.

    .show schema as json
    
  4. 쿼리 결과를 복사하여 스키마 상수로 붙여넣습니다. 쿼리 결과는 데이터베이스 목록입니다(schema.ts 파일의 인터페이스 Result 참조).

  5. 메서드를 setSchemaFromShowSchema() 사용하여 편집기에서 스키마를 설정합니다. 또한 편집기에서 사용할 클러스터 URI 및 데이터베이스 이름을 지정해야 합니다.

샘플 프로젝트

monaco-kusto 패키지를 사용하는 샘플 프로젝트를 찾을 수 있습니다. 샘플을 사용하려면 monaco-kusto GitHub 리포지토리를 복제합니다. 샘플/react 폴더에서 샘플을 찾을 수 있습니다.

샘플 프로젝트 설정 및 테스트

복제된 리포지토리의 루트에서 다음 명령을 실행합니다.

  1. 종속성을 설치하고 프로젝트를 빌드합니다.

    npm install
    
  2. 프로젝트가 작동하는지 확인합니다. 성공하면 index.html 열립니다.

    npm run watch