Especifique as configurações do trabalho usando a API do trabalho do AWS IoT - AWS IoT Core

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Especifique as configurações do trabalho usando a API do trabalho do AWS IoT

Você pode usar a CreateJobou a CreateJobTemplateAPI para especificar as diferentes configurações de trabalho. As seções a seguir descrevem como adicionar essas configurações. Depois de adicionar as configurações, você pode usar JobExecutionSummarye visualizar JobExecutionSummaryForJobo status delas.

Para obter mais informações sobre as diferentes configurações e como elas funcionam, consulte Como as configurações de trabalho funcionam.

Configuração de distribuição

Você pode especificar uma taxa de distribuição constante ou exponencial para sua configuração de distribuição.

  • Defina uma taxa de distribuição constante

    Para definir uma taxa de distribuição constante, use o objeto JobExecutionsRolloutConfig para adicionar o parâmetro maximumPerMinute à solicitação CreateJob. Esse parâmetro especifica o limite superior da taxa em que as execuções de trabalho podem ocorrer. Esse valor é opcional e varia de 1 a 1000. Se você não definir o valor, ele usará 1000 como valor padrão.

    "jobExecutionsRolloutConfig": { "maximumPerMinute": 1000 }
  • Defina uma taxa de distribuição exponencial

    Para definir uma taxa variável de distribuição de trabalhos, use o objeto JobExecutionsRolloutConfig. Você pode configurar a propriedade ExponentialRolloutRate ao executar a operação da API CreateJob. O exemplo a seguir define uma taxa de distribuição exponencial usando o parâmetro exponentialRate. Para obter mais informações sobre os parâmetros, consulte ExponentialRolloutRate.

    { ... "jobExecutionsRolloutConfig": { "exponentialRate": { "baseRatePerMinute": 50, "incrementFactor": 2, "rateIncreaseCriteria": { "numberOfNotifiedThings": 1000, "numberOfSucceededThings": 1000 }, "maximumPerMinute": 1000 } } ... }

Em que o parâmetro:

baseRatePerMinuto

Especifica a taxa em que os trabalhos são executados até que o limite numberOfNotifiedThings ou numberOfSucceededThings seja atingido.

incrementFactor

Especifica o fator exponencial em que a taxa de distribuição aumenta após o limite numberOfNotifiedThings ou numberOfSucceededThings ser atingido.

rateIncreaseCriteria

Especifica o limite numberOfNotifiedThings ou numberOfSucceededThings.

Configuração de anulação

Para adicionar essa configuração usando a API, especifique o parâmetro AbortConfig ao executar a CreateJob, ou a operação da API CreateJobTemplate. O exemplo a seguir mostra uma configuração de anulação para uma distribuição de trabalho que estava passando por várias execuções malsucedidas, conforme especificado na operação da API CreateJob.

nota

Excluir uma execução de trabalho afeta o valor computacional da execução total concluída. Quando um trabalho é anulado, o serviço cria um comment automatizado e um reasonCode para diferenciar um cancelamento orientado pelo usuário de um cancelamento por anulação de trabalho.

"abortConfig": { "criteriaList": [ { "action": "CANCEL", "failureType": "FAILED", "minNumberOfExecutedThings": 100, "thresholdPercentage": 20 }, { "action": "CANCEL", "failureType": "TIMED_OUT", "minNumberOfExecutedThings": 200, "thresholdPercentage": 50 } ] }

Em que o parâmetro:

ação

Especifica a ação a ser tomada quando os critérios de anulação são atendidos. Esse parâmetro é necessário, e CANCEL é o único valor válido.

failureType

Especifica quais tipos de falha devem iniciar uma anulação de trabalho. Os valores válidos são FAILED, REJECTED, TIMED_OUT e ALL.

minNumberOfExecutedThings

Especifica o número de execuções de trabalho concluídas que devem ocorrer antes de os critérios de anulação do trabalho serem atendidos. Neste exemplo, a AWS IoT não verifica se a anulação de um trabalho deve ocorrer até que pelo menos 100 dispositivos tenham concluído as execuções do trabalho.

thresholdPercentage

Especifica o número total de objetos para as quais trabalhos são executados que podem iniciar uma anulação de trabalho. Neste exemplo, AWS IoT verifica sequencialmente e inicia um aborto de trabalho se a porcentagem limite for atingida. Se pelo menos 20% das execuções completas falharem após a conclusão de cem execuções, a distribuição do trabalho será cancelada. Se esse critério não AWS IoT for atendido, verifique se pelo menos 50% das execuções concluídas atingiram o tempo limite após a conclusão de 200 execuções. Se for esse o caso, ele cancela a distribuição do trabalho.

Configuração de agendamento

Para adicionar essa configuração usando a API, especifique a SchedulingConfig opcional ao executar a CreateJob, ou a operação da API CreateJobTemplate.

"SchedulingConfig": { "endBehavior": string "endTime": string "maintenanceWindows": string "startTime": string }

Em que o parâmetro:

startTime

Especifica a data e a hora de início do trabalho.

endTime

Especifica a data e a hora em que o trabalho terminará.

maintenanceWindows

Especifica se uma janela de manutenção opcional foi selecionada para o trabalho agendado para distribuir o documento do trabalho em todos os dispositivos no grupo de destino. O formato de string para maintenanceWindow é AAAA/MM/DD para a data e hh:mm para a hora.

endBehavior

Especifica o comportamento do trabalho para um trabalho agendado ao chegar ao endTime.

nota

A SchedulingConfig opcional para um trabalho pode ser visualizada nas APIs DescribeJob e DescribeJobTemplate.

Configuração de tempo limite

Para adicionar essa configuração usando a API, especifique o parâmetro TimeoutConfig ao executar a CreateJob, ou a operação da API CreateJobTemplate.

Para usar a configuração de tempo limite

  1. Para definir o cronômetro em andamento ao criar um trabalho ou modelo de trabalho, defina um valor para a inProgressTimeoutInMinutes propriedade do objeto opcional TimeoutConfig.

    "timeoutConfig": { "inProgressTimeoutInMinutes": number }
  2. Para especificar um cronômetro de etapas para a execução de um trabalho, defina um valor para stepTimeoutInMinutes quando você chama UpdateJobExecution. O temporizador de etapa se aplica apenas à execução do trabalho que você atualizar. É possível definir um novo valor para esse temporizador cada vez que você atualizar uma execução de trabalho.

    nota

    UpdateJobExecution também descarta um temporizador de etapa que já foi criado por meio da criação de um novo temporizador de etapa com um valor de -1.

    { ... "statusDetails": { "string" : "string" }, "stepTimeoutInMinutes": number }
  3. Para criar um novo cronômetro de etapas, você também pode chamar a operação da StartNextPendingJobExecutionAPI.

Configuração de repetição

nota

Ao criar um trabalho, considere o número apropriado de repetições a serem usadas em sua configuração. Para evitar custos excessivos devido a possíveis falhas de repetição, adicione uma configuração de anulação. Depois que um trabalho é criado, o número de repetições não pode ser atualizado. Você só pode definir o número de novas tentativas como 0 usando a operação da UpdateJobAPI.

Para adicionar essa configuração usando a API, especifique o parâmetro jobExecutionsRetryConfig ao executar a CreateJob, ou a operação da API CreateJobTemplate.

{ ... "jobExecutionsRetryConfig": { "criteriaList": [ { "failureType": "string", "numberOfRetries": number } ] } ... }

Onde criteriaList é uma matriz que especifica a lista de critérios que determina o número de novas tentativas permitidas para cada tipo de falha em um trabalho.