지속성 작업 스케줄러 대시보드를 사용하여 오케스트레이션 디버그 및 관리

지속성 작업 스케줄러 대시보드를 사용하면 실행 중인 오케스트레이션을 관찰하고, 실행 기록 및 활동 입력/출력을 검사하고, 브라우저에서 오케스트레이션 수명 주기(일시 중지, 다시 시작, 종료)를 관리할 수 있습니다.

대시보드는 다음 두 가지 환경에서 사용할 수 있습니다.

Environment URL Authentication
로컬 에뮬레이터 http://localhost:8082 필요한 항목 없음
Azure https://dashboard.durabletask.io/?endpoint=<SCHEDULER_ENDPOINT>&taskhub=<TASK_HUB_NAME> 지속성 작업 데이터 기여자 역할이 필요합니다.

에뮬레이터에 대한 자세한 내용은 로컬 개발에 대한 에뮬레이터를 참조하세요.

이 문서에서는 다음 방법을 알아봅니다.

  • 로컬 또는 Azure 대시보드에 액세스합니다.
  • 지속성 작업 데이터 기여자 역할을 개발자 ID에 할당합니다.
  • 오케스트레이션 상태를 모니터링하고, 인스턴스를 필터링하고, 실행 기록을 검사합니다.
  • 오케스트레이션을 관리합니다(일시 중지, 다시 시작, 종료, 이벤트 발생).

사전 요구 사항

시작하기 전에 다음을 수행하십시오.

로컬로 대시보드 액세스

지속성 작업 스케줄러 에뮬레이터를 사용하는 경우 대시보드는 다음 위치에서 사용할 수 있습니다.

http://localhost:8082

로컬 개발에는 인증 또는 역할 할당이 필요하지 않습니다.

대시보드 액세스 역할 할당(Azure)

