Azure Data Factory でのパイプラインの実行とトリガーPipeline execution and triggers in Azure Data Factory

適用対象: はいAzure Data Factory はいAzure Synapse Analytics (プレビュー) APPLIES TO: yesAzure Data Factory yesAzure Synapse Analytics (Preview)

Azure Data Factory の "パイプライン実行" により、パイプラインの実行のインスタンスが定義されます。A pipeline run in Azure Data Factory defines an instance of a pipeline execution. たとえば、午前 8 時、午前 9 時、午前 10 時に実行するパイプラインがあるとします。For example, say you have a pipeline that executes at 8:00 AM, 9:00 AM, and 10:00 AM. この場合、パイプラインの 3 つの独立した実行 (パイプライン実行) があることになります。In this case, there are three separate runs of the pipeline or pipeline runs. 各パイプライン実行には、一意のパイプライン実行 ID があります。Each pipeline run has a unique pipeline run ID. 実行 ID は、特定のパイプライン実行を一意に定義する GUID です。A run ID is a GUID that uniquely defines that particular pipeline run.

パイプライン実行は、通常、パイプラインで定義したパラメーターに引数を渡してインスタンス化されます。Pipeline runs are typically instantiated by passing arguments to parameters that you define in the pipeline. パイプラインを実行するには、手動で行う方法と "トリガー" を使用する方法があります。You can execute a pipeline either manually or by using a trigger. この記事では、パイプラインを実行する両方の方法の詳細について説明します。This article provides details about both ways of executing a pipeline.

手動での実行 (オンデマンド)Manual execution (on-demand)

パイプラインの手動での実行は、"オンデマンド" 実行とも呼ばれます。The manual execution of a pipeline is also referred to as on-demand execution.

たとえば、copyPipeline という名前の基本的なパイプラインを実行するとします。For example, say you have a basic pipeline named copyPipeline that you want to execute. このパイプラインは、Azure Blob Storage のソース フォルダーから、同じストレージ内のコピー先フォルダーにコピーするアクティビティを伴う 1 つの単純なパイプラインです。The pipeline has a single activity that copies from an Azure Blob storage source folder to a destination folder in the same storage. 次の JSON 定義は、このサンプル パイプラインを示します。The following JSON definition shows this sample pipeline:

{
    "name": "copyPipeline",
    "properties": {
        "activities": [
            {
                "type": "Copy",
                "typeProperties": {
                    "source": {
                        "type": "BlobSource"
                    },
                    "sink": {
                        "type": "BlobSink"
                    }
                },
                "name": "CopyBlobtoBlob",
                "inputs": [
                    {
                        "referenceName": "sourceBlobDataset",
                        "type": "DatasetReference"
                    }
                ],
                "outputs": [
                    {
                        "referenceName": "sinkBlobDataset",
                        "type": "DatasetReference"
                    }
                ]
            }
        ],
        "parameters": {
            "sourceBlobContainer": {
                "type": "String"
            },
            "sinkBlobContainer": {
                "type": "String"
            }
        }
    }
}

この JSON 定義のパイプラインは、sourceBlobContainer および sinkBlobContainer という 2 つのパラメーターを使用します。In the JSON definition, the pipeline takes two parameters: sourceBlobContainer and sinkBlobContainer. 実行時に、これらのパラメーターに値を渡します。You pass values to these parameters at runtime.

次のいずれかの方法を使用して、パイプラインを手動で実行できます。You can manually run your pipeline by using one of the following methods:

  • .NET SDK.NET SDK
  • Azure PowerShell モジュールAzure PowerShell module
  • REST APIREST API
  • Python SDKPython SDK

REST APIREST API

次のサンプル コマンドは、REST API を使用してパイプラインを手動で実行する方法を示します。The following sample command shows you how to run your pipeline by using the REST API manually:

POST
https://management.azure.com/subscriptions/mySubId/resourceGroups/myResourceGroup/providers/Microsoft.DataFactory/factories/myDataFactory/pipelines/copyPipeline/createRun?api-version=2017-03-01-preview

サンプルの詳細については、REST API を使用してデータ ファクトリを作成する方法のクイック スタートに関する記事を参照してください。For a complete sample, see Quickstart: Create a data factory by using the REST API.

Azure PowerShellAzure PowerShell

注意

この記事は、新しい Azure PowerShell Az モジュールを使用するために更新されました。This article has been updated to use the new Azure PowerShell Az module. AzureRM モジュールはまだ使用でき、少なくとも 2020 年 12 月までは引き続きバグ修正が行われます。You can still use the AzureRM module, which will continue to receive bug fixes until at least December 2020. Az モジュールと AzureRM の互換性の詳細については、「Introducing the new Azure PowerShell Az module (新しい Azure PowerShell Az モジュールの概要)」を参照してください。To learn more about the new Az module and AzureRM compatibility, see Introducing the new Azure PowerShell Az module. Az モジュールのインストール手順については、Azure PowerShell のインストールを参照してください。For Az module installation instructions, see Install Azure PowerShell.

次のサンプル コマンドは、Azure PowerShell を使用してパイプラインを手動で実行する方法を示します。The following sample command shows you how to manually run your pipeline by using Azure PowerShell:

Invoke-AzDataFactoryV2Pipeline -DataFactory $df -PipelineName "Adfv2QuickStartPipeline" -ParameterFile .\PipelineParameters.json

パラメーターは要求ペイロードの本文に入れて渡します。You pass parameters in the body of the request payload. .NET SDK、Azure PowerShell、Python SDK では、呼び出しに引数として渡されるディクショナリに値を入れて渡します。In the .NET SDK, Azure PowerShell, and the Python SDK, you pass values in a dictionary that's passed as an argument to the call:

{
  "sourceBlobContainer": "MySourceFolder",
  "sinkBlobContainer": "MySinkFolder"
}

応答ペイロードは、パイプライン実行の一意の ID です。The response payload is a unique ID of the pipeline run:

{
  "runId": "0448d45a-a0bd-23f3-90a5-bfeea9264aed"
}

サンプルの詳細については、Azure PowerShell を使用してデータ ファクトリを作成する方法のクイック スタートに関する記事を参照してください。For a complete sample, see Quickstart: Create a data factory by using Azure PowerShell.

.NET SDK.NET SDK

次のサンプル呼び出しは、.NET SDK を使用してパイプラインを手動で実行する方法を示します。The following sample call shows you how to run your pipeline by using the .NET SDK manually:

client.Pipelines.CreateRunWithHttpMessagesAsync(resourceGroup, dataFactoryName, pipelineName, parameters)

サンプルの詳細については、.NET SDK を使用してデータ ファクトリを作成する方法のクイック スタートに関する記事を参照してください。For a complete sample, see Quickstart: Create a data factory by using the .NET SDK.

注意

.NET SDK を使用すると、Azure Functions や Web サービスなどから Data Factory パイプラインを呼び出すことができます。You can use the .NET SDK to invoke Data Factory pipelines from Azure Functions, from your web services, and so on.

トリガー実行Trigger execution

トリガーは、パイプラインの実行を開始するためのもう 1 つの方法です。Triggers are another way that you can execute a pipeline run. トリガーは、パイプラインの実行をいつ開始する必要があるかを決定する処理単位を表します。Triggers represent a unit of processing that determines when a pipeline execution needs to be kicked off. 現時点で、Data Factory では次の 3 種類のトリガーがサポートされています。Currently, Data Factory supports three types of triggers:

  • スケジュール トリガー:実時間のスケジュールによってパイプラインを起動するトリガー。Schedule trigger: A trigger that invokes a pipeline on a wall-clock schedule.

  • タンブリング ウィンドウ トリガー:状態を保持しながら定期的に実行されるトリガー。Tumbling window trigger: A trigger that operates on a periodic interval, while also retaining state.

  • イベントベースのトリガー:イベントに応答するトリガー。Event-based trigger: A trigger that responds to an event.

パイプラインとトリガーには多対多の関係があります (タンブリング ウィンドウ トリガーを除く)。複数のトリガーで 1 つのパイプラインを開始したり、1 つのトリガーで複数のパイプラインを開始したりできます。Pipelines and triggers have a many-to-many relationship (except for the tumbling window trigger).Multiple triggers can kick off a single pipeline, or a single trigger can kick off multiple pipelines. 次のトリガー定義では、pipelines プロパティは、特定のトリガーによってトリガーされるパイプラインのリストを参照します。In the following trigger definition, the pipelines property refers to a list of pipelines that are triggered by the particular trigger. プロパティ定義には、パイプライン パラメーターの値が含まれています。The property definition includes values for the pipeline parameters.

基本的なトリガー定義Basic trigger definition

{
    "properties": {
        "name": "MyTrigger",
        "type": "<type of trigger>",
        "typeProperties": {...},
        "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>"
                }
            }
        ]
    }
}

スケジュール トリガーSchedule trigger

スケジュール トリガーは、実時間のスケジュールでパイプラインを実行します。A schedule trigger runs pipelines on a wall-clock schedule. このトリガーは、定期的および高度な予定表のオプションをサポートしています。This trigger supports periodic and advanced calendar options. たとえば、トリガーでは、"毎週" または "月曜日午後 5 時と木曜日午後 9 時" のような間隔がサポートされています。For example, the trigger supports intervals like "weekly" or "Monday at 5:00 PM and Thursday at 9:00 PM." スケジュール トリガーは、時系列データと非時系列データを区別せず、データセット パターンに依存しないため、柔軟性があります。The schedule trigger is flexible because the dataset pattern is agnostic, and the trigger doesn't discern between time-series and non-time-series data.

スケジュール トリガーの詳細と例については、スケジュール トリガーの作成に関するページを参照してください。For more information about schedule triggers and, for examples, see Create a schedule trigger.

