다음을 통해 공유


일정에 따라 파이프라인을 실행하는 트리거 만들기

적용 대상: Azure Data Factory Azure Synapse Analytics

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

이 문서에서는 일정 트리거 및 일정 트리거를 만들고 시작 및 모니터링하는 단계에 대한 정보를 제공합니다. 다른 트리거 유형의 경우 파이프라인 실행 및 트리거를 참조하세요.

일정 트리거를 만들 때 트리거에 시작 날짜, 되풀이, 종료 날짜와 같은 일정을 지정하고 파이프라인에 연결합니다. 파이프라인 및 트리거는 다 대 다 관계를 가지고 있습니다. 다중 트리거는 단일 파이프라인을 시작할 수 있습니다. 단일 트리거는 여러 파이프라인을 시작할 수 있습니다.

다음 섹션에서는 다양한 방식으로 일정 트리거를 만드는 단계를 제공합니다.

Azure Data Factory 및 Azure Synapse 포털 환경

스케줄러 트리거를 만들어 파이프라인이 주기적으로(매시간, 매일 등) 실행되도록 예약할 수 있습니다.

참고 항목

트리거와 파이프라인을 연결하고 파이프라인을 실행/모니터링하는 파이프라인 및 일정 트리거를 만드는 방법에 대한 전체 연습은 빠른 시작: Data Factory UI를 사용하여 데이터 팩터리 만들기를 참조하세요.

  1. Data Factory의 편집 탭 또는 Azure Synapse의 통합 탭으로 전환합니다.


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

    새 트리거 메뉴를 보여 주는 스크린샷

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

    도메인 추가 창을 보여 주는 스크린샷

  3. 새 트리거 페이지에서 다음을 수행합니다.

    1. 형식에 대해 일정이 선택되었는지 확인합니다.

    2. 시작 날짜에 대한 트리거의 시작 날짜/시간을 지정합니다. 기본적으로 UTC(협정 세계시)의 현재 날짜/시간으로 설정됩니다.

    3. 트리거가 만들어지는 표준 시간대를 지정합니다. 표준 시간대 설정은 고급 되풀이 옵션시작 날짜, 종료 날짜예약 실행 시간에 적용됩니다. 표준 시간대 설정을 변경해도 시작 날짜가 자동으로 변경되지는 않습니다. 지정된 표준 시간대에서 시작 날짜가 올바른지 확인합니다. 트리거의 예약된 실행 시간은 시작 날짜 이후로 간주됩니다. (시작 날짜가 실행 시간보다 1분 이상 작아야 합니다. 그렇지 않으면 다음 되풀이에서 파이프라인이 트리거됩니다.)

      참고 항목

      일광 절약 시간제가 적용되는 표준 시간대의 경우, 되풀이가 이상으로 설정되면 트리거 시간이 자동으로 조정됩니다. 일광 절약 시간제 변경을 옵트아웃하려면 일광 절약 시간제가 적용되지 않는 표준 시간대(예: UTC)를 선택하세요.

      일광 절약 조정은 되풀이가 이상으로 설정된 트리거에 대해서만 발생합니다. 트리거가 시간 또는 빈도로 설정된 경우 일정한 간격으로 계속 실행됩니다.

    4. 트리거에 대한 되풀이를 지정합니다. 드롭다운 목록에서 값 중 하나를 선택합니다(매분, 매시간, 매일, 매주 또는 매월). 텍스트 상자에서 승수를 입력합니다. 예를 들어 트리거를 15분마다 한 번 실행하려는 경우 매분을 선택하고, 텍스트 상자에 15를 입력합니다.

    5. 되풀이의 드롭다운 목록에서 , 또는 을 선택하는 경우 고급 되풀이 옵션을 찾을 수 있습니다.

      고급 되풀이 옵션인 일, 주 및 월을 보여 주는 스크린샷

    6. 종료 날짜 시간을 지정하려면 종료 날짜 지정을 선택합니다. 종료 날짜 정보를 지정한 다음, 확인을 선택합니다.

      비용은 각 파이프라인 실행과 관련이 있습니다. 테스트하는 경우 파이프라인을 몇 번만 트리거하려고 할 수 있습니다. 그러나 게시 시간과 종료 시간 사이에 파이프라인이 실행되는 데 충분한 시간이 있는지 확인합니다. 트리거는 UI에 트리거를 저장할 때가 아니라 솔루션을 게시한 후에만 적용됩니다.

      트리거 설정을 보여 주는 스크린샷

      종료 날짜 및 시간에 대한 트리거 설정을 보여 주는 스크린샷

  4. 새 트리거 창의 활성화됨 옵션에서 를 선택한 다음, 확인을 선택합니다. 나중에 트리거를 비활성화하려면 이 확인란을 사용할 수 있습니다.

    활성화됨 옵션을 보여 주는 스크린샷

  5. 새 트리거 창에서 경고 메시지를 검토한 다음, 확인을 선택합니다.

    확인 버튼 선택을 보여 주는 스크린샷

  6. 모두 게시를 선택하여 변경 내용을 게시합니다. 변경 내용을 게시할 때까지 트리거는 파이프라인 실행 트리거를 시작하지 않습니다.

    모두 게시 단추를 보여 주는 스크린샷

  7. 왼쪽의 파이프라인 실행 탭으로 전환하고 새로 고침을 선택하여 목록을 새로 고칩니다. 예약된 트리거로 트리거된 파이프라인 실행이 표시됩니다. 트리거 기준 열의 값을 확인합니다. 지금 트리거 옵션을 사용하는 경우 목록에서 수동 트리거 실행이 표시됩니다.


  1. 트리거 실행>일정 보기로 전환합니다.


Azure PowerShell

참고 항목

Azure Az PowerShell 모듈을 사용하여 Azure와 상호 작용하는 것이 좋습니다. 시작하려면 Azure PowerShell 설치를 참조하세요. Az PowerShell 모듈로 마이그레이션하는 방법에 대한 자세한 내용은 Azure PowerShell을 AzureRM에서 Azure로 마이그레이션을 참조하세요.

이 섹션에서는 Azure PowerShell을 사용하여 일정 트리거를 만들고 시작 및 모니터링하는 방법을 보여줍니다. 이 샘플이 작동하는지 확인하려면 먼저 빠른 시작: Azure PowerShell을 사용하여 Data Factory 만들기를 진행하세요. 그런 다음 15분마다 실행되는 일정 트리거를 만들고 시작하는 다음 코드를 주 메서드에 추가하세요. 트리거는 빠른 시작의 일부로 만든 Adfv2QuickStartPipeline이라는 파이프라인과 연결되어 있습니다.

필수 조건

샘플 코드

  1. 다음 내용을 포함하는 MyTrigger.json이라는 JSON 파일을 *C:\ADFv2QuickStartPSH* 폴더에 만듭니다.

    Important

    JSON 파일을 저장하기 전에 startTime 요소의 값을 현재 UTC 시간으로 설정합니다. endTime 요소의 값을 현재 UTC 시간의 한 시간 이후로 설정합니다.

    {
        "properties": {
            "name": "MyTrigger",
            "type": "ScheduleTrigger",
            "typeProperties": {
                "recurrence": {
                    "frequency": "Minute",
                    "interval": 15,
                    "startTime": "2017-12-08T00:00:00Z",
                    "endTime": "2017-12-08T01:00:00Z",
                    "timeZone": "UTC"
                }
            },
            "pipelines": [{
                    "pipelineReference": {
                        "type": "PipelineReference",
                        "referenceName": "Adfv2QuickStartPipeline"
                    },
                    "parameters": {
                        "inputPath": "adftutorial/input",
                        "outputPath": "adftutorial/output"
                    }
                }
            ]
        }
    }
    

    JSON 코드 조각에서 다음을 수행합니다.

    • 트리거의 type 요소는 ScheduleTrigger로 설정됩니다.

    • frequency 요소는 Minute로 설정되고 interval 요소는 15로 설정됩니다. 따라서 트리거는 시작 시간과 종료 시간 사이에 15분마다 파이프라인을 실행합니다.

    • timeZone 요소는 트리거가 만들어진 표준 시간대를 지정합니다. 이 설정은 startTimeendTime 둘 다에 영향을 줍니다.

    • endTime 요소는 startTime 요소 값 이후 1시간입니다. 따라서 트리거는 시작 시간 이후 15분, 30분, 45분에 파이프라인을 실행합니다. 시작 시간을 현재 UTC 시간으로 업데이트하고, 종료 시간을 시작 시간의 1시간 후로 업데이트하는 것에 유의하세요.

      Important

      UTC 표준 시간대의 경우 startTimeendTimeyyyy-MM-ddTHH:mm:ssZ 형식을 따라야 합니다. 다른 표준 시간대의 경우 startTimeendTimeyyyy-MM-ddTHH:mm:ss 형식을 따릅니다.

      ISO 8601 표준에 따라 타임스탬프의 Z 접미사는 날짜/시간을 UTC 표준 시간대로 표시하는 데 사용되고, timeZone 필드를 무의미하게 만듭니다. UTC 표준 시간대의 Z 접미사가 없으면 트리거 활성화 시 오류가 발생합니다.

    • 이 트리거는 Adfv2QuickStartPipeline 파이프라인과 연결되어 있습니다. 여러 파이프라인을 하나의 트리거와 연결하려면 pipelineReference 섹션을 더 추가하세요.

    • 빠른 시작의 파이프라인은 두 개의 parametersinputPathoutputPath를 사용합니다. 이러한 매개 변수 값을 트리거에서 전달합니다.

  2. Set-AzDataFactoryV2Trigger cmdlet을 사용하여 트리거를 만듭니다.

    Set-AzDataFactoryV2Trigger -ResourceGroupName $ResourceGroupName -DataFactoryName $DataFactoryName -Name "MyTrigger" -DefinitionFile "C:\ADFv2QuickStartPSH\MyTrigger.json"
    
  3. Get-AzDataFactoryV2Trigger cmdlet을 사용하여 트리거의 상태가 중지됨인지 확인합니다.

    Get-AzDataFactoryV2Trigger -ResourceGroupName $ResourceGroupName -DataFactoryName $DataFactoryName -Name "MyTrigger"
    
  4. Start-AzDataFactoryV2Trigger cmdlet을 사용하여 트리거를 시작합니다.

    Start-AzDataFactoryV2Trigger -ResourceGroupName $ResourceGroupName -DataFactoryName $DataFactoryName -Name "MyTrigger"
    
  5. Get-AzDataFactoryV2Trigger cmdlet을 사용하여 트리거의 상태가 시작됨인지 확인합니다.

    Get-AzDataFactoryV2Trigger -ResourceGroupName $ResourceGroupName -DataFactoryName $DataFactoryName -Name "MyTrigger"
    
  6. Get-AzDataFactoryV2TriggerRun cmdlet을 사용하여 Azure PowerShell에서 트리거 실행을 가져옵니다. 트리거 실행에 대한 정보를 가져오려면 다음 명령을 주기적으로 실행합니다. 트리거 정의의 값과 일치하도록 TriggerRunStartedAfterTriggerRunStartedBefore 값을 업데이트합니다.

    Get-AzDataFactoryV2TriggerRun -ResourceGroupName $ResourceGroupName -DataFactoryName $DataFactoryName -TriggerName "MyTrigger" -TriggerRunStartedAfter "2017-12-08T00:00:00" -TriggerRunStartedBefore "2017-12-08T01:00:00"
    

    참고 항목

    일정 트리거의 트리거 시간은 UTC 타임스탬프에서 지정됩니다. TriggerRunStartedAfterTriggerRunStartedBefore에는 UTC 타임스탬프도 필요합니다.

    Azure Portal에서 트리거 실행 및 파이프라인 실행을 모니터링하려면 파이프라인 실행 모니터링을 참조하세요.

Azure CLI

이 섹션에서는 Azure CLI를 사용하여 일정 트리거를 만들고 시작 및 모니터링하는 방법을 보여 줍니다. 이 샘플이 작동하는지 확인하려면 먼저 빠른 시작: Azure CLI를 사용하여 Azure Data Factory 만들기를 진행합니다. 그런 다음, 15분마다 실행되는 일정 트리거를 만들고 시작하는 단계를 따릅니다. 트리거는 빠른 시작의 일부로 만든 Adfv2QuickStartPipeline이라는 파이프라인과 연결되어 있습니다.

필수 조건

샘플 코드

  1. 작업 디렉터리에서 트리거 속성을 사용하여 MyTrigger.json이라는 JSON 파일을 만듭니다. 이 예제에서는 다음 콘텐츠를 사용합니다.

    Important

    JSON 파일을 저장하기 전에 startTime 요소의 값을 현재 UTC 시간으로 설정합니다. endTime 요소의 값을 현재 UTC 시간의 한 시간 이후로 설정합니다.

    {
        "name": "MyTrigger",
        "type": "ScheduleTrigger",
        "typeProperties": {
            "recurrence": {
                "frequency": "Minute",
                "interval": 15,
                "startTime": "2017-12-08T00:00:00Z",
                "endTime": "2017-12-08T01:00:00Z",
                "timeZone": "UTC"
            }
        },
        "pipelines": [{
                "pipelineReference": {
                    "type": "PipelineReference",
                    "referenceName": "Adfv2QuickStartPipeline"
                },
                "parameters": {
                    "inputPath": "adftutorial/input",
                    "outputPath": "adftutorial/output"
                }
            }
        ]
    }
    

    JSON 코드 조각에서 다음을 수행합니다.

    • 트리거의 type 요소는 ScheduleTrigger로 설정됩니다.

    • frequency 요소는 Minute로 설정되고 interval 요소는 15로 설정됩니다. 따라서 트리거는 시작 시간과 종료 시간 사이에 15분마다 파이프라인을 실행합니다.

    • timeZone 요소는 트리거가 만들어진 표준 시간대를 지정합니다. 이 설정은 startTimeendTime 둘 다에 영향을 줍니다.

    • endTime 요소는 startTime 요소 값 이후 1시간입니다. 따라서 트리거는 시작 시간 이후 15분, 30분, 45분에 파이프라인을 실행합니다. 시작 시간을 현재 UTC 시간으로 업데이트하고, 종료 시간을 시작 시간의 1시간 후로 업데이트하는 것에 유의하세요.

      Important

      UTC 표준 시간대의 경우 startTime 및 endTime은 yyyy-MM-ddTHH:mm:ssZ 형식을 따라야 합니다. 다른 표준 시간대의 경우 startTimeendTimeyyyy-MM-ddTHH:mm:ss 형식을 따릅니다.

      ISO 8601 표준에 따라 타임스탬프의 Z 접미사는 날짜/시간을 UTC 표준 시간대로 표시하는 데 사용되고, timeZone 필드를 무의미하게 만듭니다. UTC 표준 시간대의 Z 접미사가 없으면 트리거 활성화 시 오류가 발생합니다.

    • 이 트리거는 Adfv2QuickStartPipeline 파이프라인과 연결되어 있습니다. 여러 파이프라인을 하나의 트리거와 연결하려면 pipelineReference 섹션을 더 추가하세요.

    • 빠른 시작의 파이프라인은 두 개의 parametersinputPathoutputPath를 사용합니다. 이러한 매개 변수 값을 트리거에서 전달합니다.

  2. az datafactory trigger create 명령을 사용하여 트리거를 만듭니다.

    az datafactory trigger create --resource-group "ADFQuickStartRG" --factory-name "ADFTutorialFactory"  --name "MyTrigger" --properties @MyTrigger.json  
    
  3. az datafactory trigger show 명령을 사용하여 트리거 상태가 중지됨인지 확인합니다.

    az datafactory trigger show --resource-group "ADFQuickStartRG" --factory-name "ADFTutorialFactory" --name "MyTrigger" 
    
  4. az datafactory trigger start 명령을 사용하여 트리거를 시작합니다.

    az datafactory trigger start --resource-group "ADFQuickStartRG" --factory-name "ADFTutorialFactory" --name "MyTrigger" 
    
  5. az datafactory trigger show 명령을 사용하여 트리거 상태가 시작됨인지 확인합니다.

    az datafactory trigger show --resource-group "ADFQuickStartRG" --factory-name "ADFTutorialFactory" --name "MyTrigger" 
    
  6. Azure CLI에서 az datafactory trigger-run query-by-factory 명령을 사용하여 트리거 실행을 가져옵니다. 트리거 실행에 대한 정보를 가져오려면 다음 명령을 주기적으로 실행합니다. 트리거 정의의 값과 일치하도록 last-updated-afterlast-updated-before 값을 업데이트합니다.

    az datafactory trigger-run query-by-factory --resource-group "ADFQuickStartRG" --factory-name "ADFTutorialFactory" --filters operand="TriggerName" operator="Equals" values="MyTrigger" --last-updated-after "2017-12-08T00:00:00" --last-updated-before "2017-12-08T01:00:00"
    

    참고 항목

    일정 트리거의 트리거 시간은 UTC 타임스탬프에서 지정됩니다. last-updated-afterlast-updated-before에도 UTC 타임스탬프가 필요합니다.

    Azure Portal에서 트리거 실행 및 파이프라인 실행을 모니터링하려면 파이프라인 실행 모니터링을 참조하세요.