Azure 호스팅 스케줄러에 대한 대시보드에 액세스하려면 구성 가능한 작업 데이터 기여자 역할을 개발자 ID(이메일)에 할당합니다.

  1. 개발자 ID로 담당자를 설정합니다.

    assignee=$(az ad user show --id "someone@microsoft.com" --query "id" --output tsv)
    
  2. 범위를 설정합니다. 스케줄러 범위에 대한 액세스 권한을 부여하면 해당 스케줄러의 모든 작업 허브에 액세스할 수 있습니다.

    작업 허브

    scope="/subscriptions/SUBSCRIPTION_ID/resourceGroups/RESOURCE_GROUP/providers/Microsoft.DurableTask/schedulers/SCHEDULER_NAME/taskHubs/TASK_HUB_NAME"
    

    Scheduler

    scope="/subscriptions/SUBSCRIPTION_ID/resourceGroups/RESOURCE_GROUP/providers/Microsoft.DurableTask/schedulers/SCHEDULER_NAME"
    
  3. 액세스 권한을 부여합니다. 다음 명령을 실행하여 역할 할당을 만들고 액세스 권한을 부여합니다.

    az role assignment create \
      --assignee "$assignee" \
      --role "Durable Task Data Contributor" \
      --scope "$scope"
    

    예상 출력

    다음 출력 예제에서는 스케줄러 수준에서 지속성 작업 데이터 기여자 역할로 할당된 개발자 ID를 보여줍니다.

    {
      "condition": null,
      "conditionVersion": null,
      "createdBy": "YOUR_DEVELOPER_CREDENTIAL_ID",
      "createdOn": "2024-12-20T01:36:45.022356+00:00",
      "delegatedManagedIdentityResourceId": null,
      "description": null,
      "id": "/subscriptions/YOUR_SUBSCRIPTION_ID/resourceGroups/YOUR_RESOURCE_GROUP/providers/Microsoft.DurableTask/schedulers/YOUR_DTS_NAME/providers/Microsoft.Authorization/roleAssignments/ROLE_ASSIGNMENT_ID",
      "name": "ROLE_ASSIGNMENT_ID",
      "principalId": "YOUR_DEVELOPER_CREDENTIAL_ID",
      "principalName": "YOUR_EMAIL",
      "principalType": "User",
      "resourceGroup": "YOUR_RESOURCE_GROUP",
      "roleDefinitionId": "/subscriptions/YOUR_SUBSCRIPTION/providers/Microsoft.Authorization/roleDefinitions/ROLE_DEFINITION_ID",
      "roleDefinitionName": "Durable Task Data Contributor",
      "scope": "/subscriptions/YOUR_SUBSCRIPTION/resourceGroups/YOUR_RESOURCE_GROUP/providers/Microsoft.DurableTask/schedulers/YOUR_DTS_NAME",
      "type": "Microsoft.Authorization/roleAssignments",
      "updatedBy": "YOUR_DEVELOPER_CREDENTIAL_ID",
      "updatedOn": "2024-12-20T01:36:45.022356+00:00"
    }
    
  4. 액세스 권한을 부여한 후 다음 위치에서 대시보드를 엽니다.

    https://dashboard.durabletask.io/?endpoint=<SCHEDULER_ENDPOINT>&taskhub=<TASK_HUB_NAME>
    

    스케줄러의 엔드포인트(<SCHEDULER_ENDPOINT>)와 작업 허브의 이름(https://myscheduler.westus2.durabletask.io)을 <TASK_HUB_NAME>와 바꾸십시오.

    또는 https://dashboard.durabletask.io/로 이동하여 연결 양식에 스케줄러 엔드포인트와 작업 허브 이름을 입력하세요.

메모

다음 명령은 특정 작업 허브로 범위가 지정된 역할 할당을 보여 줍니다. 스케줄러의 모든 작업 허브에 액세스해야 하는 경우 스케줄러 수준에서 할당을 수행합니다.

  1. 포털에서 지속성 작업 스케줄러 리소스로 이동합니다.

  2. 작업 허브 이름을 클릭합니다.

  3. 왼쪽 메뉴에서 액세스 제어(IAM)를 선택합니다.

  4. 추가를 클릭하여 역할 할당을 추가합니다.

    포털의 액세스 제어 창에서 역할 할당을 추가하는 스크린샷

  5. 내구성 있는 작업 데이터 기여자를 검색하여 선택합니다. 다음을 클릭합니다.

    포털에서 지속성 작업 데이터 기여자 역할 할당을 선택하는 스크린샷

  6. 멤버 탭의 액세스 할당에서 사용자, 그룹 또는 서비스 주체를 선택합니다.

  7. 구성원의 경우 + 구성원 선택을 클릭합니다.

  8. 구성원 선택 창에서 이름 또는 전자 메일을 검색합니다.

    포털에서 사용자 할당 관리 ID 유형을 선택하는 스크린샷.

  9. 전자 메일을 선택하고 선택 단추를 클릭합니다.

  10. 검토 + 할당을 클릭하여 역할 할당을 완료합니다.

  11. 역할이 할당되면 작업 허브 리소스의 왼쪽 메뉴에서 개요 를 클릭하고 최상위 Essentials 섹션에 있는 대시보드 URL로 이동합니다.

대시보드를 통해 작업 허브 모니터링

대시보드를 사용하면 오케스트레이션 진행률을 모니터링하고 실행 기록을 검토할 수 있습니다. 대시보드 홈페이지에서 작업 허브의 오케스트레이션, 엔터티, 일정, 작업자 및 메트릭 및 AI 에이전트(현재 미리 보기)를 찾을 수 있습니다.

오케스트레이션 개요 창

오케스트레이션을 보려면 작업 허브 이름이나 사이드 메뉴의 오케스트레이션을 클릭하세요.

작업 허브, 오케스트레이션 기록, 엔터티, 일정, 작업자, 메트릭 및 AI 에이전트에 대한 링크가 있는 대시보드 홈페이지의 스크린샷

오케스트레이션 개요 창에서 다음을 수행할 수 있습니다.

  • 오케스트레이션 인스턴스 목록을 검토합니다.
  • 검색 창 또는 필터를 통해 오케스트레이션의 범위를 좁힐 수 있습니다.
  • 새 오케스트레이션을 만듭니다.
  • 공유 가능한 링크를 대시보드에 복사합니다.
  • 오케스트레이션 목록의 자동 새로 고침 간격을 설정합니다.

오케스트레이션이 나열된 대시보드의 스크린샷.

오케스트레이션 정보는 다음과 같은 기본 열과 함께 제공됩니다.

카테고리 Description
인스턴스 ID 고유 ID로 특정 오케스트레이션 인스턴스를 검색합니다.
Name 오케스트레이션 형식 이름으로 필터링합니다.
상태 런타임 상태(실행 중, 완료됨, 실패, 종료됨, 보류 중, 일시 중단됨)로 필터링합니다.
태그들 오케스트레이션 인스턴스에 적용된 태그를 필터링합니다.
생성됨 오케스트레이션을 만든 날짜 및 시간입니다.

다음 조건을 사용하여 오케스트레이션 목록을 필터링할 수 있습니다.

필터 옵션이 있는 대시보드 목록 오케스트레이션 기록 및 상태의 스크린샷.

카테고리 Description
오케스트레이션 이름 오케스트레이션 형식 이름으로 필터링합니다.
런타임 상태 런타임 상태(실행 중, 완료됨, 실패, 종료됨, 보류 중, 일시 중단됨)로 필터링합니다.
태그 필터 태그 키 또는 값으로 오케스트레이션을 검색합니다.
생성 시작일/생성 종료일 결과를 시간 창으로 좁힐 수 있습니다.

다음을 통해 오케스트레이션 목록 새로 고침을 트리거합니다.

  • 수동 새로 고침에 대한 새로 고침 아이콘을 클릭합니다.

  • 자동을 전환하고 간격을 선택하여 자동으로 목록을 새로 고칩니다.

    자동 새로 고침 토글 및 수동 새로 고침 아이콘의 스크린샷

새 오케스트레이션 만들기

지속성 작업 스케줄러 대시보드에서 새 오케스트레이션을 만들 수 있습니다.

  1. 오케스트레이션 개요 창에서 + 새 오케스트레이션을 클릭합니다.

  2. 새 오케스트레이션 양식에 정보를 입력합니다.

    새 오케스트레이션 만들기 양식의 스크린샷

    Field Description
    오케스트레이션 이름 드롭다운에서 오케스트레이션을 선택하거나 사용자 지정 오케스트레이션 이름을 입력합니다.
    인스턴스 ID Optional. 인스턴스 ID는 자동으로 생성됩니다. 직접 만들든 자동 생성하든 관계없이 인스턴스 ID는 ASCII 형식입니다.
    버전 Optional. 해당 버전 번호를 입력합니다.
    입력 Optional. JSON 형식으로 입력을 입력합니다.
    예약된 시작 Optional. 오케스트레이션의 시작 날짜 및 시간을 선택합니다.
    태그들 Optional. 오케스트레이션과 연결된 키 및/또는 값 태그를 입력합니다.
  3. 만들기를 클릭합니다.

    목록에서 새 오케스트레이션을 볼 수 있습니다.

오케스트레이션 세부 정보

오케스트레이션 인스턴스를 클릭하여 문제를 진단하거나 오케스트레이션 상태를 파악합니다.

타임라인, 기록흐름 탭을 사용하여 실행 세부 정보 및 활동 진행률을 볼 수 있습니다. 타임라인 탭은 기본적으로 열려 있습니다.

  • 타임라인 탭에는 실행 중인 오케스트레이션의 간격이 표시됩니다.

    오케스트레이션 실행 타임라인의 스크린샷.

    활동을 선택하여 해당 입력 및 출력을 봅니다.

    활동의 입력, 출력 및 상태를 볼 수 있는 창의 스크린샷.

  • 기록 탭은 타임스탬프가 포함된 오케스트레이션의 모든 이벤트 피드를 제공합니다.

    개별 오케스트레이션의 이벤트 기록을 보여 주는 대시보드의 스크린샷.

  • 흐름 탭은 오케스트레이션의 실행 흐름을 시각적으로 그립니다.

    개별 오케스트레이션의 이벤트 흐름 스크린샷

    보기를 클릭하여 활동의 입력 및 출력을 볼 수도 있습니다.

    흐름 보기를 통해 활동의 입력, 출력 및 상태를 볼 수 있는 창의 스크린샷.

오케스트레이션 관리

대시보드를 통해 오케스트레이션 수명 주기를 관리할 수 있습니다. 오케스트레이션 창에서 인스턴스 ID를 선택하여 다음 작업에 액세스합니다.

오케스트레이션을 관리하기 위한 제거, 다시 시작, 종료, 일시 중단 및 다시 시작 단추를 보여 주는 대시보드의 스크린샷

  • 재개: 이전에 일시 중단된 오케스트레이션을 재개합니다.
  • 일시 중단: 실행 중인 오케스트레이션을 일시 중지합니다. 메모리에 남아 있지만 다시 시작될 때까지 이벤트 처리를 중지합니다.
  • 다시 시작: 이전에 실행 중이던 오케스트레이션을 다시 시작합니다.
  • 종료: 선택적 이유 문자열을 사용하여 오케스트레이션을 즉시 중지합니다.
  • 제거: 오케스트레이션 인스턴스를 제거합니다.

이벤트 발생 작업에 액세스하려면 개별 오케스트레이션으로 이동합니다. 이 작업은 명명된 외부 이벤트(선택적 JSON 페이로드 포함)를 실행 또는 일시 중단된 오케스트레이션에 보냅니다.

오케스트레이션을 관리하기 위한 제거, 다시 시작, 종료 및 이벤트 발생 단추를 보여 주는 대시보드의 스크린샷.

엔터티

왼쪽 메뉴에서 엔터티 를 선택하여 만든 엔터티를 봅니다.

생성한 엔터티와 해당 엔터티를 관리하는 몇 가지 도구의 스크린샷

목록에서 개별 엔터티를 클릭하여 세부 정보를 봅니다. 여기에서 다음을 검토할 수 있습니다.

  • 마지막으로 수정되었을 때
  • 마지막 작업이 실행된 경우
  • 잠겨 있는지 여부 및 잠근 사람
  • 해당 백로그의 크기
  • JSON 또는 원시 코드의 엔터티 상태

지속성 작업 스케줄러 대시보드에서 추적되는 개별 엔터티의 스크린샷

엔터티에 신호를 보낼 수도 있습니다. 오른쪽 위 모서리에서 신호를 클릭하고 신호 메시지를 만듭니다.

개별 개체에 신호를 보내는 창의 스크린샷.

에이전트(미리 보기)

메모

지속성 작업 스케줄러 대시보드를 통한 에이전트 세션 검토는 현재 미리 보기로 제공됩니다.

왼쪽 메뉴에서 에이전트 를 선택하여 스케줄러에서 애플리케이션에 의해 트리거되는 에이전트 세션을 모니터링합니다. 에이전트 세션을 클릭하여 다음과 같은 토큰 사용량 현황 데이터를 봅니다.

  • 사용한 프롬프트 토큰의 수입니다.
  • 사용한 완료 토큰 수입니다.
  • 에이전트 세션 중에 사용된 총 토큰 수입니다.

에이전트 채팅 기록 및 타임라인을 볼 수도 있습니다.

애플리케이션에 의해 트리거되는 에이전트 세션의 스크린샷.

일정

왼쪽 메뉴에서 일정을 선택하여 만든 일정을 봅니다. 일정 창에서 일정을 일시 중지, 다시 시작 또는 삭제할 수 있습니다. + 일정 만들기를 클릭하여 대시보드 UI를 통해 일정을 만들 수도 있습니다.

만든 일정 및 일부 관리 도구의 스크린샷.

작업자 및 지표

왼쪽 메뉴에서 작업자 및 메트릭 을 선택하여 다음을 확인합니다.

  • 보류 중이거나 활성 상태이거나 저장된 모든 활동, 오케스트레이터 및 엔터티.
  • 연결된 작업자.

작업 항목 큐 및 연결된 작업자의 개요 스크린샷

다음 단계

Durable Functions를 위한 지속형 작업 스케줄러의 경우:

지속형 작업 SDK용 지속형 작업 스케줄러의 경우: