Azure Data Factory 솔루션의 소스 제어 관리

완료됨

기본적으로는 Azure Data Factory 사용자 인터페이스 환경(UX) 작성자는 데이터 팩터리 서비스에서 직접 작성합니다. 이 환경에는 다음과 같은 제한 사항이 있습니다.

  • Data Factory 서비스는 사용자의 변경 사항을 위한 JSON 엔터티를 저장하는 리포지토리를 포함하지 않습니다. 변경 내용을 저장하는 유일한 방법은 모두 게시 단추를 사용하는 것이며 모든 변경 내용은 데이터 팩터리 서비스에 직접 게시됩니다.
  • Data Factory 서비스는 협업 및 버전 제어에 최적화되어 있지 않습니다.

작성 환경을 개선하기 위해 Azure Data Factory를 사용하면 Azure Repos 또는 GitHub를 사용하여 Git 리포지토리를 구성할 수 있습니다. Git는 변경 내용 추적과 협업 환경을 개선할 수 있는 버전 제어 시스템입니다. 본 문서에서는 git 리포지토리에서 구성하고 작업하는 방법과 함께 모범 사례 및 문제 해결 가이드를 간략하게 설명합니다.

참고

Git 리포지토리가 구성되면 Azure Data Factory UX에서 Data Factory 서비스를 사용하여 직접 작성할 수 없습니다. PowerShell 또는 SDK를 통해 변경된 내용은 Data Factory 서비스에 직접 게시되며 Git에 입력되지 않습니다.

Git 통합의 장점

Git 통합이 작성 환경에 제공하는 일부 장점이 아래에 나열되어 있습니다.

  • 소스 제어: 데이터 팩터리 워크로드가 중요해지면서 팩터리를 Git에 통합하여 다음과 같은 여러 소스 제어 이점을 활용할 수 있습니다.
    • 변경 내용을 추적/감사할 수 있습니다.
    • 버그를 발생한 변경 내용을 되돌릴 수 있습니다.
  • 부분 저장: 데이터 팩터리 서비스에서 직접 작성하면 변경 내용을 초안으로 저장할 수 없으며 모든 게시는 데이터 팩터리 유효성 검사를 통과해야 합니다. 파이프라인이 완료되지 않았거나 컴퓨터 작동 중단 시 변경 내용을 잃지 않으려는 경우 git 통합을 사용하면 상태와 관계없이 데이터 팩터리 리소스를 점진적으로 변경할 수 있습니다. git 리포지토리를 구성하면 변경 사항을 저장하고 변경 사항을 만족스럽게 테스트한 경우에만 게시할 수 있습니다.
  • 협업 및 제어: 동일한 팩터리에 기여하는 팀 멤버가 여러 명인 경우에는 코드 검토 프로세스를 통해 팀원이 서로 협업하도록 할 수 있습니다. 일부 기여자는 다른 권한을 갖도록 팩터리를 설정할 수도 있습니다. 일부 팀 멤버는 Git를 통해서만 변경할 수 있고, 팀에서 특정 사용자만 팩터리에 변경 내용을 게시하도록 허용할 수 있습니다.
  • CI/CD 향상: 지속적인 업데이트 프로세스를 통해 여러 환경에 배포하는 경우 GIT 통합을 통해 특정 작업을 더 쉽게 수행할 수 있습니다. 이러한 작업 중 일부는 다음과 같습니다.
    • 'dev' 팩터리에 변경 사항이 생기는 즉시 자동으로 트리거되도록 릴리스 파이프라인을 구성합니다.
    • Resource Manager 템플릿에서 매개 변수로 사용할 수 있는 속성을 팩터리에서 사용자 지정합니다. 필수 속성 세트만 매개 변수로 유지하고 다른 모든 항목은 하드 코딩하면 유용할 수 있습니다.
  • 성능 향상: git 통합을 사용하는 평균 팩터리는 데이터 팩터리 서비스에서 작성하는 경우보다 10배 더 빨리 로드됩니다. 이러한 성능 향상은 리소스가 Git를 통해 다운로드되기 때문입니다.

Git 리포지토리에 연결

Azure Repos 및 GitHub 모두에 대한 데이터 팩터리에 Git 리포지토리를 연결하는 세 가지 방법이 있습니다. Git 리포지토리에 연결한 후 소스 제어 섹션의 Git 구성에 있는 관리 허브에서 구성을 보고 관리할 수 ​​있습니다.

구성 방법 1: 홈페이지

Azure Data Factory 홈페이지에서 코드 리포지토리 설정을 선택합니다.

Configure a code repository from home page

구성 방법 2: 제작 캔버스

Azure Data Factory UX 제작 캔버스에서 Data Factory 드롭다운 메뉴를 선택한 다음, 코드 리포지토리 설정을 선택합니다.

Configure the code repository settings from authoring

구성 방법 3: 관리 허브

Azure Data Factory UX의 관리 허브로 이동합니다. 소스 제어 섹션에서 Git 구성을 선택합니다. 연결된 리포지토리가 없는 경우 코드 리포지토리 설정을 클릭합니다.

Configure the code repository settings from management hub

버전 제어

원본 제어라고도 하는 버전 제어 시스템을 통해 개발자는 코드에 대해 공동 작업을 수행하고, 코드 베이스의 변경 내용을 추적할 수 있습니다. 소스 제어는 개발자가 여러 명인 프로젝트에 반드시 필요한 도구입니다.