スケジュール トリガーの定義Schedule trigger definition

スケジュール トリガーを作成する場合、JSON 定義を使用してスケジュール設定と繰り返しを指定します。When you create a schedule trigger, you specify scheduling and recurrence by using a JSON definition.

スケジュール トリガーにパイプライン実行を開始させるには、特定のパイプラインのパイプライン参照をトリガー定義に組み込みます。To have your schedule trigger kick off a pipeline run, include a pipeline reference of the particular pipeline in the trigger definition. パイプラインとトリガーには多対多の関係があります。Pipelines and triggers have a many-to-many relationship. 複数のトリガーが 1 つのパイプラインを開始することができます。Multiple triggers can kick off a single pipeline. 1 つのトリガーが複数のパイプラインを開始することもできます。A single trigger can kick off multiple pipelines.

{
  "properties": {
    "type": "ScheduleTrigger",
    "typeProperties": {
      "recurrence": {
        "frequency": <<Minute, Hour, Day, Week, Year>>,
        "interval": <<int>>, // How often to fire
        "startTime": <<datetime>>,
        "endTime": <<datetime>>,
        "timeZone": "UTC",
        "schedule": { // Optional (advanced scheduling specifics)
          "hours": [<<0-24>>],
          "weekDays": [<<Monday-Sunday>>],
          "minutes": [<<0-60>>],
          "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>"
      }
    }
  ]}
}

重要

parameters プロパティは、pipelines 要素の必須プロパティです。The parameters property is a mandatory property of the pipelines element. パイプラインにパラメーターがない場合は、parameters プロパティ用に空の JSON 定義を含める必要があります。If your pipeline doesn't take any parameters, you must include an empty JSON definition for the parameters property.

スキーマの概要Schema overview

次の表は、トリガーの繰り返しとスケジュール設定に関連する主要なスキーマ要素の概要を示しています。The following table provides a high-level overview of the major schema elements that are related to recurrence and scheduling a trigger:

JSON プロパティJSON property 説明Description
startTimestartTime 日付/時刻の値。A date-time value. 基本的なスケジュールの場合、startTime プロパティの値が最初の発生日時に適用されます。For basic schedules, the value of the startTime property applies to the first occurrence. 複雑なスケジュールの場合、指定した startTime 値になるとすぐにトリガーが起動します。For complex schedules, the trigger starts no sooner than the specified startTime value.
endTimeendTime トリガーの終了日時。The end date and time for the trigger. 指定した終了日時を過ぎると、トリガーは実行されません。The trigger doesn't execute after the specified end date and time. このプロパティの値に過去の日時を指定することはできません。The value for the property can't be in the past.
timeZonetimeZone タイム ゾーン。The time zone. 現在、サポートされているタイム ゾーンは UTC のみです。Currently, only the UTC time zone is supported.
recurrencerecurrence トリガーの繰り返し規則を指定する recurrence オブジェクト。A recurrence object that specifies the recurrence rules for the trigger. この recurrence オブジェクトは、frequencyinterval endTime countschedule の各要素をサポートします。The recurrence object supports the frequency, interval, endTime, count, and schedule elements. recurrence オブジェクトを定義する場合、frequency 要素は必須です。When a recurrence object is defined, the frequency element is required. recurrence オブジェクトの他の要素は省略可能です。The other elements of the recurrence object are optional.
frequencyfrequency トリガーが繰り返される頻度の単位。The unit of frequency at which the trigger recurs. サポートされる値には、"minute"、"hour"、"day"、"week"、"month" があります。The supported values include "minute", "hour", "day", "week", and "month".
intervalinterval frequency 値の間隔を示す正の整数。A positive integer that denotes the interval for the frequency value. frequency の値は、トリガーの実行頻度を決定します。The frequency value determines how often the trigger runs. たとえば、interval が 3 で frequency が "week" の場合、トリガーは 3 週間ごとに繰り返されます。For example, if the interval is 3 and the frequency is "week", the trigger recurs every three weeks.
scheduleschedule トリガーの繰り返しのスケジュール。The recurrence schedule for the trigger. frequency 値が指定されたトリガーは、繰り返しのスケジュールに基づいて繰り返しが変更されます。A trigger with a specified frequency value alters its recurrence based on a recurrence schedule. schedule プロパティには、分、時間、曜日、日にち、週番号に基づいた繰り返しの変更を指定します。The schedule property contains modifications for the recurrence that are based on minutes, hours, weekdays, month days, and week number.

スケジュール トリガーの例Schedule trigger example

{
  "properties": {
    "name": "MyTrigger",
    "type": "ScheduleTrigger",
    "typeProperties": {
      "recurrence": {
        "frequency": "Hour",
        "interval": 1,
        "startTime": "2017-11-01T09:00:00-08:00",
        "endTime": "2017-11-02T22:00:00-08:00"
      }
    },
    "pipelines": [{
        "pipelineReference": {
          "type": "PipelineReference",
          "referenceName": "SQLServerToBlobPipeline"
        },
        "parameters": {}
      },
      {
        "pipelineReference": {
          "type": "PipelineReference",
          "referenceName": "SQLServerToAzureSQLPipeline"
        },
        "parameters": {}
      }
    ]
  }
}

スキーマの既定値、制限、例Schema defaults, limits, and examples

JSON プロパティJSON property TypeType 必須Required 既定値Default value 有効な値Valid values Example
startTimestartTime stringstring はいYes なしNone ISO 8601 の日付/時刻ISO 8601 date-times "startTime" : "2013-01-09T09:30:00-08:00"
recurrencerecurrence objectobject はいYes なしNone recurrence オブジェクトA recurrence object "recurrence" : { "frequency" : "monthly", "interval" : 1 }
intervalinterval numbernumber いいえNo 11 1 から 1,0001 to 1000 "interval":10
endTimeendTime stringstring はいYes なしNone 将来の時刻を表す日付/時刻の値A date-time value that represents a time in the future "endTime" : "2013-02-09T09:30:00-08:00"
scheduleschedule objectobject いいえNo なしNone schedule オブジェクトA schedule object "schedule" : { "minute" : [30], "hour" : [8,17] }

startTime プロパティstartTime property

次の表に、startTime プロパティでトリガー実行を制御する方法を示します。The following table shows you how the startTime property controls a trigger run:

startTime の値startTime value スケジュールなしの繰り返しRecurrence without schedule スケジュールありの繰り返しRecurrence with schedule
開始時刻が過去Start time is in the past 開始時刻より後の将来の最初の実行時刻を計算し、その時刻に実行されます。Calculates the first future execution time after the start time, and runs at that time.

2 回目以降は、最後の実行時刻から計算して実行します。Runs subsequent executions calculated from the last execution time.

この表の後の例を参照してください。See the example that follows this table.
トリガーは、指定した開始時刻になると "すぐに" 起動します。The trigger starts no sooner than the specified start time. 最初は、開始時刻から計算したスケジュールに基づいて実行されます。The first occurrence is based on the schedule, calculated from the start time.

以降は、繰り返しのスケジュールに基づいて実行されます。Runs subsequent executions based on the recurrence schedule.
開始時刻が将来または現在Start time is in the future or the current time 指定した開始時刻に 1 回実行されます。Runs once at the specified start time.

2 回目以降は、最後の実行時刻から計算して実行します。Runs subsequent executions calculated from the last execution time.
トリガーは、指定した開始時刻になると "すぐに" 起動します。The trigger starts no sooner than the specified start time. 最初は、開始時刻から計算したスケジュールに基づいて実行されます。The first occurrence is based on the schedule, calculated from the start time.

以降は、繰り返しのスケジュールに基づいて実行されます。Runs subsequent executions based on the recurrence schedule.

ここでは、開始時刻が過去であり、スケジュールなしの繰り返しが設定されている場合の動作の例を説明します。Let's look at an example of what happens when the start time is in the past, with a recurrence, but no schedule. 現在の時刻が 2017 年 4 月 8 日 13 時、開始時刻が 2017 年 4 月 7 日 14 時、繰り返しが 2 日ごとであると仮定しますAssume that the current time is 2017-04-08 13:00, the start time is 2017-04-07 14:00, and the recurrence is every two days. (recurrence 値を定義するには、frequency プロパティを "day"、interval プロパティを 2 に設定します)。startTime 値が過去であり、現在の時刻よりも前であることに注意してください。(The recurrence value is defined by setting the frequency property to "day" and the interval property to 2.) Notice that the startTime value is in the past and occurs before the current time.

これらの条件では、最初の実行は 2017 年 4 月 9 日の 14 時です。Under these conditions, the first execution is 2017-04-09 at 14:00. Scheduler エンジンは、開始時刻から実行を計算します。The Scheduler engine calculates execution occurrences from the start time. 過去のインスタンスはすべて破棄されます。Any instances in the past are discarded. エンジンは、将来発生する次回のインスタンスを使用します。The engine uses the next instance that occurs in the future. このシナリオでは、開始時刻は 2017 年 4 月 7 日の午後 2 時になります。In this scenario, the start time is 2017-04-07 at 2:00 PM. 次回のインスタンスは 2 日後、つまり 2017 年 4 月 9 日の午後 2 時となります。The next instance is two days from that time, which is on 2017-04-09 at 2:00 PM.

startTime が 2017 年 4 月 5 日 14 時または 2017 年 4 月 1 日 14 時であっても、最初の実行時間は同じです。The first execution time is the same even whether startTime is 2017-04-05 14:00 or 2017-04-01 14:00. 最初の実行後、以降の実行はスケジュールを使用して計算されます。After the first execution, subsequent executions are calculated by using the schedule. したがって、以降の実行は、2017 年 4 月 11 日の午後 2 時、2017 年 4 月 13 日の午後 2 時、2017 年 4 月 15 日の午後 2 時と続きます。Therefore, the subsequent executions are on 2017-04-11 at 2:00 PM, then on 2017-04-13 at 2:00 PM, then on 2017-04-15 at 2:00 PM, and so on.

最後に、トリガーのスケジュールに時間または分が設定されていない場合は、最初の実行の時間または分が既定値として使用されます。Finally, when hours or minutes aren't set in the schedule for a trigger, the hours or minutes of the first execution are used as defaults.

schedule プロパティschedule property

schedule を使用すると、トリガーの実行回数を "制限" できます。You can use schedule to limit the number of trigger executions. たとえば、月単位の頻度を指定したトリガーを 31 日にのみ実行するようにスケジュールすると、トリガーは 31 日がある月にのみ実行されます。For example, if a trigger with a monthly frequency is scheduled to run only on day 31, the trigger runs only in those months that have a thirty-first day.

schedule を使用してトリガーの実行回数を "増やす" こともできます。You can also use schedule to expand the number of trigger executions. たとえば、月単位の頻度を指定したトリガーを月の 1 日と 2 日に実行するようにスケジュールすると、トリガーは月に 1 回ではなく、月の 1 日と 2 日に実行されます。For example, a trigger with a monthly frequency that's scheduled to run on month days 1 and 2, runs on the first and second days of the month, rather than once a month.

複数の schedule 要素を指定した場合は、評価の順序は大きいスケジュール設定から小さいスケジュール設定の順序となります。つまり、週番号、月の日、曜日、時間、および分という順序です。If multiple schedule elements are specified, the order of evaluation is from the largest to the smallest schedule setting: week number, month day, weekday, hour, minute.

次の表に、schedule の要素の詳細を示します。The following table describes the schedule elements in detail:

JSON 要素JSON element 説明Description 有効な値Valid values
minutes トリガーを実行する時刻 (分)。Minutes of the hour at which the trigger runs. - Integer- Integer
- 整数の配列- Array of integers
hourshours トリガーを実行する時刻 (時)。Hours of the day at which the trigger runs. - Integer- Integer
- 整数の配列- Array of integers
weekDaysweekDays トリガーを実行する曜日。Days of the week the trigger runs. この値を指定できるのは、頻度が週単位の場合のみです。The value can be specified only with a weekly frequency.
- Monday- Monday
- Tuesday- Tuesday
- Wednesday- Wednesday
- Thursday- Thursday
- Friday- Friday
- Saturday- Saturday
- Sunday- Sunday
- 曜日の値の配列 (配列の最大サイズは 7)- Array of day values (maximum array size is 7)

曜日の値の大文字小文字は区別されませんDay values aren't case-sensitive
monthlyOccurrencesmonthlyOccurrences トリガーが実行される月の特定曜日。Days of the month on which the trigger runs. この値を指定できるのは、頻度が月単位の場合のみです。The value can be specified with a monthly frequency only. - monthlyOccurrence オブジェクトの配列: { "day": day, "occurrence": occurrence }- Array of monthlyOccurrence objects: { "day": day, "occurrence": occurrence }
- day 属性は、トリガーが実行される曜日を表します。- The day attribute is the day of the week on which the trigger runs. たとえば、monthlyOccurrences プロパティの day 値が {Sunday} の場合は、月の毎週日曜日を意味します。For example, a monthlyOccurrences property with a day value of {Sunday} means every Sunday of the month. day 属性は必須です。The day attribute is required.
- occurrence 属性は、月内の指定した day の出現を表します。- The occurrence attribute is the occurrence of the specified day during the month. たとえば、monthlyOccurrences プロパティの day 値と occurrence 値が {Sunday, -1} の場合、月の最後の日曜日を意味します。For example, a monthlyOccurrences property with day and occurrence values of {Sunday, -1} means the last Sunday of the month. occurrence 属性は省略可能です。The occurrence attribute is optional.
monthDaysmonthDays トリガーが実行される日にち。Day of the month on which the trigger runs. この値を指定できるのは、頻度が月単位の場合のみです。The value can be specified with a monthly frequency only. - -1 以下かつ -31 以上の任意の値- Any value <= -1 and >= -31
- 1 以上かつ 31 以下の任意の値- Any value >= 1 and <= 31
- 値の配列- Array of values

タンブリング ウィンドウ トリガーTumbling window trigger

タンブリング ウィンドウ トリガーは、状態を維持しながら、指定した開始時刻から定期的に実行される種類のトリガーです。Tumbling window triggers are a type of trigger that fires at a periodic time interval from a specified start time, while retaining state. タンブリング ウィンドウとは、固定サイズで重複しない一連の連続する時間間隔です。Tumbling windows are a series of fixed-sized, non-overlapping, and contiguous time intervals.

タンブリング ウィンドウ トリガーの詳細と例については、タンブリング ウィンドウ トリガーの作成に関するページを参照してください。For more information about tumbling window triggers and, for examples, see Create a tumbling window trigger.