.NET SDK

이 섹션에서는 .NET SDK를 사용하여 트리거를 만들고 시작하고 모니터링하는 방법을 보여 줍니다. 이 샘플이 작동하는지 확인하려면 먼저 빠른 시작: .NET SDK를 사용하여 Data Factory 만들기를 진행하세요. 그런 다음 15분마다 실행되는 일정 트리거를 만들고 시작하는 다음 코드를 주 메서드에 추가하세요. 트리거는 빠른 시작의 일부로 만든 Adfv2QuickStartPipeline이라는 파이프라인과 연결되어 있습니다.

15분마다 실행되는 일정 트리거를 만들고 시작하려면 다음 코드를 주 메서드에 추가합니다.

            // Create the trigger
            Console.WriteLine("Creating the trigger");

            // Set the start time to the current UTC time
            DateTime startTime = DateTime.UtcNow;

            // Specify values for the inputPath and outputPath parameters
            Dictionary<string, object> pipelineParameters = new Dictionary<string, object>();
            pipelineParameters.Add("inputPath", "adftutorial/input");
            pipelineParameters.Add("outputPath", "adftutorial/output");

            // Create a schedule trigger
            string triggerName = "MyTrigger";
            ScheduleTrigger myTrigger = new ScheduleTrigger()
            {
                Pipelines = new List<TriggerPipelineReference>()
                {
                    // Associate the Adfv2QuickStartPipeline pipeline with the trigger
                    new TriggerPipelineReference()
                    {
                        PipelineReference = new PipelineReference(pipelineName),
                        Parameters = pipelineParameters,
                    }
                },
                Recurrence = new ScheduleTriggerRecurrence()
                {
                    // Set the start time to the current UTC time and the end time to one hour after the start time
                    StartTime = startTime,
                    TimeZone = "UTC",
                    EndTime = startTime.AddHours(1),
                    Frequency = RecurrenceFrequency.Minute,
                    Interval = 15,
                }
            };

            // Now, create the trigger by invoking the CreateOrUpdate method
            TriggerResource triggerResource = new TriggerResource()
            {
                Properties = myTrigger
            };
            client.Triggers.CreateOrUpdate(resourceGroup, dataFactoryName, triggerName, triggerResource);

            // Start the trigger
            Console.WriteLine("Starting the trigger");
            client.Triggers.Start(resourceGroup, dataFactoryName, triggerName);

UTC가 아닌 다른 표준 시간대에서 트리거를 만들려면 다음 설정이 필요합니다.

<<ClientInstance>>.SerializationSettings.DateFormatHandling = Newtonsoft.Json.DateFormatHandling.IsoDateFormat;
<<ClientInstance>>.SerializationSettings.DateTimeZoneHandling = Newtonsoft.Json.DateTimeZoneHandling.Unspecified;
<<ClientInstance>>.SerializationSettings.DateParseHandling = DateParseHandling.None;
<<ClientInstance>>.DeserializationSettings.DateParseHandling = DateParseHandling.None;
<<ClientInstance>>.DeserializationSettings.DateFormatHandling = Newtonsoft.Json.DateFormatHandling.IsoDateFormat;
<<ClientInstance>>.DeserializationSettings.DateTimeZoneHandling = Newtonsoft.Json.DateTimeZoneHandling.Unspecified;

트리거 실행을 모니터링하려면 샘플에서 마지막 Console.WriteLine 문 앞에 다음 코드를 추가합니다.

            // Check that the trigger runs every 15 minutes
            Console.WriteLine("Trigger runs. You see the output every 15 minutes");

            for (int i = 0; i < 3; i++)
            {
                System.Threading.Thread.Sleep(TimeSpan.FromMinutes(15));
                List<TriggerRun> triggerRuns = client.Triggers.ListRuns(resourceGroup, dataFactoryName, triggerName, DateTime.UtcNow.AddMinutes(-15 * (i + 1)), DateTime.UtcNow.AddMinutes(2)).ToList();
                Console.WriteLine("{0} trigger runs found", triggerRuns.Count);

                foreach (TriggerRun run in triggerRuns)
                {
                    foreach (KeyValuePair<string, string> triggeredPipeline in run.TriggeredPipelines)
                    {
                        PipelineRun triggeredPipelineRun = client.PipelineRuns.Get(resourceGroup, dataFactoryName, triggeredPipeline.Value);
                        Console.WriteLine("Pipeline run ID: {0}, Status: {1}", triggeredPipelineRun.RunId, triggeredPipelineRun.Status);
                        List<ActivityRun> runs = client.ActivityRuns.ListByPipelineRun(resourceGroup, dataFactoryName, triggeredPipelineRun.RunId, run.TriggerRunTimestamp.Value, run.TriggerRunTimestamp.Value.AddMinutes(20)).ToList();
                    }
                }
            }

