본문 바로가기
WIKI 기술 지식 베이스

Azure DevOps Discovery

원문 보기 위키 갱신

Azure DevOps 통합에는 Azure DevOps 안에서 카탈로그 엔티티를 발견하기 위한 특별한 엔티티 제공자가 있어요. 제공자는 Azure DevOps 조직을 크롤링해서 구성된 경로에 일치하는 엔티티를 등록해요. 이는 정적 위치를 쓰거나 카탈로그에 항목을 수동으로 추가하는 것의 대안으로 유용할 수 있어요.

출처: 문서

본문

Azure DevOps 통합에는 Azure DevOps 안에서 카탈로그 엔티티를 발견하기 위한 특별한 엔티티 제공자가 있어요. 제공자는 Azure DevOps 조직을 크롤링해서 구성된 경로에 일치하는 엔티티를 등록해요. 이는 정적 위치를 쓰거나 카탈로그에 항목을 수동으로 추가하는 것의 대안으로 유용할 수 있어요.

이 가이드에서는 Azure DevOps 엔티티 제공자(권장) 또는 Azure DevOps 프로세서를 설치하고 구성하는 방법을 설명해요.

종속성

Code Search 기능

Azure discovery는 Azure DevOps의 Code Search 기능에 의해 구동돼요. 이 기능은 기본으로 활성화되어 있지 않을 수 있어요. Azure DevOps Services의 경우 Organization Settings에서 설치된 확장을 확인하면 돼요. Azure DevOps Server의 경우 Collection Settings에서 이 정보를 찾을 수 있어요.

Code Search 확장이 목록에 없다면 Visual Studio Marketplace에서 설치할 수 있어요.

Azure 통합

host와 token으로 Azure 통합을 설정하세요. 클라우드 사용자는 host가 dev.azure.com이어야 하고, 그 외에는 온프레미스 호스트 이름을 설정하세요.

설치

구성에서 하나 이상의 제공자 구성을 추가해요.

app-config.yaml

catalog:  providers:    azureDevOps:      yourProviderId: # identifies your dataset / provider independent of config changes        organization: myorg        project: myproject        repository: service-* # this will match all repos starting with service-*        path: /catalog-info.yaml        schedule: # optional; same options as in SchedulerServiceTaskScheduleDefinition          # supports cron, ISO duration, "human duration" as used in code          frequency: { minutes: 30 }          # supports ISO duration, "human duration" as used in code          timeout: { minutes: 3 }      yourSecondProviderId: # identifies your dataset / provider independent of config changes        organization: myorg        project: '*' # this will match all projects        repository: '*' # this will match all repos        path: /catalog-info.yaml      anotherProviderId: # another identifier        organization: myorg        project: myproject        repository: '*' # this will match all repos        path: /src/*/catalog-info.yaml # this will search for files deep inside the /src folder      yetAnotherProviderId: # guess, what? Another one :)        host: selfhostedazure.yourcompany.com        organization: myorg        project: myproject        branch: development

사용 가능한 매개변수는 다음과 같아요.

  • host: (선택) 기본값은 dev.azure.com이며, 레거시 {org}.visualstudio.com 도메인이나 온프레미스 설치에 필요해요.

  • organization: 조직 슬러그(온프레미스 사용자는 Collection). 필수예요.

  • project: (필수) 프로젝트 슬러그. 위 예시와 같이 와일드카드를 지원해요. '*'를 사용하면 모든 프로젝트를 검색해요. 공백이 포함된 프로젝트 이름이라면 project: '\"My Project Name\"'처럼 따옴표를 사용하세요.

  • repository: (선택) 저장소 이름. 위 예시와 같이 와일드카드를 지원해요. 설정하지 않으면 모든 저장소를 검색해요.

  • path: (선택) catalog-info.yaml 파일을 찾을 위치. 기본값은 /catalog-info.yaml이에요.

  • branch: (선택) 사용할 브랜치 이름.

  • schedule:

  • frequency: 작업을 얼마나 자주 실행할지. 시스템은 호출이 겹치지 않도록 최선을 다해요.

  • timeout: 단일 작업 호출이 걸릴 수 있는 최대 시간.

  • initialDelay (선택): 첫 호출 전에 지나야 하는 시간.

  • scope (선택): 'global' 또는 'local'. 동시성 제어 범위를 설정해요.

note

  • path 매개변수는 Azure DevOps 웹 인터페이스의 검색과 같은 규칙을 따릅니다. 자세한 내용은 공식 검색 문서를 참고하세요.

  • branch 매개변수를 사용하려면 원하는 브랜치를 Azure DevOps Repositories 안의 "Searchable branches" 목록에 추가해야 합니다. 이렇게 하려면 아래 지침을 따르세요.

  • Azure DevOps에 접속해 브랜치를 추가할 저장소를 여세요.

  • 화면 왼쪽 아래의 "Settings"를 클릭하세요.

  • 왼쪽 내비게이션 바에서 "Options" 옵션을 선택하세요.

  • "Searchable branches" 섹션에서 "Add" 버튼을 클릭해 새 브랜치를 추가하세요.

  • 나타난 창에서 추가할 브랜치 이름을 입력하고 "Add"를 클릭하세요.

  • 이제 추가된 브랜치가 "Searchable branches" 목록에 나타납니다.

브랜치가 인덱싱되고 검색 가능해지기까지 시간이 걸릴 수 있어요.

이 제공자는 기본 제공자 중 하나가 아니므로 먼저 Azure 카탈로그 플러그인을 설치해야 해요.

Backstage 루트 디렉터리에서

yarn --cwd packages/backend add @backstage/plugin-catalog-backend-module-azure

그런 다음 다음 줄을 추가해 백엔드를 업데이트하세요.

packages/backend/src/index.ts

backend.add(import('@backstage/plugin-catalog-backend'));backend.add(import('@backstage/plugin-catalog-backend-module-azure'));

더 알아보기 (Learn more)