イベントベースのトリガーEvent-based trigger

イベントベースのトリガーは、ファイルの到着、ファイルの削除などのイベントに応答して、Azure Blob Storage 内でパイプラインを実行します。An event-based trigger runs pipelines in response to an event, such as the arrival of a file, or the deletion of a file, in Azure Blob Storage.

イベントベースのトリガーの詳細については、「Create a trigger that runs a pipeline in response to an event (イベントに応答してパイプラインを実行するトリガーの作成)」を参照してください。For more information about event-based triggers, see Create a trigger that runs a pipeline in response to an event.

トリガーの繰り返しのスケジュールの例Examples of trigger recurrence schedules

このセクションでは、繰り返しのスケジュールの例を示します。This section provides examples of recurrence schedules. schedule オブジェクトとその要素に焦点を当てています。It focuses on the schedule object and its elements.

各例は、interval 値が 1 であり、schedule の定義に従って frequency に適切な値が指定されていることを前提としています。The examples assume that the interval value is 1 and that the frequency value is correct according to the schedule definition. たとえば、frequency 値に "day" を指定し、schedule オブジェクトで monthDays の変更を指定することはできません。For example, you can't have a frequency value of "day" and also have a monthDays modification in the schedule object. これらの種類の制限については、前のセクションの表で説明されています。These kinds of restrictions are described in the table in the preceding section.

Example 説明Description
{"hours":[5]} 毎日午前 5 時に実行されます。Run at 5:00 AM every day.
{"minutes":[15], "hours":[5]} 毎日午前 5 時 15 分に実行されます。Run at 5:15 AM every day.
{"minutes":[15], "hours":[5,17]} 毎日午前 5 時 15 分と午後 5 時 15 分に実行されます。Run at 5:15 AM and 5:15 PM every day.
{"minutes":[15,45], "hours":[5,17]} 毎日午前 5 時 15 分、午前 5 時 45 分、午後 5 時 15 分、午後 5 時 45 分に実行されます。Run at 5:15 AM, 5:45 AM, 5:15 PM, and 5:45 PM every day.
{"minutes":[0,15,30,45]} 15 分ごとに実行されます。Run every 15 minutes.
{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 時間ごとに実行されます。Run every hour.

このトリガーは 1 時間おきに実行されます。This trigger runs every hour. startTime 値が指定されている場合、分はこの値によって制御されます。The minutes are controlled by the startTime value, when a value is specified. 値が指定されていない場合は、作成時刻によって制御されます。If a value isn't specified, the minutes are controlled by the creation time. たとえば、開始時刻または作成時刻が (どちらが適用される場合でも) 午後 12 時 25 分の場合、トリガーは 0 時 25 分、1 時 25 分、2 時 25 分...23 時 25 分に実行されます。For example, if the start time or creation time (whichever applies) is 12:25 PM, the trigger runs at 00:25, 01:25, 02:25, ..., and 23:25.

このスケジュールは、frequency 値に "hour"、interval 値に 1 を指定し、schedule を指定しないトリガーに相当します。This schedule is equivalent to having a trigger with a frequency value of "hour", an interval value of 1, and no schedule. frequencyinterval に別の値を指定してこのスケジュールを使用すると、他のトリガーを作成できます。This schedule can be used with different frequency and interval values to create other triggers. たとえば、frequency 値が "month" の場合は、月に 1 回だけ実行され、frequency 値が "day" の場合は、毎日実行されます。For example, when the frequency value is "month", the schedule runs only once a month, rather than every day when the frequency value is "day".
{"minutes":[0]} 毎正時に実行されます。Run every hour on the hour.

このトリガーは、毎正時 (午前 0 時、午前 1 時、午前 2 時 (以降も同様)) に実行されます。This trigger runs every hour on the hour starting at 12:00 AM, 1:00 AM, 2:00 AM, and so on.

このスケジュールは、frequency 値に "hour"、startTime 値に 0 分を指定したトリガー、または schedule を設定せずに frequency 値に "day" を指定したトリガーに相当します。This schedule is equivalent to a trigger with a frequency value of "hour" and a startTime value of zero minutes, and no schedule but a frequency value of "day". frequency 値が "week" または "month" の場合、スケジュールはそれぞれ週に 1 日または月に 1 日だけ実行されます。If the frequency value is "week" or "month", the schedule executes one day a week or one day a month only, respectively.
{"minutes":[15]} 毎正時から 15 分後に実行されます。Run at 15 minutes past every hour.

このトリガーは、毎正時から 15 分後 (午前 0 時 15 分、午前 1 時 15 分、午前 2 時 15 分 (以降も同様)、最後が午後 11 時 15 分) に実行されます。This trigger runs every hour at 15 minutes past the hour starting at 00:15 AM, 1:15 AM, 2:15 AM, and so on, and ending at 11:15 PM.
{"hours":[17], "weekDays":["saturday"]} 毎週土曜日の午後 5 時に実行されます。Run at 5:00 PM on Saturdays every week.
{"hours":[17], "weekDays":["monday", "wednesday", "friday"]} 毎週月曜日、水曜日、金曜日の午後 5 時に実行されます。Run at 5:00 PM on Monday, Wednesday, and Friday every week.
{"minutes":[15,45], "hours":[17], "weekDays":["monday", "wednesday", "friday"]} 毎週月曜日、水曜日、金曜日の午後 5 時 15 分と午後 5 時 45 分に実行されます。Run at 5:15 PM and 5:45 PM on Monday, Wednesday, and Friday every week.
{"minutes":[0,15,30,45], "weekDays":["monday", "tuesday", "wednesday", "thursday", "friday"]} 平日に 15 分ごとに実行されます。Run every 15 minutes on weekdays.
{"minutes":[0,15,30,45], "hours": [9, 10, 11, 12, 13, 14, 15, 16] "weekDays":["monday", "tuesday", "wednesday", "thursday", "friday"]} 平日の午前 9 時から午後 4 時 45 分まで 15 分ごとに実行されます。Run every 15 minutes on weekdays between 9:00 AM and 4:45 PM.
{"weekDays":["tuesday", "thursday"]} 火曜日と木曜日の指定された開始時刻に実行されます。Run on Tuesdays and Thursdays at the specified start time.
{"minutes":[0], "hours":[6], "monthDays":[28]} 毎月 28 日の午前 6 時に実行されます (frequency 値が "month" であることを想定)。Run at 6:00 AM on the twenty-eighth day of every month (assuming a frequency value of "month").
{"minutes":[0], "hours":[6], "monthDays":[-1]} 月の最終日の午前 6 時に実行されます。Run at 6:00 AM on the last day of the month.

月の最終日にトリガーを実行するには、28、29、30、31 という日にちではなく -1 を使用します。To run a trigger on the last day of a month, use -1 instead of day 28, 29, 30, or 31.
{"minutes":[0], "hours":[6], "monthDays":[1,-1]} 毎月最初と最後の日の午前 6 時に実行されます。Run at 6:00 AM on the first and last day of every month.
{monthDays":[1,14]} 毎月 1 日と 14 日の指定された開始時刻に実行されます。Run on the first and fourteenth day of every month at the specified start time.
{"minutes":[0], "hours":[5], "monthlyOccurrences":[{"day":"friday", "occurrence":1}]} 毎月最初の金曜日の午前 5 時に実行されます。Run on the first Friday of every month at 5:00 AM.
{"monthlyOccurrences":[{"day":"friday", "occurrence":1}]} 毎月最初の金曜日の指定された開始時刻に実行されます。Run on the first Friday of every month at the specified start time.
{"monthlyOccurrences":[{"day":"friday", "occurrence":-3}]} 毎月、月の最後から 3 番目の金曜日の指定された開始時刻に実行されます。Run on the third Friday from the end of the month, every month, at the specified start time.
{"minutes":[15], "hours":[5], "monthlyOccurrences":[{"day":"friday", "occurrence":1},{"day":"friday", "occurrence":-1}]} 毎月最初と最後の金曜日の午前 5 時 15 分に実行されます。Run on the first and last Friday of every month at 5:15 AM.
{"monthlyOccurrences":[{"day":"friday", "occurrence":1},{"day":"friday", "occurrence":-1}]} 毎月最初と最後の金曜日の指定された開始時刻に実行されます。Run on the first and last Friday of every month at the specified start time.
{"monthlyOccurrences":[{"day":"friday", "occurrence":5}]} 毎月第 5 金曜日の指定された開始時刻に実行されます。Run on the fifth Friday of every month at the specified start time.

月に第 5 金曜日がない場合、パイプラインは実行されません。When there's no fifth Friday in a month, the pipeline doesn't run. 月の最後の金曜日にトリガーを実行する場合は、occurrence 値に 5 ではなく -1 を使用することを検討してください。To run the trigger on the last occurring Friday of the month, consider using -1 instead of 5 for the occurrence value.
{"minutes":[0,15,30,45], "monthlyOccurrences":[{"day":"friday", "occurrence":-1}]} 月の最後の金曜日に 15 分ごとに実行されます。Run every 15 minutes on the last Friday of the month.
{"minutes":[15,45], "hours":[5,17], "monthlyOccurrences":[{"day":"wednesday", "occurrence":3}]} 毎月第 3 水曜日の午前 5 時 15 分、午前 5 時 45 分、午後 5 時 15 分、午後 5 時 45 分に実行されます。Run at 5:15 AM, 5:45 AM, 5:15 PM, and 5:45 PM on the third Wednesday of every month.

トリガーの種類の比較Trigger type comparison

タンブリング ウィンドウ トリガーとスケジュール トリガーは、どちらも時間のハートビートに対して動作します。The tumbling window trigger and the schedule trigger both operate on time heartbeats. これらはどのように違うのでしょうか。How are they different?

注意

タンブリング ウィンドウ トリガーの実行では、"トリガーされたパイプラインの実行が完了するまで待機します"。The tumbling window trigger run waits for the triggered pipeline run to finish. 実行状態には、トリガーされたパイプラインの実行の状態が反映されます。Its run state reflects the state of the triggered pipeline run. たとえば、トリガーされたパイプラインの実行が取り消された場合、対応するタンブリング ウィンドウ トリガーの実行が取り消し済みとマークされます。For example, if a triggered pipeline run is cancelled, the corresponding tumbling window trigger run is marked cancelled. これは、パイプラインの実行が開始されている限り成功としてマークされる、スケジュール トリガーの "ファイア アンド フォーゲット" ビヘイビアーとは異なります。This is different from the "fire and forget" behavior of the schedule trigger, which is marked successful as long as a pipeline run started.

次の表では、タンブリング ウィンドウ トリガーとスケジュール トリガーの比較を示します。The following table provides a comparison of the tumbling window trigger and schedule trigger:

ItemItem タンブリング ウィンドウ トリガーTumbling window trigger スケジュール トリガーSchedule trigger
バックフィル シナリオBackfill scenarios サポートされています。Supported. パイプライン実行は、過去のウィンドウ用にスケジュールを設定できます。Pipeline runs can be scheduled for windows in the past. サポートされていません。Not supported. パイプライン実行は、現時点および将来の期間のみに対して実行できます。Pipeline runs can be executed only on time periods from the current time and the future.
信頼性Reliability 100% の信頼性です。100% reliability. パイプライン実行は、指定した開始日から隙間なくすべてのウィンドウでスケジュールできます。Pipeline runs can be scheduled for all windows from a specified start date without gaps. 信頼性は低くなります。Less reliable.
再試行機能Retry capability サポートされています。Supported. 失敗したパイプライン実行には、既定の再試行ポリシー 0 か、トリガー定義でユーザーが指定したポリシーがあります。Failed pipeline runs have a default retry policy of 0, or a policy that's specified by the user in the trigger definition. コンカレンシー/サーバー/調整の制限が原因でパイプライン実行に失敗した場合は、自動的に再試行されます (つまり、状態コードが 400:ユーザー エラー、429:要求が多すぎる、500:内部サーバー エラーの場合)。Automatically retries when the pipeline runs fail due to concurrency/server/throttling limits (that is, status codes 400: User Error, 429: Too many requests, and 500: Internal Server error). サポートされていません。Not supported.
コンカレンシーConcurrency サポートされています。Supported. ユーザーは、トリガーのコンカレンシーの制限を明示的に設定できます。Users can explicitly set concurrency limits for the trigger. 1 から 50 個の同時実行のトリガーされたパイプライン実行が許可されます。Allows between 1 and 50 concurrent triggered pipeline runs. サポートされていません。Not supported.
システム変数System variables @trigger().scheduledTime および @trigger().startTime と共に、WindowStart および WindowEnd システム変数の使用もサポートします。Along with @trigger().scheduledTime and @trigger().startTime, it also supports the use of the WindowStart and WindowEnd system variables. ユーザーは、トリガー定義のトリガー システム変数として triggerOutputs().windowStartTime および triggerOutputs().windowEndTime にアクセスできます。Users can access triggerOutputs().windowStartTime and triggerOutputs().windowEndTime as trigger system variables in the trigger definition. 値はそれぞれ、ウィンドウの開始時刻と終了時刻として使用されます。The values are used as the window start time and window end time, respectively. たとえば、1 時間ごとに実行されるタンブリング ウィンドウ トリガーの場合、午前 1 時から午前 2 時までのウィンドウの定義は triggerOutputs().WindowStartTime = 2017-09-01T01:00:00ZtriggerOutputs().WindowEndTime = 2017-09-01T02:00:00Z です。For example, for a tumbling window trigger that runs every hour, for the window 1:00 AM to 2:00 AM, the definition is triggerOutputs().WindowStartTime = 2017-09-01T01:00:00Z and triggerOutputs().WindowEndTime = 2017-09-01T02:00:00Z. 既定の @trigger().scheduledTime および @trigger().startTime 変数のみがサポートされます。Only supports default @trigger().scheduledTime and @trigger().startTime variables.
パイプラインとトリガーのリレーションシップPipeline-to-trigger relationship 一対一のリレーションシップをサポートします。Supports a one-to-one relationship. トリガーできるパイプラインは 1 つだけです。Only one pipeline can be triggered. 多対多のリレーションシップをサポートします。Supports many-to-many relationships. 複数のトリガーが 1 つのパイプラインを開始することができます。Multiple triggers can kick off a single pipeline. 1 つのトリガーが複数のパイプラインを開始することもできます。A single trigger can kick off multiple pipelines.

次のステップNext steps

次のチュートリアルを参照してください。See the following tutorials: