Execução de pipelines e acionadores no Azure Data FactoryPipeline execution and triggers in Azure Data Factory

Uma execução de pipeline do Azure Data Factory define uma instância de uma execução de pipeline.A pipeline run in Azure Data Factory defines an instance of a pipeline execution. Por exemplo, imagine que tem um pipeline que é executado às 8:00, às 9:00 e às 10:00.For example, say you have a pipeline that executes at 8:00 AM, 9:00 AM, and 10:00 AM. Neste caso, existem três execuções separadas do pipeline (execuções de pipeline).In this case, there are three separate runs of the pipeline, or pipeline runs. Cada execução de pipeline tem um ID de execução de pipeline exclusivo.Each pipeline run has a unique pipeline run ID. Uma execução é um GUID que define exclusivamente essa execução de pipeline em particular.A run ID is a GUID that uniquely defines that particular pipeline run.

Normalmente, as execuções de pipeline são instanciadas pela transmissão de argumentos a parâmetros que são definidos no pipeline.Pipeline runs are typically instantiated by passing arguments to parameters that you define in the pipeline. Pode executar um pipeline manualmente ou com um acionador.You can execute a pipeline either manually or by using a trigger. Este artigo fornece detalhes sobre ambas a formas de executar um pipeline.This article provides details about both ways of executing a pipeline.

Execução manual (a pedido)Manual execution (on-demand)

À execução manual de um pipeline também se dá o nome de execução a pedido.The manual execution of a pipeline is also referred to as on-demand execution.

Por exemplo, digamos que tem um pipeline básico chamado copyPipeline e quer executá-lo.For example, say you have a basic pipeline named copyPipeline that you want to execute. O pipeline tem uma única atividade que copia a partir de uma pasta de origem do armazenamento de Blobs do Azure para uma pasta de destino no mesmo armazenamento.The pipeline has a single activity that copies from an Azure Blob storage source folder to a destination folder in the same storage. A definição JSON que se segue mostra este pipeline de exemplo: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"
            }
        }
    }
}

Na definição JSON, o pipeline utiliza dois parâmetros: sourceBlobContainer e sinkBlobContainer.In the JSON definition, the pipeline takes two parameters: sourceBlobContainer and sinkBlobContainer. Transmita os valores para estes parâmetros no runtime.You pass values to these parameters at runtime.

Pode executar manualmente o pipeline através de um dos métodos que se seguem:You can manually run your pipeline by using one of the following methods:

  • SDK .NET.NET SDK
  • Módulo do Azure PowerShellAzure PowerShell module
  • API RESTREST API
  • SDK PythonPython SDK

API RESTREST API

O comando de exemplo que se segue mostra como executar manualmente o pipeline com a API REST:The following sample command shows you how to manually run your pipeline by using the REST API:

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

Para obter um exemplo completo, veja Início Rápido: criar uma fábrica de dados com a API REST.For a complete sample, see Quickstart: Create a data factory by using the REST API.

Azure PowerShellAzure PowerShell

Nota

Este artigo foi atualizado para utilizar o novo módulo AZ do Azure PowerShell.This article has been updated to use the new Azure PowerShell Az module. Pode continuar a utilizar o módulo AzureRM, que continuará a receber correções de erros até, pelo menos, dezembro de 2020.You can still use the AzureRM module, which will continue to receive bug fixes until at least December 2020. Para obter mais informações sobre o novo módulo Az e a compatibilidade do AzureRM, veja Apresentação do novo módulo Az do Azure PowerShell.To learn more about the new Az module and AzureRM compatibility, see Introducing the new Azure PowerShell Az module. Para obter instruções de instalação do módulo Az, veja Instalar o Azure PowerShell.For Az module installation instructions, see Install Azure PowerShell.

O comando de exemplo que se segue mostra como executar manualmente o pipeline com o 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

Transmita os parâmetros no corpo do payload de pedidos.You pass parameters in the body of the request payload. No SDK de .NET, no Azure PowerShell e no SDK de Python, os valores são transmitidos num dicionário que, por sua vez, é transmitido como um argumento para a chamada: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"
}

