Share via


Azure Data Factory에서 파이프라인을 실행하는 사용자 지정 이벤트 트리거 만들기

적용 대상: Azure Data Factory Azure Synapse Analytics

기업용 올인원 분석 솔루션인 Microsoft Fabric의 Data Factory를 사용해 보세요. Microsoft Fabric은 데이터 이동부터 데이터 과학, 실시간 분석, 비즈니스 인텔리전스 및 보고에 이르기까지 모든 것을 다룹니다. 무료로 새 평가판을 시작하는 방법을 알아봅니다!

EDA(이벤트 기반 아키텍처)는 프로덕션, 검색, 소비 및 이벤트에 대한 응답이 포함된 일반적인 데이터 통합 패턴입니다. 데이터 통합 시나리오에서는 Azure Data Factory 고객이 특정 이벤트가 발생할 때 파이프라인을 트리거해야 하는 경우가 많습니다. Azure Event Grid와 Data Factory의 기본 통합은 이제 사용자 지정 토픽을 다룹니다. 이벤트를 Event Grid 토픽에 보냅니다. Data Factory는 토픽을 구독하고, 수신 대기한 다음, 그에 따라 파이프라인을 트리거합니다.

참고 항목

이 문서에서 설명하는 통합은 Azure Event Grid에 따라 달라집니다. 구독이 Event Grid 리소스 공급자에 등록되어 있는지 확인합니다. 자세한 내용은 리소스 공급자 및 형식을 참조하세요. Microsoft.EventGrid/eventSubscriptions/ 작업을 수행할 수 있어야 합니다. 이 작업은 EventGrid EventSubscription 기여자 기본 제공 역할의 일부입니다.

Important

Azure Synapse Analytics에서 이 기능을 사용하는 경우 구독도 Data Factory 리소스 공급자에 등록되었는지 확인하세요. 그렇지 않으면 "이벤트 구독" 생성에 실패했다는 오류가 발생합니다.

파이프라인 매개 변수와 사용자 지정 이벤트 트리거를 결합하면 파이프라인 실행에서 사용자 지정 data 페이로드를 구문 분석하고 참조할 수 있습니다. 사용자 지정 이벤트 페이로드의 data 필드는 자유 형식의 JSON 키-값 구조이므로 이벤트 기반 파이프라인 실행을 제어할 수 있습니다.

Important

매개 변수화에서 참조된 키가 사용자 지정 이벤트 페이로드에 없으면 trigger run이 실패합니다. keyName 속성이 없으므로 식을 평가할 수 없다는 오류가 발생합니다. 이 경우 이벤트에서 pipeline run이 트리거되지 않습니다.

Event Grid에서 사용자 지정 토픽 설정

Data Factory에서 사용자 지정 이벤트 트리거를 사용하려면 먼저Event Grid에서 사용자 지정 토픽을 설정해야 합니다.

Azure Event Grid로 이동하여 토픽을 직접 만듭니다. 사용자 지정 토픽을 만드는 방법에 대한 자세한 내용은 Azure Event Grid 포털 자습서CLI 자습서를 참조하세요.

참고 항목

워크플로는 스토리지 이벤트 트리거와 다릅니다. 여기서 Data Factory는 토픽을 설정하지 않습니다.

Data Factory는 이벤트에서 Event Grid 이벤트 스키마를 따른다고 예상합니다. 다음 필드가 이벤트 페이로드에 있어야 합니다.

[
  {
    "topic": string,
    "subject": string,
    "id": string,
    "eventType": string,
    "eventTime": string,
    "data":{
      object-unique-to-each-publisher
    },
    "dataVersion": string,
    "metadataVersion": string
  }
]

Data Factory를 사용하여 사용자 지정 이벤트 트리거 만들기

  1. Azure Data Factory로 이동하여 로그인합니다.

  2. 편집 탭으로 전환합니다. 연필 아이콘을 찾습니다.

  3. 메뉴에서 트리거를 선택한 다음, 새로 만들기/편집을 선택합니다.

  4. 트리거 추가 페이지에서 트리거 선택, 새로 만들기를 차례로 선택합니다.

  5. 유형에 대해 사용자 지정 이벤트를 선택합니다.

    Screenshot of Author page to create a new custom event trigger in Data Factory UI.

  6. Azure 구독 드롭다운에서 사용자 지정 토픽을 선택하거나 이벤트 토픽 범위를 수동으로 입력합니다.

    참고 항목

    Data Factory에서 사용자 지정 이벤트 트리거를 만들거나 수정하려면 적절한 역할 기반 액세스 제어(Azure RBAC)가 있는 Azure 계정을 사용해야 합니다. 추가 권한이 필요하지 않습니다. Data Factory 서비스 주체에는 Event Grid에 대한 특별한 권한이 필요하지 않습니다. 액세스 제어에 대한 자세한 내용은 역할 기반 액세스 제어를 참조하세요.

  7. 제목 시작 문자제목 종료 문자 속성을 사용하면 트리거 이벤트를 필터링할 수 있습니다. 두 속성 모두 선택 사항입니다.

  8. +새로 만들기를 사용하여 필터링할 이벤트 유형을 추가합니다. 사용자 지정 이벤트 트리거 목록에서는 OR 관계를 사용합니다. 목록에 있는 것과 일치하는 eventType 속성이 있는 사용자 지정 이벤트가 발생하면 파이프라인 실행이 트리거됩니다. 이벤트 형식은 대/소문자를 구분하지 않습니다. 예를 들어 다음 스크린샷에서 트리거는 factories로 시작하는 제목이 있는 모든 copycompleted 또는 copysucceeded 이벤트와 일치합니다.

    Screenshot of Edit Trigger page to explain Event Types and Subject filtering in Data Factory UI.

  9. 사용자 지정 이벤트 트리거는 사용자 지정 data 페이로드를 구문 분석하고 파이프라인에 보낼 수 있습니다. 파이프라인 매개 변수를 만든 다음, 매개 변수 페이지에서 값을 입력합니다. @triggerBody().event.data._keyName_ 형식을 사용하여 데이터 페이로드를 구문 분석하고, 값을 파이프라인 매개변수에 전달합니다.

    자세한 설명은 다음 문서를 참조하세요.

    Screenshot of pipeline parameters settings.

    Screenshot of the parameters page to reference data payload in custom event.

  10. 매개 변수가 입력되면 확인을 선택합니다.

고급 필터링

사용자 지정 이벤트 트리거는 Event Grid 고급 필터링과 유사한 고급 필터링 기능을 지원합니다. 이러한 조건부 필터를 사용하면 이벤트 페이로드의 을 기반으로 파이프라인을 트리거할 수 있습니다. 예를 들어 이벤트 페이로드에 Department라는 필드가 있을 수 있으며 파이프라인은 DepartmentFinance와 동일한 경우에만 트리거되어야 합니다. 목록 [1, 2, 3, 4, 5]의 date 필드, 목록 [11 , 12]가 아닌month 필드, ['Fiscal Year 2021', 'FiscalYear2021', 'FY2021'] 중 하나를 포함하는 tag 필드와 같은 복잡한 논리를 지정할 수도 있습니다.

Screenshot of setting advanced filters for customer event trigger

현재 사용자 지정 이벤트 트리거는 Event Grid에서 고급 필터링 연산자하위 집합을 지원합니다. 다음 필터 조건이 지원됩니다.

  • NumberIn
  • NumberNotIn
  • NumberLessThan
  • NumberGreaterThan
  • NumberLessThanOrEquals
  • NumberGreaterThanOrEquals
  • BoolEquals
  • StringContains
  • StringBeginsWith
  • StringEndsWith
  • StringIn
  • StringNotIn

+새로 만들기를 선택하여 새 필터 조건을 추가합니다.

또한 사용자 지정 이벤트 트리거는 다음을 포함하여 Event Grid와 동일한 제한을 따릅니다.

  • 사용자 지정 이벤트 트리거당 모든 필터에서 5개의 고급 필터 및 25개의 필터 값
  • 문자열 값당 512자
  • in 및 not in 연산자에 대한 5개의 값
  • 키에서는 .(점) 문자를 사용할 수 없습니다(예: john.doe@contoso.com). 현재까지는 키에서 이스케이프 문자가 지원되지 않습니다.
  • 둘 이상의 필터에 동일한 키를 사용할 수 있습니다.

Data Factory는 최신 GA 버전의 Event Grid API를 사용합니다. 새 API 버전이 GA 단계가 되면 Data Factory는 추가 고급 필터링 연산자를 위해 지원을 확장합니다.

JSON 스키마

다음 표에는 사용자 지정 이벤트 트리거와 관련된 스키마 요소의 개요가 나와 있습니다.

JSON 요소 설명 Type 허용된 값 필수
scope Event Grid 토픽의 Azure Resource Manager 리소스 ID입니다. 문자열 Azure Resource Manager ID
events 이 트리거를 발생시키는 이벤트 유형입니다. 문자열 배열 예, 하나 이상의 값이 필요합니다.
subjectBeginsWith subject 필드는 트리거를 발생시키는 제공된 패턴으로 시작해야 합니다. 예를 들어 factoriesfactories로 시작하는 이벤트 주체에 대해서만 트리거를 발생시킵니다. 문자열 아니요
subjectEndsWith subject 필드는 트리거를 발생시키는 제공된 패턴으로 끝나야 합니다. 문자열 아니요
advancedFilters 각각 필터 조건을 지정하는 JSON Blob 목록입니다. 각 Blob은 key, operatorTypevalues를 지정합니다. JSON Blob 목록 아니요

역할 기반 액세스 제어

Azure Data Factory는 Azure RBAC(역할 기반 액세스 제어)를 사용하여 무단 액세스를 금지합니다. 제대로 작동하려면 Data Factory에 다음과 같은 액세스 권한이 필요합니다.

  • 이벤트를 수신 대기합니다.
  • 이벤트의 업데이트를 구독합니다.
  • 사용자 지정 이벤트에 연결된 파이프라인을 트리거합니다.

사용자 지정 이벤트 트리거를 성공적으로 만들거나 업데이트하려면 적절한 액세스 권한이 있는 Azure 계정으로 Data Factory에 로그인해야 합니다. 그렇지 않으면 액세스 거부 오류로 인해 작업이 실패합니다.

Data Factory에는 Event Grid에 대한 특별한 권한이 필요하지 않습니다. 또한 특별한 Azure RBAC 역할 권한을 작업에 대한 Data Factory 서비스 주체에 할당할 필요가 없습니다.

특히 /subscriptions/####/resourceGroups//####/providers/Microsoft.EventGrid/topics/someTopics에 대한 Microsoft.EventGrid/EventSubscriptions/Write 권한이 필요합니다.

  • 예를 들어 개발 환경에서 데이터 팩터리를 작성하는 경우 로그인한 Azure 계정에는 위의 권한이 있어야 합니다.
  • CI/CD를 통해 게시할 때 ARM 템플릿을 테스트 또는 프로덕션 팩터리에 게시하는 데 사용되는 계정에는 위의 권한이 있어야 합니다.