기능 분기 만들기

데이터 팩터리와 연결된 각 Azure Repos Git 리포지토리에는 협업 분기가 생성됩니다. (main는 기본 협업 분기입니다). 분기 드롭다운에서 + 새 분기를 클릭하여 기능 분기를 만들 수도 있습니다. 새 분기 창이 나타나면 기능 분기의 이름을 입력합니다.

Create a new branch

기능 분기의 변경 내용을 협업 분기에 병합할 준비가 되면, 분기 드롭다운을 클릭하고 끌어오기 요청 만들기를 선택합니다. 이 작업을 통해 끌어오기 요청을 수행하고, 코드 검토를 수행하고, 협업 분기에 변경 내용을 병합할 수 있는 Azure Repos Git로 이동합니다. 협업 분기에서 Data Factory 서비스에 게시할 수만 있습니다.

Create a new pull request

게시 설정 구성

기본적으로 데이터 팩터리는 게시된 팩터리의 Resource Manager 템플릿을 생성하여 adf_publish라는 분기에 저장합니다. 사용자 지정 게시 분기를 구성하려면 협업 분기의 루트 폴더에 publish_config.json 파일을 추가합니다. 게시할 때 Azure Data Factory는 해당 파일을 읽고 publishBranch 필드를 찾은 후 모든 Resource Manager 템플릿을 지정된 위치에 저장합니다. 분기가 없으면 데이터 팩터리가 자동으로 만듭니다. 이 파일의 모양은 다음과 같습니다.

{
    "publishBranch": "factory/adf_publish"
}

Azure Data Factory는 게시 분기를 한 번에 하나만 포함할 수 있습니다. 새 게시 분기를 지정할 때 Data Factory는 이전 게시 분기를 삭제하지 않습니다. 이전 게시 분기를 제거하려는 경우에는 수동으로 해당 분기를 삭제합니다.

참고

Data Factory는 팩터리를 로드할 때만 publish_config.json 파일을 읽습니다. 포털에 팩터리가 이미 로드되어 있으면 브라우저를 새로 고쳐서 변경 내용을 적용합니다.

코드 변경 내용 게시

협업 분기에 대한 변경 내용을 병합한 후 게시를 클릭하여 협업 분기의 코드 변경 내용을 Data Factory 서비스에 수동으로 게시합니다.

Publish changes to the Data Factory service

사이드 창이 열리면 게시 분기 및 보류 중인 변경 사항이 올바른지 확인합니다. 변경 내용을 확인한 후 확인을 클릭하여 게시를 확인합니다.

Confirm the correct publish branch

Important

협업 분기는 Data Factory 서비스에 무엇이 배포되어 있는지 나타내지 않습니다. 협업 분기를 Data Factory 서비스에 “반드시” 수동으로 게시해야 합니다.

Git 통합에 대한 모범 사례

사용 권한

일반적으로 Data Factory를 업데이트할 권한이 모든 팀 멤버에게 필요하지는 않습니다. 다음과 같은 권한 설정을 사용하는 것이 좋습니다.

  • 모든 팀 멤버는 Data Factory에 대한 읽기 권한이 있어야 합니다.
  • 선택된 사용자 세트만 Data Factory에 게시할 수 있어야 합니다. 이렇게 하려면 해당 사용자에게 Data Factory를 포함하는 리소스 그룹에 대한 Data Factory 기여자 역할이 있어야 합니다.

협업 분기에 대한 직접 체크 인은 허용하지 않는 것이 좋습니다. 모든 체크 인은 끌어오기 요청 검토 프로세스를 거치기 때문에 이 제한은 버그를 방지하는 데 도움이 될 수 있습니다.

Azure Key Vault의 암호 사용

Azure Key Vault를 사용하여 Data Factory 연결된 서비스에 대한 연결 문자열이나 암호 또는 관리 ID 인증을 저장하는 것이 좋습니다. 보안상의 이유로 데이터 팩터리는 Git에 비밀을 저장하지 않습니다. 암호와 같은 비밀을 포함하는 연결된 서비스에 대한 변경 내용은 Azure Data Factory 서비스에 즉시 게시됩니다.

Key Vault 또는 MSI 인증을 사용해도 연속 통합과 배포가 쉬워집니다. Resource Manager 템플릿 배포 중에 비밀을 제공할 필요가 없기 때문입니다.

다른 Git 리포지토리로 전환

다른 Git 리포지토리로 전환하려면 소스 제어의 관리 허브에서 Git 구성 페이지로 이동합니다. 연결 끊기를 선택합니다.

Git icon

데이터 팩터리 이름을 입력하고 확인을 클릭하여 데이터 팩터리와 연결된 Git 리포지토리를 제거합니다.

Remove the association with the current Git repo

현재 리포지토리와 연결을 제거한 후에 다른 리포지토리를 사용하도록 Git 설정을 구성한 다음, 기존 Data Factory 리소스를 새 리포지토리로 가져올 수 있습니다.

중요

데이터 팩터리에서 Git 구성을 제거해도 리포지토리에서 아무것도 삭제되지 않습니다. 팩터리에 게시된 모든 리소스가 포함됩니다. 서비스에 대해 직접 팩터리를 계속 편집할 수 있습니다.