지속 작업 스케줄러에 대한 자동 삭제 보존 정책 설정

CU(용량 단위)의 메모리 제한에 도달하지 않도록 하려면 오케스트레이션 기록 데이터를 주기적으로 제거하는 것이 좋습니다. 지속성 작업 스케줄러는 수동 개입 없이 오케스트레이션 데이터 정리를 관리하는 데 도움이 되는 가볍고 구성 가능한 자동 해결 기능을 제공합니다.

설정 기본값
자동 제거 활성화됨
기본 보존 기간 30일
최대 보존 기간 90일
적용 대상 스케줄러의 모든 작업 허브
적격 상태 Completed, Failed, , Canceled, Terminated

Autopurge는 백그라운드에서 비동기적으로 작동하며 시스템 리소스 사용을 최소화하고 다른 지속성 작업과의 간섭을 방지하기 위해 최적화됩니다. 자동 정리 기능은 엄격한 일정을 따르지 않지만, 일반적으로 그 정리 속도는 오케스트레이션 계획 속도와 대체로 일치합니다.

작동 방식

Autopurge는 기본적으로 30일 정책으로 사용하도록 설정되어 있지만 사용자 지정할 수 있습니다. 특정 상태에 대한 오케스트레이션 데이터를 유지할 기간을 지정하는 보존 정책을 정의하여 수정할 수 있습니다. 자동 검색 기능은 터미널 상태에 있는 오케스트레이션 데이터를 제거합니다. 터미널 상태는 오케스트레이션이 최종 상태에 도달했으며 더 이상 작업을 예약하거나 이벤트를 처리하거나 작업 항목을 생성하지 않음을 의미합니다. 터미널 상태는 다음과 같습니다.

  • Completed
  • Failed
  • Canceled
  • Terminated

자동 정리에 적합한 오케스트레이션 인스턴스는 Durable SDK PurgeInstancesAsync API의 대상과 일치합니다.

Autopurge는 터미널이 아닌 상태와 연결된 오케스트레이션 데이터를 무시합니다. 터미널이 아닌 상태는 오케스트레이션 인스턴스가 현재 실행 중이거나 일시 중지되었거나 나중에 다시 시작될 수 있는 상태(외부 이벤트 또는 타이머 대기)임을 나타냅니다. 비 터미널 상태는 다음과 같습니다.

  • Pending
  • Running
  • Suspended
  • Continued_As_New

메모

ContinueAsNew을 사용하는 오케스트레이션은 종료 지점으로 간주되지 않습니다. ContinueAsNew 인스턴스 ID를 유지하면서 새 실행 기록을 사용하여 오케스트레이션을 다시 시작하므로 이러한 인스턴스는 실제 터미널 상태에 도달할 때까지 제거되지 않습니다.

사용하도록 설정하면 자동 삭제는 설정한 보존 기간보다 오래된 오케스트레이션 데이터를 주기적으로 삭제합니다. 자동 삭제는 최종 상태의 오케스트레이션에 대한 데이터만 제거합니다.

메모

정의하는 보존 정책은 스케줄러의 모든 작업 허브에 적용됩니다.

보존 정책 구성

정책 값 범위

보존 값은 단위로 지정되며 0(가능한 한 빨리 제거)부터 90일까지 다양할 수 있습니다. 기본적으로 자동 정리 유지 기간은 30일로 설정됩니다.

보존 기간은 오케스트레이션이 만들어진 시점이 아니라 터미널 상태가 될 때 시작됩니다. 예를 들어 보존 기간을 1일로 설정하고 오케스트레이션 완료에 10일이 걸리는 경우, 자동 삭제는 완료된 후 1일 뒤에 이를 삭제합니다.

기본 및 특정 정책 유형

자동 삭제 데이터 보존 정책을 구성할 때 특정 정책 또는 기본 정책을 설정할 수 있습니다.

  • 기본 정책은 .에 관계없이 오케스트레이션 데이터를 제거합니다orchestrationState. 다음 정책은 2일 후에 기능이 적용되는 모든 상태의 오케스트레이션 데이터를 제거합니다.

    {
      "retentionPeriodInDays": 2
    }
    
  • 특정 정책은 특정 orchestrationState오케스트레이션 데이터의 제거를 정의합니다. 다음 정책은 지속성 작업 스케줄러에 완료된 오케스트레이션 데이터를 1일 동안 유지하도록 지시하고, 그 후에는 이 데이터가 제거됩니다.

    {
      "retentionPeriodInDays": 1,
      "orchestrationState": "Completed"
    }
    

특정 정책을 추가하여 오케스트레이션에 적용되는 기본 정책을 재정의합니다. 다음 예제에서 두 번째 및 세 번째 정책은 기본 정책("retentionPeriodInDays": 1)을 재정의합니다.

  • 오케스트레이션과 completed 연결된 데이터는 가능한 한 빨리 삭제됩니다.

  • 오케스트레이션과 failed 연결된 데이터는 60일 후에 제거됩니다.

    [
      {
        "retentionPeriodInDays": 1
      },
      {
        "retentionPeriodInDays": 0,
        "orchestrationState": "Completed"
      },
      {
        "retentionPeriodInDays": 60,
        "orchestrationState": "Failed"
      }
    ]
    

특정 정책이 canceled 또는 terminated 오케스트레이션에 대해 설정되지 않았기 때문에, 기본 정책이 여전히 적용되어 데이터가 1일 후에 삭제됩니다.

자세한 내용은 지속성 작업 스케줄러 보존 정책에 대한 API 참조 사양을 참조하세요.

자동 제거 사용

다음을 사용하여 보존 정책을 정의할 수 있습니다.

  • 지속형 작업 CLI
  • Azure Resource Manager(ARM)
  • Bicep

최신 버전의 지속성 작업 CLI 확장이 있는지 확인합니다.

az extension add --name durabletask
az extension update --name durabletask

다음 명령을 실행하여 보존 정책을 만들거나 업데이트합니다.

az durabletask retention-policy create --scheduler-name SCHEDULER_NAME --resource-group RESOURCE_GROUP --default-days 1 --completed-days 0 --failed-days 60

다음 속성은 서로 다른 상태의 오케스트레이션 데이터에 대한 보존 기간을 지정합니다.

재산 설명
--canceled-days 또는 -x 취소된 오케스트레이션을 유지할 일 수입니다.
--completed-days 또는 -c 완료된 오케스트레이션을 유지할 일 수입니다.
--default-days 또는 -d 오케스트레이션을 유지할 일 수입니다.
--failed-days 또는 -f 실패한 오케스트레이션을 유지할 일 수입니다.
--terminated-days 또는 -t 종료된 오케스트레이션을 유지할 일 수입니다.

응답 예제

만들기에 성공하면 다음 응답을 받게 됩니다.

{
  "id": "/subscriptions/SUBSCRIPTION_ID/resourceGroups/RESOURCE_GROUP/providers/Microsoft.DurableTask/schedulers/SCHEDULER_NAME/retentionPolicies/default",
  "name": "default",
  "properties": {
    "provisioningState": "Succeeded",
    "retentionPolicies": [
      {
        "retentionPeriodInDays": 1
      },
      {
        "orchestrationState": "Completed",
        "retentionPeriodInDays": 0
      },
      {
        "orchestrationState": "Failed",
        "retentionPeriodInDays": 60
      }
    ]
  },
  "resourceGroup": "RESOURCE_GROUP",
  "systemData": {
    "createdAt": "2025-04-23T23:41:17.3165122Z",
    "createdBy": "someone@microsoft.com",
    "createdByType": "User",
    "lastModifiedAt": "2025-04-23T23:41:17.3165122Z",
    "lastModifiedBy": "someone@microsoft.com",
    "lastModifiedByType": "User"
  },
  "type": "microsoft.durabletask/schedulers/retentionpolicies"
}

팁 (조언)

CLI 참조를 통해 보존 정책 명령에 대해 자세히 알아봅니다.

현재 정책 보기

스케줄러에 대한 현재 보존 정책을 검색합니다.

az durabletask retention-policy show --scheduler-name SCHEDULER_NAME --resource-group RESOURCE_GROUP

자동 삭제 비활성화

다음 명령을 사용하여 보존 정책을 삭제합니다. 지속성 작업 스케줄러는 5~10분 내에 오케스트레이션 데이터 정리를 중지합니다.

az durabletask retention-policy delete --scheduler-name SCHEDULER_NAME --resource-group RESOURCE_GROUP