일정에 따라 파이프라인을 실행하는 트리거 만들기
적용 대상: Azure Data Factory Azure Synapse Analytics
팁
기업용 올인원 분석 솔루션인 Microsoft Fabric의 Data Factory를 사용해 보세요. Microsoft Fabric은 데이터 이동부터 데이터 과학, 실시간 분석, 비즈니스 인텔리전스 및 보고에 이르기까지 모든 것을 다룹니다. 무료로 새 평가판을 시작하는 방법을 알아봅니다!
이 문서에서는 일정 트리거 및 일정 트리거를 만들고 시작 및 모니터링하는 단계에 대한 정보를 제공합니다. 다른 트리거 유형의 경우 파이프라인 실행 및 트리거를 참조하세요.
일정 트리거를 만들 때 트리거에 시작 날짜, 되풀이, 종료 날짜와 같은 일정을 지정하고 파이프라인에 연결합니다. 파이프라인 및 트리거는 다 대 다 관계를 가지고 있습니다. 다중 트리거는 단일 파이프라인을 시작할 수 있습니다. 단일 트리거는 여러 파이프라인을 시작할 수 있습니다.
다음 섹션에서는 다양한 방식으로 일정 트리거를 만드는 단계를 제공합니다.
Azure Data Factory 및 Azure Synapse 포털 환경
스케줄러 트리거를 만들어 파이프라인이 주기적으로(매시간, 매일 등) 실행되도록 예약할 수 있습니다.
참고 항목
트리거와 파이프라인을 연결하고 파이프라인을 실행/모니터링하는 파이프라인 및 일정 트리거를 만드는 방법에 대한 전체 연습은 빠른 시작: Data Factory UI를 사용하여 데이터 팩터리 만들기를 참조하세요.
Data Factory의 편집 탭 또는 Azure Synapse의 통합 탭으로 전환합니다.
메뉴에서 트리거를 선택한 다음 새로 만들기/편집을 선택합니다.
트리거 추가 페이지에서 트리거 선택, 새로 만들기를 차례로 선택합니다.
새 트리거 페이지에서 다음을 수행합니다.
형식에 대해 일정이 선택되었는지 확인합니다.
시작 날짜에 대한 트리거의 시작 날짜/시간을 지정합니다. 기본적으로 UTC(협정 세계시)의 현재 날짜/시간으로 설정됩니다.
트리거가 만들어지는 표준 시간대를 지정합니다. 표준 시간대 설정은 고급 되풀이 옵션의 시작 날짜, 종료 날짜 및 예약 실행 시간에 적용됩니다. 표준 시간대 설정을 변경해도 시작 날짜가 자동으로 변경되지는 않습니다. 지정된 표준 시간대에서 시작 날짜가 올바른지 확인합니다. 트리거의 예약된 실행 시간은 시작 날짜 이후로 간주됩니다. (시작 날짜가 실행 시간보다 1분 이상 작아야 합니다. 그렇지 않으면 다음 되풀이에서 파이프라인이 트리거됩니다.)
참고 항목
일광 절약 시간제가 적용되는 표준 시간대의 경우, 되풀이가 일 이상으로 설정되면 트리거 시간이 자동으로 조정됩니다. 일광 절약 시간제 변경을 옵트아웃하려면 일광 절약 시간제가 적용되지 않는 표준 시간대(예: UTC)를 선택하세요.
일광 절약 조정은 되풀이가 일 이상으로 설정된 트리거에 대해서만 발생합니다. 트리거가 시간 또는 분 빈도로 설정된 경우 일정한 간격으로 계속 실행됩니다.
트리거에 대한 되풀이를 지정합니다. 드롭다운 목록에서 값 중 하나를 선택합니다(매분, 매시간, 매일, 매주 또는 매월). 텍스트 상자에서 승수를 입력합니다. 예를 들어 트리거를 15분마다 한 번 실행하려는 경우 매분을 선택하고, 텍스트 상자에 15를 입력합니다.
되풀이의 드롭다운 목록에서 일, 주 또는 월을 선택하는 경우 고급 되풀이 옵션을 찾을 수 있습니다.
종료 날짜 시간을 지정하려면 종료 날짜 지정을 선택합니다. 종료 날짜 정보를 지정한 다음, 확인을 선택합니다.
비용은 각 파이프라인 실행과 관련이 있습니다. 테스트하는 경우 파이프라인을 몇 번만 트리거하려고 할 수 있습니다. 그러나 게시 시간과 종료 시간 사이에 파이프라인이 실행되는 데 충분한 시간이 있는지 확인합니다. 트리거는 UI에 트리거를 저장할 때가 아니라 솔루션을 게시한 후에만 적용됩니다.
새 트리거 창의 활성화됨 옵션에서 예를 선택한 다음, 확인을 선택합니다. 나중에 트리거를 비활성화하려면 이 확인란을 사용할 수 있습니다.
새 트리거 창에서 경고 메시지를 검토한 다음, 확인을 선택합니다.
모두 게시를 선택하여 변경 내용을 게시합니다. 변경 내용을 게시할 때까지 트리거는 파이프라인 실행 트리거를 시작하지 않습니다.
왼쪽의 파이프라인 실행 탭으로 전환하고 새로 고침을 선택하여 목록을 새로 고칩니다. 예약된 트리거로 트리거된 파이프라인 실행이 표시됩니다. 트리거 기준 열의 값을 확인합니다. 지금 트리거 옵션을 사용하는 경우 목록에서 수동 트리거 실행이 표시됩니다.
트리거 실행>일정 보기로 전환합니다.
Azure PowerShell
참고 항목
Azure Az PowerShell 모듈을 사용하여 Azure와 상호 작용하는 것이 좋습니다. 시작하려면 Azure PowerShell 설치를 참조하세요. Az PowerShell 모듈로 마이그레이션하는 방법에 대한 자세한 내용은 Azure PowerShell을 AzureRM에서 Azure로 마이그레이션을 참조하세요.
이 섹션에서는 Azure PowerShell을 사용하여 일정 트리거를 만들고 시작 및 모니터링하는 방법을 보여줍니다. 이 샘플이 작동하는지 확인하려면 먼저 빠른 시작: Azure PowerShell을 사용하여 Data Factory 만들기를 진행하세요. 그런 다음 15분마다 실행되는 일정 트리거를 만들고 시작하는 다음 코드를 주 메서드에 추가하세요. 트리거는 빠른 시작의 일부로 만든 Adfv2QuickStartPipeline
이라는 파이프라인과 연결되어 있습니다.
필수 조건
- Azure 구독. Azure 구독이 없는 경우 시작하기 전에 체험 계정을 만듭니다.
- Azure PowerShell. PowerShellGet을 사용하여 Windows에 Azure PowerShell 설치의 지침을 따르세요.
샘플 코드
다음 내용을 포함하는 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
요소는 트리거가 만들어진 표준 시간대를 지정합니다. 이 설정은startTime
및endTime
둘 다에 영향을 줍니다.endTime
요소는startTime
요소 값 이후 1시간입니다. 따라서 트리거는 시작 시간 이후 15분, 30분, 45분에 파이프라인을 실행합니다. 시작 시간을 현재 UTC 시간으로 업데이트하고, 종료 시간을 시작 시간의 1시간 후로 업데이트하는 것에 유의하세요.Important
UTC 표준 시간대의 경우
startTime
및endTime
은yyyy-MM-ddTHH:mm:ss
Z 형식을 따라야 합니다. 다른 표준 시간대의 경우startTime
및endTime
은yyyy-MM-ddTHH:mm:ss
형식을 따릅니다.ISO 8601 표준에 따라 타임스탬프의
Z
접미사는 날짜/시간을 UTC 표준 시간대로 표시하는 데 사용되고,timeZone
필드를 무의미하게 만듭니다. UTC 표준 시간대의Z
접미사가 없으면 트리거 활성화 시 오류가 발생합니다.이 트리거는
Adfv2QuickStartPipeline
파이프라인과 연결되어 있습니다. 여러 파이프라인을 하나의 트리거와 연결하려면pipelineReference
섹션을 더 추가하세요.빠른 시작의 파이프라인은 두 개의
parameters
값inputPath
및outputPath
를 사용합니다. 이러한 매개 변수 값을 트리거에서 전달합니다.
Set-AzDataFactoryV2Trigger cmdlet을 사용하여 트리거를 만듭니다.
Set-AzDataFactoryV2Trigger -ResourceGroupName $ResourceGroupName -DataFactoryName $DataFactoryName -Name "MyTrigger" -DefinitionFile "C:\ADFv2QuickStartPSH\MyTrigger.json"
Get-AzDataFactoryV2Trigger cmdlet을 사용하여 트리거의 상태가 중지됨인지 확인합니다.
Get-AzDataFactoryV2Trigger -ResourceGroupName $ResourceGroupName -DataFactoryName $DataFactoryName -Name "MyTrigger"
Start-AzDataFactoryV2Trigger cmdlet을 사용하여 트리거를 시작합니다.
Start-AzDataFactoryV2Trigger -ResourceGroupName $ResourceGroupName -DataFactoryName $DataFactoryName -Name "MyTrigger"
Get-AzDataFactoryV2Trigger cmdlet을 사용하여 트리거의 상태가 시작됨인지 확인합니다.
Get-AzDataFactoryV2Trigger -ResourceGroupName $ResourceGroupName -DataFactoryName $DataFactoryName -Name "MyTrigger"
Get-AzDataFactoryV2TriggerRun cmdlet을 사용하여 Azure PowerShell에서 트리거 실행을 가져옵니다. 트리거 실행에 대한 정보를 가져오려면 다음 명령을 주기적으로 실행합니다. 트리거 정의의 값과 일치하도록
TriggerRunStartedAfter
및TriggerRunStartedBefore
값을 업데이트합니다.Get-AzDataFactoryV2TriggerRun -ResourceGroupName $ResourceGroupName -DataFactoryName $DataFactoryName -TriggerName "MyTrigger" -TriggerRunStartedAfter "2017-12-08T00:00:00" -TriggerRunStartedBefore "2017-12-08T01:00:00"
참고 항목
일정 트리거의 트리거 시간은 UTC 타임스탬프에서 지정됩니다.
TriggerRunStartedAfter
및TriggerRunStartedBefore
에는 UTC 타임스탬프도 필요합니다.Azure Portal에서 트리거 실행 및 파이프라인 실행을 모니터링하려면 파이프라인 실행 모니터링을 참조하세요.
Azure CLI
이 섹션에서는 Azure CLI를 사용하여 일정 트리거를 만들고 시작 및 모니터링하는 방법을 보여 줍니다. 이 샘플이 작동하는지 확인하려면 먼저 빠른 시작: Azure CLI를 사용하여 Azure Data Factory 만들기를 진행합니다. 그런 다음, 15분마다 실행되는 일정 트리거를 만들고 시작하는 단계를 따릅니다. 트리거는 빠른 시작의 일부로 만든 Adfv2QuickStartPipeline
이라는 파이프라인과 연결되어 있습니다.
필수 조건
Azure Cloud Shell에서 Bash 환경을 사용합니다. 자세한 내용은 Azure Cloud Shell의 Bash에 대한 빠른 시작을 참조하세요.
CLI 참조 명령을 로컬에서 실행하려면 Azure CLI를 설치합니다. Windows 또는 macOS에서 실행 중인 경우 Docker 컨테이너에서 Azure CLI를 실행하는 것이 좋습니다. 자세한 내용은 Docker 컨테이너에서 Azure CLI를 실행하는 방법을 참조하세요.
로컬 설치를 사용하는 경우 az login 명령을 사용하여 Azure CLI에 로그인합니다. 인증 프로세스를 완료하려면 터미널에 표시되는 단계를 수행합니다. 다른 로그인 옵션은 Azure CLI를 사용하여 로그인을 참조하세요.
메시지가 표시되면 처음 사용할 때 Azure CLI 확장을 설치합니다. 확장에 대한 자세한 내용은 Azure CLI에서 확장 사용을 참조하세요.
az version을 실행하여 설치된 버전과 종속 라이브러리를 찾습니다. 최신 버전으로 업그레이드하려면 az upgrade를 실행합니다.
샘플 코드
작업 디렉터리에서 트리거 속성을 사용하여 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
요소는 트리거가 만들어진 표준 시간대를 지정합니다. 이 설정은startTime
및endTime
둘 다에 영향을 줍니다.endTime
요소는startTime
요소 값 이후 1시간입니다. 따라서 트리거는 시작 시간 이후 15분, 30분, 45분에 파이프라인을 실행합니다. 시작 시간을 현재 UTC 시간으로 업데이트하고, 종료 시간을 시작 시간의 1시간 후로 업데이트하는 것에 유의하세요.Important
UTC 표준 시간대의 경우
startTime
및 endTime은yyyy-MM-ddTHH:mm:ss
Z 형식을 따라야 합니다. 다른 표준 시간대의 경우startTime
및endTime
은yyyy-MM-ddTHH:mm:ss
형식을 따릅니다.ISO 8601 표준에 따라 타임스탬프의 Z 접미사는 날짜/시간을 UTC 표준 시간대로 표시하는 데 사용되고,
timeZone
필드를 무의미하게 만듭니다. UTC 표준 시간대의 Z 접미사가 없으면 트리거 활성화 시 오류가 발생합니다.이 트리거는
Adfv2QuickStartPipeline
파이프라인과 연결되어 있습니다. 여러 파이프라인을 하나의 트리거와 연결하려면pipelineReference
섹션을 더 추가하세요.빠른 시작의 파이프라인은 두 개의
parameters
값inputPath
및outputPath
를 사용합니다. 이러한 매개 변수 값을 트리거에서 전달합니다.
az datafactory trigger create 명령을 사용하여 트리거를 만듭니다.
az datafactory trigger create --resource-group "ADFQuickStartRG" --factory-name "ADFTutorialFactory" --name "MyTrigger" --properties @MyTrigger.json
az datafactory trigger show 명령을 사용하여 트리거 상태가 중지됨인지 확인합니다.
az datafactory trigger show --resource-group "ADFQuickStartRG" --factory-name "ADFTutorialFactory" --name "MyTrigger"
az datafactory trigger start 명령을 사용하여 트리거를 시작합니다.
az datafactory trigger start --resource-group "ADFQuickStartRG" --factory-name "ADFTutorialFactory" --name "MyTrigger"
az datafactory trigger show 명령을 사용하여 트리거 상태가 시작됨인지 확인합니다.
az datafactory trigger show --resource-group "ADFQuickStartRG" --factory-name "ADFTutorialFactory" --name "MyTrigger"
Azure CLI에서 az datafactory trigger-run query-by-factory 명령을 사용하여 트리거 실행을 가져옵니다. 트리거 실행에 대한 정보를 가져오려면 다음 명령을 주기적으로 실행합니다. 트리거 정의의 값과 일치하도록
last-updated-after
및last-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-after 및 last-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
, WindowStart
및 WindowEnd
를 사용하여 분할된 데이터를 읽거나 쓰도록 지원합니다. 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 , endTime 및 schedule 에 영향을 줍니다. 지원되는 표준 시간대 목록을 참조하세요. |
recurrence |
트리거에 대한 되풀이 규칙을 지정하는 recurrence 개체입니다. 되풀이 개체는 frequency , interval , endTime , count 및 schedule 요소를 지원합니다. 되풀이 개체가 정의된 경우 frequency 요소는 필수입니다. 되풀이 개체의 다른 요소는 선택적입니다. |
frequency |
트리거가 되풀이되는 빈도 단위입니다. 지원되는 값에는 minute, hour, day , week 및 month . |
interval |
트리거가 실행되는 빈도를 결정하는 frequency 값의 간격을 나타내는 양의 정수입니다. 예를 들어 interval 이 3 이고 frequency 가 week 인 경우 트리거는 3주마다 되풀이됩니다. |
schedule |
트리거에 대한 되풀이 일정입니다. 지정된 frequency 값을 가진 트리거는 되풀이 일정을 기준으로 되풀이를 변경합니다. schedule 속성에는 분, 시간, 요일, 날짜, 주차를 기준으로 하는 되풀이에 대한 수정 내용이 포함됩니다. |
Important
UTC 표준 시간대의 경우 startTime
및 endTime
은 yyyy-MM-ddTHH:mm:ss
Z 형식을 따라야 합니다. 다른 표준 시간대의 경우 startTime
및 endTime
은 yyyy-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 |
트리거가 실행되는 요일입니다. 값은 빈도가 주인 경우에만 지정될 수 있습니다. |
|
monthlyOccurrences |
트리거가 실행되는 날짜입니다. 값은 빈도가 월인 경우에만 지정될 수 있습니다. |
|
monthDays |
트리거가 실행되는 날짜입니다. 값은 빈도가 월인 경우에만 지정될 수 있습니다. |
|
트리거 되풀이 일정의 예
이 섹션은 되풀이 일정의 예를 제공하며 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에 실행됩니다.이 일정은 hour 값 frequency , 1 값 interval 및 schedule 이 없는 트리거를 유지하는 것과 같습니다. 다른 frequency 및 interval 값으로 이 일정을 사용하여 다른 트리거를 만들 수 있습니다. 예를 들어 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분에 실행됩니다. |
관련 콘텐츠
- 트리거에 대한 자세한 내용은 파이프라인 실행 및 트리거를 참조하세요.
- 파이프라인에서 트리거 메타데이터를 참조하는 방법에 대해 자세히 알아보려면 파이프라인 실행의 트리거 메타데이터 참조를 참조하세요.