Azure Portal에서 트리거 실행 및 파이프라인 실행을 모니터링하려면 파이프라인 실행 모니터링을 참조하세요.

Python SDK

이 섹션에서는 Python SDK를 사용하여 트리거를 만들고 시작하고 모니터링하는 방법을 보여줍니다. 이 샘플이 작동하는지 확인하려면 먼저 빠른 시작: Python SDK를 사용하여 Data Factory 만들기를 진행하세요. 그런 다음, Python 스크립트에서 monitor the pipeline run 코드 블록 뒤에 다음 코드 블록을 추가합니다. 이 코드는 지정된 시작 시간과 종료 시간 사이에 15분마다 실행되는 일정 트리거를 만듭니다. start_time 변수를 현재 UTC 시간으로 업데이트하고, end_time 변수를 현재 UTC 시간의 1시간 후로 업데이트합니다.

    # Create a trigger
    tr_name = 'mytrigger'
    scheduler_recurrence = ScheduleTriggerRecurrence(frequency='Minute', interval='15',start_time='2017-12-12T04:00:00Z', end_time='2017-12-12T05:00:00Z', time_zone='UTC')
    pipeline_parameters = {'inputPath':'adftutorial/input', 'outputPath':'adftutorial/output'}
    pipelines_to_run = []
    pipeline_reference = PipelineReference('copyPipeline')
    pipelines_to_run.append(TriggerPipelineReference(pipeline_reference, pipeline_parameters))
    tr_properties = TriggerResource(properties=ScheduleTrigger(description='My scheduler trigger', pipelines = pipelines_to_run, recurrence=scheduler_recurrence))
    adf_client.triggers.create_or_update(rg_name, df_name, tr_name, tr_properties)

    # Start the trigger
    adf_client.triggers.start(rg_name, df_name, tr_name)

Azure Portal에서 트리거 실행 및 파이프라인 실행을 모니터링하려면 파이프라인 실행 모니터링을 참조하세요.

Azure Resource Manager 템플릿

Azure Resource Manager 템플릿을 사용하여 트리거를 만들 수 있습니다. 단계별 지침은 Azure Resource Manager 템플릿을 사용하여 Azure Data Factory 만들기를 참조하세요.

파이프라인에 트리거 시작 시간 전달

Azure Data Factory 버전 1은 다음 시스템 변수 SliceStart, SliceEnd, WindowStartWindowEnd를 사용하여 분할된 데이터를 읽거나 쓰도록 지원합니다. Data Factory 및 Azure Synapse 파이프라인의 현재 버전에서는 파이프라인 매개 변수를 사용하여 이 동작을 수행할 수 있습니다. 트리거의 시작 시간 및 예약된 시간은 파이프라인 매개 변수의 값으로 설정됩니다. 다음 예제에서는 트리거의 예약된 시간이 파이프라인 scheduledRunTime 매개 변수에 값으로 전달됩니다.

"parameters": {
    "scheduledRunTime": "@trigger().scheduledTime"
}

JSON 스키마

다음 JSON 정의는 일정 및 되풀이를 사용하여 일정 트리거를 만드는 방법을 보여줍니다.

{
  "properties": {
    "type": "ScheduleTrigger",
    "typeProperties": {
      "recurrence": {
        "frequency": <<Minute, Hour, Day, Week, Month>>,
        "interval": <<int>>,             // Optional, specifies how often to fire (default to 1)
        "startTime": <<datetime>>,
        "endTime": <<datetime - optional>>,
        "timeZone": "UTC"
        "schedule": {                    // Optional (advanced scheduling specifics)
          "hours": [<<0-23>>],
          "weekDays": [<<Monday-Sunday>>],
          "minutes": [<<0-59>>],
          "monthDays": [<<1-31>>],
          "monthlyOccurrences": [
               {
                    "day": <<Monday-Sunday>>,
                    "occurrence": <<1-5>>
               }
           ]
        }
      }
    },
   "pipelines": [
            {
                "pipelineReference": {
                    "type": "PipelineReference",
                    "referenceName": "<Name of your pipeline>"
                },
                "parameters": {
                    "<parameter 1 Name>": {
                        "type": "Expression",
                        "value": "<parameter 1 Value>"
                    },
                    "<parameter 2 Name>" : "<parameter 2 Value>"
                }
           }
      ]
  }
}

Important

parameters 속성은 pipelines 요소의 필수 속성입니다. 파이프라인에서 매개 변수를 사용하지 않는 경우에도 parameters 속성에 대해 빈 JSON 정의를 포함해야 합니다.

스키마 개요

다음 테이블은 트리거의 되풀이 및 일정 계획과 관련된 주요 스키마 요소의 공급 개요를 제공합니다.

JSON 속성 설명
startTime 날짜-시간 값입니다. 단순한 일정의 경우 startTime 속성의 값이 첫 번째 되풀이에 적용됩니다. 복잡한 일정의 경우 트리거는 특정 startTime 값 이후에 시작합니다.
UTC 표준 시간대의 경우 형식은 'yyyy-MM-ddTHH:mm:ssZ'입니다. 다른 표준 시간대의 경우 형식은 yyyy-MM-ddTHH:mm:ss입니다.
endTime 트리거의 종료 날짜 및 시간입니다. 트리거는 지정된 종료 날짜 및 시간 이후에 실행되지 않습니다. 속성에 대한 값은 이전에 있을 수 없습니다. 이 속성은 선택 사항입니다.
UTC 표준 시간대의 경우 형식은 'yyyy-MM-ddTHH:mm:ssZ'입니다. 다른 표준 시간대의 경우 형식은 yyyy-MM-ddTHH:mm:ss입니다.
timeZone 트리거가 만들어지는 표준 시간대입니다. 이 설정은 startTime, endTimeschedule에 영향을 줍니다. 지원되는 표준 시간대 목록을 참조하세요.
recurrence 트리거에 대한 되풀이 규칙을 지정하는 recurrence 개체입니다. 되풀이 개체는 frequency, interval, endTime, countschedule 요소를 지원합니다. 되풀이 개체가 정의된 경우 frequency 요소는 필수입니다. 되풀이 개체의 다른 요소는 선택적입니다.
frequency 트리거가 되풀이되는 빈도 단위입니다. 지원되는 값은 minute,, hour,, day, weekmonth입니다.
interval 트리거가 실행되는 빈도를 결정하는 frequency 값의 간격을 나타내는 양의 정수입니다. 예를 들어 interval3이고 frequencyweek인 경우 트리거는 3주마다 되풀이됩니다.
schedule 트리거에 대한 되풀이 일정입니다. 지정된 frequency 값을 가진 트리거는 되풀이 일정을 기준으로 되풀이를 변경합니다. schedule 속성에는 분, 시간, 요일, 날짜, 주차를 기준으로 하는 되풀이에 대한 수정 내용이 포함됩니다.

Important

UTC 표준 시간대의 경우 startTimeendTimeyyyy-MM-ddTHH:mm:ssZ 형식을 따라야 합니다. 다른 표준 시간대의 경우 startTimeendTimeyyyy-MM-ddTHH:mm:ss 형식을 따릅니다.

ISO 8601 표준에 따라 타임스탬프의 Z 접미사는 날짜/시간을 UTC 표준 시간대로 표시하는 데 사용되고, timeZone 필드를 무의미하게 만듭니다. UTC 표준 시간대의 Z 접미사가 없으면 트리거 활성화 시 오류가 발생합니다.

스키마 기본값, 제한 및 예제

JSON 속성 Type Required 기본값 유효한 값 예시
startTime 문자열 없음 ISO-8601 날짜-시간 UTC 표준 시간대의 경우: "startTime" : "2013-01-09T09:30:00-08:00Z"
기타 표준 시간대의 경우: "2013-01-09T09:30:00-08:00"
timeZone 문자열 없음 표준 시간대 값 "UTC"
recurrence Object 없음 되풀이 개체 "recurrence" : { "frequency" : "monthly", "interval" : 1 }
interval 숫자 아니요 1 1~1,000 "interval":10
endTime 문자열 None 미래의 시간을 나타내는 날짜-시간 값입니다. UTC 표준 시간대의 경우: "endTime" : "2013-02-09T09:30:00-08:00Z"
기타 표준 시간대의 경우: "endTime" : "2013-02-09T09:30:00-08:00"
schedule Object 아니요 없음 일정 개체 "schedule" : { "minute" : [30], "hour" : [8,17] }

표준 시간대 옵션

일정 트리거에 지원되는 몇 가지 표준 시간대는 다음과 같습니다.

표준 시간대 UTC 오프셋(비일광 시간 절약제) 표준 시간대 값 일광 절약 시간제 적용 타임스탬프 형식
협정 세계시 0 UTC 아니요 'yyyy-MM-ddTHH:mm:ssZ'
PT(태평양 표준시) -8 Pacific Standard Time 'yyyy-MM-ddTHH:mm:ss'
CT(중부 표준시) -6 Central Standard Time 'yyyy-MM-ddTHH:mm:ss'
ET(동부 표준시) 5- Eastern Standard Time 'yyyy-MM-ddTHH:mm:ss'
GMT(그리니치 표준시) 0 GMT Standard Time 'yyyy-MM-ddTHH:mm:ss'
중앙 유럽 표준시 +1 W. Europe Standard Time 'yyyy-MM-ddTHH:mm:ss'
IST(인도 표준시) +5:30 India Standard Time 아니요 'yyyy-MM-ddTHH:mm:ss'
중국 표준시 8+ China Standard Time 아니요 'yyyy-MM-ddTHH:mm:ss'

이 목록은 완전하지 않습니다. 전체 표준 시간대 옵션 목록은 포털의 트리거 만들기 페이지를 참조하세요.

startTime 속성

다음 표는 startTime 속성이 트리거 실행을 제어하는 방법을 보여 줍니다.

startTime 값 일정 없이 되풀이 일정대로 되풀이
시작 시간이 이전임 시작 시간 이후 첫 실행 시간을 계산하고 해당 시간에 실행됩니다.

마지막 실행 시간에서 계산된 값을 기반으로 후속 실행을 수행합니다.

이 테이블 다음에 나오는 예제를 참조하세요.
트리거는 지정된 시작 시간 이후에 시작합니다. 시작 시간에서 계산된 일정을 기반으로 첫 되풀이를 실행합니다.

되풀이 일정에 따라 후속 실행을 수행합니다.
시작 시간이 이후이거나 현재임 지정된 시작 시간에 한 번 실행됩니다.

마지막 실행 시간에서 계산된 값을 기반으로 후속 실행을 수행합니다.
트리거는 지정된 시작 시간 이후에 시작합니다. 시작 시간에서 계산된 일정을 기반으로 첫 되풀이를 실행합니다.

되풀이 일정에 따라 후속 실행을 수행합니다.

시작 시간이 이전이고 되풀이가 있으나 일정이 없는 경우에 어떻게 되는지 예제를 보겠습니다. 현재 시간이 2017-04-08 13:00이고, 시작 시간이 2017-04-07 14:00이며 되풀이는 2일마다라고 가정합니다. (recurrence 값은 frequency 속성을 day로 설정하고 interval 속성을 2로 설정하여 정의됩니다.) startTime 값이 현재 시간보다 이전임에 유의하세요.

이러한 조건에서 첫 실행 시기는 2017-04-09 14:00입니다. Scheduler 엔진이 시작 시간에서 되풀이 실행 시간을 계산합니다. 현재보다 이전의 모든 인스턴스는 무시됩니다. 엔진은 이후에 발생하는 다음 인스턴스를 사용합니다. 이 시나리오에서 시작 시간은 2017-04-07 2:00pm이므로 다음 인스턴스는 이 시간에서 2일 후인 2017-04-09 2:00pm입니다.

첫 번째 실행 시간은 startTime 값이 2017-04-05 14:00 또는 2017-04-01 14:00이더라도 동일합니다. 첫 번째 실행 후 후속 실행은 일정을 사용하여 계산됩니다. 따라서 후속 실행은 차례로 2017-04-11 2:00pm, 2017-04-13 2:00pm, 2017-04-15 2:00pm 등입니다.

마지막으로, 시간 또는 분이 트리거에 대한 일정에 설정되지 않은 경우 첫 번째 실행의 시간 또는 분은 기본값으로 사용됩니다.

일정 속성

일정을 사용하여 트리거 실행의 횟수를 제한할 수 있습니다. 예를 들어 매월 빈도인 트리거가 31일에만 실행되도록 예정되어 있을 경우, 트리거는 31일이 있는 달에만 실행됩니다.

일정 기능으로 트리거 실행의 횟수를 늘릴 수도 있습니다. 예를 들어 월 단위 빈도의 트리거가 1일 및 2일에 실행되도록 예약된 경우, 트리거는 한 달에 한 번이 아니라 매월 첫 번째 및 두 번째 일에 실행됩니다.

여러 schedule 요소가 지정된 경우, 계산되는 순서는 가장 큰 것부터 가장 작은 일정 설정입니다. 계산은 주차, 날짜, 요일, 시간, 분으로 시작합니다.

다음 표에서는 schedule 요소를 자세히 설명합니다.

JSON 요소 설명 유효한 값
minutes 트리거가 실행될 시간(분)입니다.
  • 정수
  • 정수 배열
hours 트리거가 실행될 일(시간)입니다.
  • 정수
  • 정수 배열
weekDays 트리거가 실행되는 요일입니다. 값은 빈도가 주인 경우에만 지정될 수 있습니다.
  • Monday, Tuesday, Wednesday, Thursday, Friday, Saturday, Sunday.
  • 날짜 값의 배열(최대 배열 크기: 7)
  • 날짜 값은 대/소문자 구분하지 않습니다.
monthlyOccurrences 트리거가 실행되는 날짜입니다. 값은 빈도가 월인 경우에만 지정될 수 있습니다.
  • monthlyOccurrences 개체의 배열: { "day": day, "occurrence": occurrence }
  • day 특성은 트리거가 실행되는 요일입니다. 예를 들어 day 값이 {Sunday}monthlyOccurrences 속성은 해당 월의 매주 일요일을 의미합니다. day 특성은 필수입니다.
  • occurrence 특성은 월 중 지정된 day의 되풀이 항목입니다. 예를 들어 {Sunday, -1} 값이 dayoccurrencemonthlyOccurrences 속성은 해당 월의 매주 일요일을 의미합니다. occurrence 특성은 선택 사항입니다.
monthDays 트리거가 실행되는 날짜입니다. 값은 빈도가 월인 경우에만 지정될 수 있습니다.
  • <= -1 및 >= -31의 모든 값
  • >= 1 및 <= 31의 모든 값
  • 값의 배열

트리거 되풀이 일정의 예

이 섹션은 되풀이 일정의 예를 제공하며 schedule 개체와 하위 요소에 초점을 맞춥니다.

예제에서 interval 값은 1이고 frequency 값은 일정 정의에 따라 올바르다고 가정합니다. 예를 들어 frequency 값이 day일 수 없으며 schedule 개체에서 monthDays를 수정할 수도 있습니다. 이러한 제한 사항은 이전 섹션의 테이블에서 언급했습니다.

예제 설명
{"hours":[5]} 매일 오전 5시에 실행됩니다.
{"minutes":[15], "hours":[5]} 매일 오전 5시 15분에 실행됩니다.
{"minutes":[15], "hours":[5,17]} 매일 오전 5시 15분 및 오후 5시 15분에 실행됩니다.
{"minutes":[15,45], "hours":[5,17]} 매일 오전 5시 15분, 오전 5시 45분, 오후 5시 15분, 오후 5시 45분에 실행됩니다.
{"minutes":[0,15,30,45]} 15분마다 실행됩니다.
{hours":[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23]} 매시간 실행됩니다. 이 트리거는 매 1시간마다 실행합니다. 값이 지정된 경우 분은 startTime 값으로 제어됩니다. 값이 지정되지 않은 경우 분은 생성 시간을 기준으로 제어됩니다. 예를 들어 시작 시간 또는 생성 시간(둘 중 해당하는 것)이 오후 12:25이라면 트리거는 00:25, 01:25, 02:25, …, 23:25에 실행됩니다.

이 일정은 hourfrequency, 1intervalschedule이 없는 트리거를 유지하는 것과 같습니다. 다른 frequencyinterval 값으로 이 일정을 사용하여 다른 트리거를 만들 수 있습니다. 예를 들어 frequency 값이 month인 경우, 일정은 frequency 값이 day인 경우의 매일이 아닌 한 달에 한 번만 실행됩니다.
{"minutes":[0]} 매시간 정각에 실행됩니다. 이 트리거는 오전 12시, 오전 1시, 오전 2시 등에 시작하는 시간에 매시간 실행됩니다.

이 일정은 frequency 값이 hour이고 startTime 값이 0분이거나 schedule 값이 없지만 frequency 값이 day인 트리거와 동일합니다. frequency 값이 week 또는 month인 경우, 일정은 각각 주에 하루 또는 월에 하루만 실행됩니다.
{"minutes":[15]} 매시간 15분에 실행됩니다. 이 트리거는 오전 0시 15분, 오전 1시 15분, 오전 2시 15분 등에 시작하여 오후 11시 15분에 끝나는 시간 이후에 매시간 15분에 실행됩니다.
{"hours":[17], "weekDays":["saturday"]} 매주 토요일 오후 5시에 실행됩니다.
{"hours":[17], "weekDays":["monday", "wednesday", "friday"]} 매주 월요일, 수요일, 금요일 오후 5시에 실행됩니다.
{"minutes":[15,45], "hours":[17], "weekDays":["monday", "wednesday", "friday"]} 매주 월요일, 수요일, 금요일 오후 5시 15분 및 오후 5시 45분에 실행됩니다.
{"minutes":[0,15,30,45], "weekDays":["monday", "tuesday", "wednesday", "thursday", "friday"]} 월요일부터 금요일까지 15분마다 실행됩니다.
{"minutes":[0,15,30,45], "hours": [9, 10, 11, 12, 13, 14, 15, 16] "weekDays":["monday", "tuesday", "wednesday", "thursday", "friday"]} 월요일부터 금요일까지 오전 9시에서 오후 4시 45분 사이에 15분마다 실행됩니다.
{"weekDays":["tuesday", "thursday"]} 화요일과 목요일의 지정된 시작 시간에 실행됩니다.
{"minutes":[0], "hours":[6], "monthDays":[28]} 매월 28일 오전 6시에 실행됩니다(frequency 값이 month라고 가정).
{"minutes":[0], "hours":[6], "monthDays":[-1]} 월의 마지막 날짜 오전 6시에 실행됩니다. 월의 마지막 날짜에 트리거를 실행하려면 28, 29, 30 또는 31 대신 -1을 사용합니다.
{"minutes":[0], "hours":[6], "monthDays":[1,-1]} 매월 1일과 말일의 오전 6시에 실행됩니다.
{monthDays":[1,14]} 매월 1일과 14일의 지정된 시작 시간에 실행됩니다.
{"minutes":[0], "hours":[5], "monthlyOccurrences":[{"day":"friday", "occurrence":1}]} 매월 첫 번째 금요일 오전 5시에 실행됩니다.
{"monthlyOccurrences":[{"day":"friday", "occurrence":1}]} 매월 첫 번째 금요일의 지정된 시작 시간에 실행됩니다.
{"monthlyOccurrences":[{"day":"friday", "occurrence":-3}]} 매월 마지막 달의 세 번째 금요일의 지정된 시작 시간에 실행됩니다.
{"minutes":[15], "hours":[5], "monthlyOccurrences":[{"day":"friday", "occurrence":1},{"day":"friday", "occurrence":-1}]} 매월 첫 번째와 마지막 금요일 오전 5시 15분에 실행됩니다.
{"monthlyOccurrences":[{"day":"friday", "occurrence":1},{"day":"friday", "occurrence":-1}]} 매월 첫 번째와 마지막 금요일의 지정된 시작 시간에 실행됩니다.
{"monthlyOccurrences":[{"day":"friday", "occurrence":5}]} 매월 다섯 번째 금요일의 지정된 시작 시간에 실행됩니다. 5번째 금요일에만 실행되도록 설정되었으므로 5번째 금요일이 없는 달에는 파이프라인이 실행되지 않습니다. 해당 월의 마지막 금요일에 트리거를 실행되도록 하려면 occurrence 값으로 5대신 -1을 사용하면 됩니다.
{"minutes":[0,15,30,45], "monthlyOccurrences":[{"day":"friday", "occurrence":-1}]} 매월 마지막 금요일에 15분마다 실행됩니다.
{"minutes":[15,45], "hours":[5,17], "monthlyOccurrences":[{"day":"wednesday", "occurrence":3}]} 매월 세 번째 수요일에 오전 5시 15분, 오전 5시 45분, 오후 5시 15분, 오후 5시 45분에 실행됩니다.