O payload de resposta é um ID exclusivo da execução de pipeline:The response payload is a unique ID of the pipeline run:

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

Para obter um exemplo completo, veja Início Rápido: criar uma fábrica de dados com o Azure PowerShell.For a complete sample, see Quickstart: Create a data factory by using Azure PowerShell.

SDK .NET.NET SDK

A chamada de exemplo que se segue mostra como executar manualmente o pipeline com o SDK de .NET:The following sample call shows you how to manually run your pipeline by using the .NET SDK:

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

Para obter um exemplo completo, veja Início Rápido: criar uma fábrica de dados com o SDK de .NET.For a complete sample, see Quickstart: Create a data factory by using the .NET SDK.

Nota

Pode utilizar o SDK de .NET para invocar pipelines do Data Factory a partir de Funções do Azure, dos seus próprios serviços Web, etc.You can use the .NET SDK to invoke Data Factory pipelines from Azure Functions, from your own web services, and so on.

Execução de acionadoresTrigger execution

Os acionadores são outra forma de executar uma execução de pipeline.Triggers are another way that you can execute a pipeline run. Representam uma unidade de processamento que determina quando é que uma execução de pipeline tem de arrancar.Triggers represent a unit of processing that determines when a pipeline execution needs to be kicked off. Atualmente, o Data Factory suporta três tipos de acionadores:Currently, Data Factory supports three types of triggers:
  • Acionador de agenda: um acionador que invoca um pipeline com base numa agenda.Schedule trigger: A trigger that invokes a pipeline on a wall-clock schedule.

  • Acionador de janela em cascata: um acionador que opera num intervalo periódico, ao mesmo tempo que mantém o estado.Tumbling window trigger: A trigger that operates on a periodic interval, while also retaining state.

  • Acionador baseado em eventos: um acionador que responde a um evento.Event-based trigger: A trigger that responds to an event.

Pipelines e gatilhos têm uma relação muitos-para-muitos (exceto para o gatilho de janela em cascata). Vários gatilhos podem disparar um único pipeline, ou um único gatilho pode disparar vários pipelines.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. Na definição de acionador que se segue, a propriedade pipelines refere-se a uma lista de pipelines que são acionados pelo acionador especificado.In the following trigger definition, the pipelines property refers to a list of pipelines that are triggered by the particular trigger. A definição da propriedade inclui valores para os parâmetros do pipeline.The property definition includes values for the pipeline parameters.

Definição de acionador básicaBasic 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>"
                }
            }
        ]
    }
}

Acionador de AgendaSchedule trigger

Um acionador de agenda executa pipelines com base numa agenda.A schedule trigger runs pipelines on a wall-clock schedule. Este acionador suporta opções de calendário avançadas e periódicas.This trigger supports periodic and advanced calendar options. Por exemplo, o acionador suporta intervalos como "semanalmente" ou "Segunda-feira às 17:00 e quinta-feira às 21:00".For example, the trigger supports intervals like "weekly" or "Monday at 5:00 PM and Thursday at 9:00 PM." O acionador de agenda é flexível porque o padrão do conjunto de dados é agnóstico e o acionador não distingue entre dados de série de tempo e sem ser de série de tempo.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.

Para obter mais informações sobre acionadores de agenda e exemplos, veja Create a schedule trigger (Criar um acionador de agenda).For more information about schedule triggers and for examples, see Create a schedule trigger.

Definição de acionador de agendaSchedule trigger definition

Quando cria um acionador de agenda, o agendamento e a periodicidade são especificados com uma definição JSON.When you create a schedule trigger, you specify scheduling and recurrence by using a JSON definition.

Para que o acionador de agenda desencadeie uma execução de pipeline, inclua uma referência do pipeline em questão na definição do acionador.To have your schedule trigger kick off a pipeline run, include a pipeline reference of the particular pipeline in the trigger definition. Os pipelines e os acionadores têm uma relação muitos para muitos.Pipelines and triggers have a many-to-many relationship. Múltiplos acionadores podem arrancar um pipeline individual.Multiple triggers can kick off a single pipeline. Um acionador único pode arrancar vários pipelines.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>"
      }
    }
  ]}
}

Importante

A propriedade parameters é uma propriedade obrigatória do elemento pipelines.The parameters property is a mandatory property of the pipelines element. Se o seu pipeline não utiliza parâmetros, deve incluir uma definição JSON vazia para a propriedade parameters.If your pipeline doesn't take any parameters, you must include an empty JSON definition for the parameters property.

Descrição geral do esquemaSchema overview

A tabela que se segue fornece uma descrição geral de alto nível dos principais elementos do esquema relacionados com a periodicidade e o agendamento de um acionador:The following table provides a high-level overview of the major schema elements that are related to recurrence and scheduling a trigger:

Propriedade JSONJSON property DescriçãoDescription
startTimestartTime Um valor de data/hora.A date-time value. Para agendamentos básicos, o valor da propriedade startTime aplica-se à primeira ocorrência.For basic schedules, the value of the startTime property applies to the first occurrence. Para agendamentos complexos, o acionador é iniciado imediatamente a seguir ao valor especificado em startTime.For complex schedules, the trigger starts no sooner than the specified startTime value.
endTimeendTime A data e hora de fim do acionador.The end date and time for the trigger. O acionador não é executado após a data e hora de fim especificadas.The trigger doesn't execute after the specified end date and time. O valor da propriedade não pode situar-se no passado.The value for the property can't be in the past.
timeZonetimeZone O fuso horário.The time zone. Atualmente, o fuso horário UTC é o único suportado.Currently, only the UTC time zone is supported.
recurrencerecurrence Um objeto de periodicidade que especifica as regras de periodicidade do acionador.A recurrence object that specifies the recurrence rules for the trigger. O objeto de periodicidade suporta os elementos frequency, interval, endTime, count e schedule.The recurrence object supports the frequency, interval, endTime, count, and schedule elements. Quando um objeto de periodicidade é definido, o elemento frequency é obrigatório.When a recurrence object is defined, the frequency element is required. Os outros elementos do objeto de periodicidade são opcionais.The other elements of the recurrence object are optional.
frequencyfrequency A unidade que se refere à frequência com que o acionador voltar a ocorrer.The unit of frequency at which the trigger recurs. Os valores suportados incluem "minute", "hour", "day", "week" e "month".The supported values include "minute", "hour", "day", "week", and "month".
intervalinterval Um valor inteiro positivo que indica o intervalo do valor frequency.A positive integer that denotes the interval for the frequency value. O valor frequency determina o número de vezes que o acionador é executado.The frequency value determines how often the trigger runs. Por exemplo, se interval for 3 e frequency for "week", o acionador repete-se de três em três semanas.For example, if the interval is 3 and the frequency is "week", the trigger recurs every three weeks.
scheduleschedule A agenda de periodicidade do acionador.The recurrence schedule for the trigger. Um acionador que tenha um valor frequency especificado modifica a respetiva periodicidade com base numa agenda de periodicidade.A trigger with a specified frequency value alters its recurrence based on a recurrence schedule. A propriedade schedule contém modificações da periodicidade baseadas em minutos, horas, dias de semana, dias do mês e número da semana.The schedule property contains modifications for the recurrence that are based on minutes, hours, week days, month days, and week number.

Exemplo de acionador ScheduleSchedule 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": {}
            }
        ]
    }
}

Predefinições, limites e exemplos do esquemaSchema defaults, limits, and examples

Propriedade JSONJSON property TipoType NecessárioRequired Valor predefinidoDefault value Valores válidosValid values ExemploExample
startTimestartTime stringstring SimYes NenhumNone Data-horas no formato ISO 8601ISO 8601 date-times "startTime" : "2013-01-09T09:30:00-08:00"
recurrencerecurrence objetoobject SimYes NenhumNone Um objeto de periodicidadeA recurrence object "recurrence" : { "frequency" : "monthly", "interval" : 1 }
intervalinterval númeronumber NãoNo 11 1 a 10001 to 1000 "interval":10
endTimeendTime stringstring SimYes NenhumNone Um valor de data/hora que representa uma hora no futuroA date-time value that represents a time in the future "endTime" : "2013-02-09T09:30:00-08:00"
scheduleschedule objetoobject NãoNo NenhumNone Um objeto de agendaA schedule object "schedule" : { "minute" : [30], "hour" : [8,17] }

Propriedade startTimestartTime property

A tabela que se segue mostra o modo como a propriedade startTime controla a execução de um acionador:The following table shows you how the startTime property controls a trigger run:

valor de startTimestartTime value Periodicidade sem agendaRecurrence without schedule Periodicidade com agendaRecurrence with schedule
A hora de início é no passadoStart time is in the past Calcula a primeira hora de execução no futuro após a hora de início e é executada nessa hora.Calculates the first future execution time after the start time, and runs at that time.

Executa as execuções subsequentes com base no cálculo da última hora de execução.Runs subsequent executions calculated from the last execution time.

Veja o exemplo a seguir à tabela.See the example that follows this table.
O acionador é iniciado imediatamente a seguir à hora de início especificada.The trigger starts no sooner than the specified start time. A primeira ocorrência é baseada na agenda calculada a partir da hora de início.The first occurrence is based on the schedule, calculated from the start time.

Executa as execuções subsequentes com base na agenda de periodicidade.Runs subsequent executions based on the recurrence schedule.
A hora de início é no futuro ou na hora atualStart time is in the future or the current time É executada uma vez na hora de início especificada.Runs once at the specified start time.

Executa as execuções subsequentes com base no cálculo da última hora de execução.Runs subsequent executions calculated from the last execution time.
O acionador é iniciado imediatamente a seguir à hora de início especificada.The trigger starts no sooner than the specified start time. A primeira ocorrência é baseada na agenda calculada a partir da hora de início.The first occurrence is based on the schedule, calculated from the start time.

Executa as execuções subsequentes com base na agenda de periodicidade.Runs subsequent executions based on the recurrence schedule.

Vejamos um exemplo do que acontece quando a hora de início (startTime) se situa no passado, com periodicidade, mas sem agenda.Let's look at an example of what happens when the start time is in the past, with a recurrence, but no schedule. Parta do princípio de que a hora atual é 2017-04-08 13:00, a hora de início é 2017-04-07 14:00 e a periodicidade é de dois em dois dias.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. (O valor de recorrência é definido definindo a propriedade Frequency como "Day" e a propriedade Interval como 2.) Observe que o valor StartTime está no passado e ocorre antes da hora atual.(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.

Sob essas condições, a primeira execução é 2017-04-09 às 14:00.Under these conditions, the first execution is 2017-04-09 at 14:00. O motor do Scheduler calcula as ocorrências de execução a partir da hora de início.The Scheduler engine calculates execution occurrences from the start time. Quaisquer instâncias no passado são eliminadas.Any instances in the past are discarded. O motor utiliza a instância seguinte que ocorre no futuro.The engine uses the next instance that occurs in the future. Neste cenário, a hora de início é 2017-04-07 às 14:00.In this scenario, the start time is 2017-04-07 at 2:00 PM. A instância seguinte é dois dias a contar dessa hora, que é o dia 2017-04-09, às 14:00.The next instance is two days from that time, which is on 2017-04-09 at 2:00 PM.

A primeira hora de execução é a mesma, mesmo que startTime seja 2017-04-05 14:00 ou 2017-04-01 14:00.The first execution time is the same even whether startTime is 2017-04-05 14:00 or 2017-04-01 14:00. Após a primeira execução, as execuções subsequentes são calculadas com base na agenda.After the first execution, subsequent executions are calculated by using the schedule. Por conseguinte, as próximas execuções são a 2017-04-11 às 14:00 PM, depois a 2017-04-13 às 14:00 PM, depois a 2017-04-15 às 14:00 PM e assim sucessivamente.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.

Por último, quando as horas ou os minutos não se encontram definidos na agenda para um acionador, as horas ou minutos da primeira execução são utilizados como as predefinições.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.

Propriedade scheduleschedule property

Pode utilizar schedule para limitar o número de execuções de acionadores.You can use schedule to limit the number of trigger executions. Por exemplo, se um acionador com uma frequência mensal estiver agendado de modo a ser executado apenas no dia 31, o acionador só é executado nos meses que têm 31 dias.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.

Também pode utilizar schedule para expandir o número de execuções de acionadores.You can also use schedule to expand the number of trigger executions. Por exemplo, um acionador com uma frequência mensal que esteja agendado de maneira a ser executado nos dias 1 e 2 do mês é executado no primeiro e segundo dias do mês, em vez de uma vez por mês.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.

Se forem especificados vários elementos de schedule, a ordem de avaliação é da definição de agenda maior para a mais pequena – número da semana, dia do mês, dia da semana, hora e minuto.If multiple schedule elements are specified, the order of evaluation is from the largest to the smallest schedule setting: week number, month day, week day, hour, minute.

A tabela seguinte descreve os elementos de schedule de forma detalhada:The following table describes the schedule elements in detail:

Elemento JSONJSON element DescriçãoDescription Valores válidosValid values
minutesminutes Minutos da hora em que o acionador é executado.Minutes of the hour at which the trigger runs. - Número inteiro- Integer
- Matriz de números inteiros- Array of integers
hourshours Horas do dia em que o acionador é executado.Hours of the day at which the trigger runs. - Número inteiro- Integer
- Matriz de números inteiros- Array of integers
weekDaysweekDays Dias da semana em que o acionador é executado.Days of the week the trigger runs. O valor só pode ser especificado com uma frequência semanal.The value can be specified only with a weekly frequency.
- Segunda-feira- Monday
- Terça-feira- Tuesday
- Quarta-feira- Wednesday
- Quinta-feira- Thursday
- Sexta-feira- Friday
- Sábado- Saturday
- Domingo- Sunday
- Matriz de valores de dia (o tamanho máximo da matriz é 7)- Array of day values (maximum array size is 7)

Os valores de dia não são sensíveis às maiúsculas e minúsculasDay values are not case-sensitive
monthlyOccurrencesmonthlyOccurrences Dias do mês em que o acionador é executado.Days of the month on which the trigger runs. O valor pode ser especificado com uma frequência mensal apenas.The value can be specified with a monthly frequency only. -Matriz de objetos monthlyOccurrence : { "day": day, "occurrence": occurrence }- Array of monthlyOccurrence objects: { "day": day, "occurrence": occurrence }
- O atributo day é o dia da semana em que o acionador é executado.- The day attribute is the day of the week on which the trigger runs. Por exemplo, uma propriedade monthlyOccurrences com um valor day igual a {Sunday} significa todos os domingos do mês.For example, a monthlyOccurrences property with a day value of {Sunday} means every Sunday of the month. O atributo day é obrigatório.The day attribute is required.
- O atributo occurrence é a ocorrência do valor day especificado durante o mês.- The occurrence attribute is the occurrence of the specified day during the month. Por exemplo, uma propriedade monthlyOccurrences com os valores day e occurrence iguais a {Sunday, -1} significa o último domingo do mês.For example, a monthlyOccurrences property with day and occurrence values of {Sunday, -1} means the last Sunday of the month. O atributo occurrence é opcional.The occurrence attribute is optional.
monthDaysmonthDays Dia do mês em que o acionador é executado.Day of the month on which the trigger runs. O valor pode ser especificado com uma frequência mensal apenas.The value can be specified with a monthly frequency only. - Qualquer valor <= -1 e >= -31- Any value <= -1 and >= -31
- Qualquer valor >= 1 e <= 31- Any value >= 1 and <= 31
- Matriz de valores- Array of values

Acionador de janela em cascataTumbling window trigger

Os acionadores de janela em cascata são um tipo de acionador que é acionado num intervalo de tempo periódico a partir de uma hora de início especificada, mantendo o estado.Tumbling window triggers are a type of trigger that fires at a periodic time interval from a specified start time, while retaining state. As janelas em cascata são uma série de intervalos de tempo com tamanho fixo, não sobrepostos e contínuos.Tumbling windows are a series of fixed-sized, non-overlapping, and contiguous time intervals.

Para obter mais informações sobre acionadores de janela em cascata e exemplos, veja Create a tumbling window trigger (Criar um acionador de janela em cascata).For more information about tumbling window triggers and for examples, see Create a tumbling window trigger.

Acionador baseado em eventosEvent-based trigger

Um gatilho baseado em evento executa pipelines em resposta a um evento, como a chegada de um arquivo ou a exclusão de um arquivo, no armazenamento de BLOBs do Azure.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.

Para obter mais informações sobre acionadores baseados em eventos, veja Criar um acionador que executa um pipeline em resposta a um evento.For more information about event-based triggers, see Create a trigger that runs a pipeline in response to an event.

Exemplos de agendas de periodicidade do acionadorExamples of trigger recurrence schedules

Esta secção mostra exemplos de agendas de periodicidade.This section provides examples of recurrence schedules. Concentra-se no objeto schedule e nos respetivos elementos.It focuses on the schedule object and its elements.

Os exemplos partem do princípio de que o valor interval é igual a 1 e que o valor frequency está correto de acordo com a definição da agenda.The examples assume that the interval value is 1, and that the frequency value is correct according to the schedule definition. Por exemplo, não pode ter um valor frequency igual a "day" e ter simultaneamente uma modificação monthDays no objeto schedule.For example, you can't have a frequency value of "day" and also have a monthDays modification in the schedule object. Estes tipos de restrições estão descritos na tabela na secção anterior.These kinds of restrictions are described in the table in the preceding section.

ExemploExample DescriçãoDescription
{"hours":[5]} Executar todos os dias às 5:00.Run at 5:00 AM every day.
{"minutes":[15], "hours":[5]} Executar todos os dias às 5:15.Run at 5:15 AM every day.
{"minutes":[15], "hours":[5,17]} Executar todos os dias às 5:15 e 17:15.Run at 5:15 AM and 5:15 PM every day.
{"minutes":[15,45], "hours":[5,17]} Executar todos os dias às 5:15, 5:45, 17:15 e 17:45.Run at 5:15 AM, 5:45 AM, 5:15 PM, and 5:45 PM every day.
{"minutes":[0,15,30,45]} Executar de 15 em 15 minutos.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]} Executar hora a hora.Run every hour.

Este acionador é executado de hora em hora.This trigger runs every hour. Os minutos são controlados pelo valor de startTime, quando é especificado um valor.The minutes are controlled by the startTime value, when a value is specified. Se não for especificado qualquer valor, os minutos são controlados pela hora de criação.If a value isn't specified, the minutes are controlled by the creation time. Por exemplo, se a hora de início ou a hora de criação (a que se aplicar) for 12:25, o acionador é executado às 00:25, 01:25, 02:25 e assim sucessivamente até às 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.

Esta agenda equivale a ter um acionador com um valor frequency igual a "hour", um valor interval igual a 1 e zero propriedades schedule.This schedule is equivalent to having a trigger with a frequency value of "hour", an interval value of 1, and no schedule. Esta agenda pode ser utilizada com valores frequency e interval diferentes para criar outros acionadores.This schedule can be used with different frequency and interval values to create other triggers. Por exemplo, quando o valor frequency é igual a "month", a agenda é executada apenas uma vez por mês, em vez de todos os dias, como acontece quando o valor frequency é igual a "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]} Executar de hora a hora, à hora certa.Run every hour on the hour.

Este acionador é executado de hora a hora, à hora certa, começando às 00:00, 1:00, 2:00 e assim sucessivamente.This trigger runs every hour on the hour starting at 12:00 AM, 1:00 AM, 2:00 AM, and so on.

Esta agenda equivale a ter um acionador com um valor frequency igual a "hour" e um valor startTime de zero minutos e nenhuma propriedade schedule, mas um valor frequency igual a "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". Se o valor frequency for igual a "week" ou "month", a agenda é executada um dia por semana ou um dia por mês apenas, respetivamente.If the frequency value is "week" or "month", the schedule executes one day a week or one day a month only, respectively.
{"minutes":[15]} Executar de hora a hora, 15 minutos após a hora.Run at 15 minutes past every hour.

Este acionador é executado de hora a hora, 15 minutos após a hora, começando às 00:15, 1:15, 2:15 e assim sucessivamente até terminar às 23: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"]} Executar às 17:00 de sábado todas as semanas.Run at 5:00 PM on Saturdays every week.
{"hours":[17], "weekDays":["monday", "wednesday", "friday"]} Executar às 17:00 de segunda-feira, quarta-feira e sexta-feira todas as semanas.Run at 5:00 PM on Monday, Wednesday, and Friday every week.
{"minutes":[15,45], "hours":[17], "weekDays":["monday", "wednesday", "friday"]} Executar às 17:15 e 17:45 de segunda-feira, quarta-feira e sexta-feira todas as semanas.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"]} Executar de 15 em 15 minutos nos dias de semana.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"]} Executar de 15 em 15 minutos nos dias de semana, entre as 9:00 e as 16:45.Run every 15 minutes on weekdays between 9:00 AM and 4:45 PM.
{"weekDays":["tuesday", "thursday"]} Executar às terças-feiras e quintas-feiras à hora de início especificada.Run on Tuesdays and Thursdays at the specified start time.
{"minutes":[0], "hours":[6], "monthDays":[28]} Executar às 6:00 do dia 28 de cada mês (pressupondo um valor frequency igual a "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]} Executar às 6:00 no último dia do mês.Run at 6:00 AM on the last day of the month.

Para executar um acionador no último dia de um mês, utilize -1 em vez de dia 28, 29, 30 ou 31.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]} Executar às 6:00 no primeiro e último dias de cada mês.Run at 6:00 AM on the first and last day of every month.
{monthDays":[1,14]} É executada no primeiro e no 14.º dia de todos os meses à hora de início especificada.Run on the first and fourteenth day of every month at the specified start time.
{"minutes":[0], "hours":[5], "monthlyOccurrences":[{"day":"friday", "occurrence":1}]} Executar na primeira sexta-feira de cada mês às 5:00.Run on the first Friday of every month at 5:00 AM.
{"monthlyOccurrences":[{"day":"friday", "occurrence":1}]} Executar na primeira sexta-feira de cada mês à hora de início especificada.Run on the first Friday of every month at the specified start time.
{"monthlyOccurrences":[{"day":"friday", "occurrence":-3}]} Executar na terceira sexta-feira do fim do mês, todos os meses, à hora de início especificada.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}]} Executar na primeira e última sextas-feiras de cada mês às 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}]} Executar na primeira e última sextas-feiras de cada mês à hora de início especificada.Run on the first and last Friday of every month at the specified start time.
{"monthlyOccurrences":[{"day":"friday", "occurrence":5}]} Executar na quinta sexta-feira de cada mês à hora de início especificada.Run on the fifth Friday of every month at the specified start time.

Se um mês não tiver cinco sextas-feiras, o pipeline não é executado.When there's no fifth Friday in a month, the pipeline doesn't run. Para executar o acionador na última sexta-feira do mês, considere utilizar -1 em vez de 5 para o valor occurrence.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}]} Executar de 15 em 15 minutos na última sexta-feira do mês.Run every 15 minutes on the last Friday of the month.
{"minutes":[15,45], "hours":[5,17], "monthlyOccurrences":[{"day":"wednesday", "occurrence":3}]} Executar às 5:15, 5:45, 17:15 e 17:45 na terceira quarta-feira de cada mês.Run at 5:15 AM, 5:45 AM, 5:15 PM, and 5:45 PM on the third Wednesday of every month.

Comparação de tipos de acionadorTrigger type comparison

Tanto o acionador de janela em cascata, como o acionador de agenda, operam em heartbeats de tempo.The tumbling window trigger and the schedule trigger both operate on time heartbeats. Em que diferem?How are they different?

A tabela que se segue oferece uma comparação entre o acionador de janela em cascata e o acionador de agenda:The following table provides a comparison of the tumbling window trigger and schedule trigger:

Acionador de janela em cascataTumbling window trigger Acionador de AgendaSchedule trigger
Cenários de reposiçãoBackfill scenarios Suportado.Supported. As execuções de pipeline podem ser agendadas para períodos de tempo no passado.Pipeline runs can be scheduled for windows in the past. Não suportado.Not supported. As execuções de pipeline só podem ser executadas em períodos de na hora atual ou numa hora futura.Pipeline runs can be executed only on time periods from the current time and the future.
FiabilidadeReliability 100% de fiabilidade.100% reliability. As execuções de pipeline podem ser agendadas para todos os períodos de tempo a partir de uma data de início especificada sem lacunas.Pipeline runs can be scheduled for all windows from a specified start date without gaps. Menos fiável.Less reliable.
Capacidade de repetiçãoRetry capability Suportado.Supported. As execuções de pipeline com falhas têm uma política de repetição predefinida de 0 ou uma política especificada pelo utilizador na definição do acionador.Failed pipeline runs have a default retry policy of 0, or a policy that's specified by the user in the trigger definition. Repete automaticamente quando as execuções de pipeline falham devido a limites de simultaneidade/servidor/limitação (ou seja, códigos de estado 400: Erro de Utilizador, 429: Demasiados Pedidos e 500: Erro Interno do Servidor).Automatically retries when 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). Não suportado.Not supported.
SimultaneidadeConcurrency Suportado.Supported. Os utilizadores podem definir explicitamente limites de simultaneidade para o acionador.Users can explicitly set concurrency limits for the trigger. Permite entre uma e 50 execuções de pipeline acionadas em simultâneo.Allows between 1 and 50 concurrent triggered pipeline runs. Não suportado.Not supported.
Variáveis do sistemaSystem variables Suporta a utilização das variáveis do sistema WindowStart e WindowEnd.Supports the use of the WindowStart and WindowEnd system variables. Os utilizadores podem aceder a triggerOutputs().windowStartTime e triggerOutputs().windowEndTime como variáveis do sistema de acionador na definição do acionador.Users can access triggerOutputs().windowStartTime and triggerOutputs().windowEndTime as trigger system variables in the trigger definition. Os valores são utilizados como a hora de início e a hora de fim do período de tempo, respetivamente.The values are used as the window start time and window end time, respectively. Por exemplo, para um acionador de janela em cascata executado de hora a hora, para o período de tempo das 1:00 às 2:00, a definição é triggerOutputs().WindowStartTime = 2017-09-01T01:00:00Z e triggerOutputs().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. Não suportado.Not supported.
Relação de pipeline para acionadorPipeline-to-trigger relationship Suporta uma relação um para um.Supports a one-to-one relationship. Apenas um pipeline pode ser acionado.Only one pipeline can be triggered. Suporta relações muitos para muitos.Supports many-to-many relationships. Múltiplos acionadores podem arrancar um pipeline individual.Multiple triggers can kick off a single pipeline. Um acionador único pode arrancar vários pipelines.A single trigger can kick off multiple pipelines.

Passos seguintesNext steps

Veja os tutoriais seguintes:See the following tutorials: