Geben Sie Auftragskonfigurationen mithilfe der AWS IoT Jobs API an - AWS IoT Core

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Geben Sie Auftragskonfigurationen mithilfe der AWS IoT Jobs API an

Sie können die CreateJoboder die CreateJobTemplateAPI verwenden, um die verschiedenen Jobkonfigurationen anzugeben. In den folgenden Abschnitten wird beschrieben, wie Sie diese Konfigurationen hinzufügen. Nachdem Sie die Konfigurationen hinzugefügt haben, können Sie JobExecutionSummaryund verwenden, JobExecutionSummaryForJobum ihren Status einzusehen.

Weitere Informationen über die verschiedenen Konfigurationen und deren Funktionsweise finden Sie unter Wie funktionieren Auftragskonfigurationen.

Rollout-Konfiguration

Sie können eine konstante Rollout-Rate oder eine exponentielle Rollout-Rate für Ihre Rollout-Konfiguration angeben.

  • Stellen Sie eine konstante Rollout-Rate ein

    Um eine konstante Rollout-Rate festzulegen, verwenden Sie das JobExecutionsRolloutConfig-Objekt, um den maximumPerMinute-Parameter zur CreateJob-Anforderung hinzuzufügen. Dieser Parameter gibt die obere Grenze der Rate an, mit der Auftragsausführungen durchgeführt werden können. Dieser Wert ist optional und reicht von 1 bis 1000. Wenn Sie den Wert nicht festlegen, wird 1000 als Standardwert verwendet.

    "jobExecutionsRolloutConfig": { "maximumPerMinute": 1000 }
  • Legen Sie eine exponentielle Rollout-Rate fest

    Verwenden Sie das JobExecutionsRolloutConfig-Objekt, um eine variable Auftrags-Rollout-Rate festzulegen. Sie können die ExponentialRolloutRate-Eigenschaft konfigurieren, wenn Sie den CreateJob-API-Vorgang ausführen. Im folgenden Beispiel wird eine variable Rolloutrate mit dem Parameter exponentialRate eingerichtet. Weitere Informationen zu den Parametern finden Sie unter ExponentialRolloutRate.

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

Wo der Parameter:

baseRatePerMinute

Gibt die Rate an, mit der die Aufträge ausgeführt werden, bis der numberOfNotifiedThings- oder der numberOfSucceededThings-Schwellenwert erreicht wird.

incrementFactor

Gibt den exponentiellen Faktor an, um den die Rolloutrate erhöht wird, nachdem der numberOfNotifiedThings- oder der numberOfSucceededThings-Schwellenwert erreicht wird.

rateIncreaseCriteria

Gibt entweder den numberOfNotifiedThings- oder den numberOfSucceededThings-Schwellenwert an.

Konfiguration abbrechen

Um diese Konfiguration mithilfe der API hinzuzufügen, geben Sie den AbortConfig-Parameter an, wenn Sie den CreateJob oder den CreateJobTemplate API-Vorgang ausführen. Das folgende Beispiel zeigt eine Abbruchkonfiguration für einen Auftrags-Rollout, bei dem es, wie bei der CreateJob API-Operation angegeben, zu mehreren fehlgeschlagenen Ausführungen kam.

Anmerkung

Das Löschen einer Auftragsausführung wirkt sich auf die Berechnung des Werts der gesamten abgeschlossenen Ausführungen aus. Wenn ein Auftrag abgebrochen wird, erstellt der Service einen automatisierten comment und reasonCode zur Differenzierung zwischen eines vom Benutzer ausgelösten Abbruchs und eines automatischen Auftragsabbruchs.

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

Wo der Parameter:

Aktion

Gibt die Aktion an, die durchgeführt werden soll, wenn das Abbruchkriterium erfüllt ist. Dieser Parameter ist erforderlich, und CANCEL ist der einzige gültige Wert.

failureType

Gibt an, welche Fehlertypen einen Auftragsabbruch auslösen sollen. Gültige Werte sind FAILED, REJECTED, TIMED_OUT und ALL.

minNumberOfExecutedThings

Gibt die Anzahl der abgeschlossenen Auftragsausführungen an, die erfolgen müssen, bevor das Auftragsabbruchkriterium erfüllt ist. In diesem Beispiel prüft AWS IoT erst dann, ob ein Auftragsabbruch erfolgen soll, wenn mindestens 100 Geräte Auftragsausführungen abgeschlossen haben.

thresholdPercentage

Gibt die Gesamtzahl der Objekte an, für die Aufträge ausgeführt werden, die einen Auftragsabbruch auslösen können. In diesem Beispiel wird nacheinander AWS IoT geprüft und ein Jobabbruch eingeleitet, wenn der prozentuale Schwellenwert erreicht ist. Wenn mindestens 20 % der vollständigen Ausführungen fehlschlagen, nachdem 100 Ausführungen abgeschlossen sind, wird der Auftrags-Rollout abgebrochen. Wenn dieses Kriterium nicht erfüllt ist, AWS IoT wird geprüft, ob bei mindestens 50% der abgeschlossenen Ausführungen ein Timeout nach 200 Ausführungen erreicht wurde. Wenn dies der Fall ist, wird der Auftrags-Rollout abgebrochen.

Konfiguration des Zeitplans

Um diese Konfiguration mithilfe der API hinzuzufügen, geben Sie den optionalen SchedulingConfig an, wenn Sie den CreateJob oder den CreateJobTemplate API-Vorgang ausführen.

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

Wo der Parameter:

startTime

Gibt das Datum und die Uhrzeit an, zu der der Auftrag gestartet wird.

endTime

Gibt das Datum und die Uhrzeit an, zu der der Auftrag beendet wird.

maintenanceWindows

Gibt an, ob für den geplanten Auftrag ein optionales Wartungsfenster ausgewählt wurde, um das Auftragsdokument auf alle Geräte in der Zielgruppe auszurollen. Das Zeichenkettenformat für maintenanceWindow ist JJJJ/MM/TT für das Datum und hh:mm für die Uhrzeit.

endBehavior

Gibt das Auftragsverhalten für einen geplanten Auftrag beim Erreichen des endTime an.

Anmerkung

Die Option SchedulingConfig für einen Auftrag ist in den DescribeJobTemplate- und DescribeJob-APIs einsehbar.

Timeout-Konfiguration

Um diese Konfiguration mithilfe der API hinzuzufügen, geben Sie den TimeoutConfig-Parameter an, wenn Sie den CreateJob oder den CreateJobTemplate API-Vorgang ausführen.

Um die Timeout-Konfiguration zu verwenden

  1. Um den Timer für die Bearbeitung festzulegen, wenn Sie einen Job oder eine Jobvorlage erstellen, legen Sie einen Wert für die inProgressTimeoutInMinutes Eigenschaft des optionalen Objekts fest. TimeoutConfig

    "timeoutConfig": { "inProgressTimeoutInMinutes": number }
  2. Um einen Schrittzeitgeber für die Ausführung eines Jobs anzugeben, legen Sie einen Wert für den stepTimeoutInMinutes Zeitpunkt des Aufrufs UpdateJobExecutionfest. Der Schritt Timer gilt nur für die Auftragsausführung, die Sie aktualisieren. Sie können einen neuen Wert für diesen Timer bei jeder Aktualisierung einer Auftragsausführung einrichten.

    Anmerkung

    UpdateJobExecution kann einen bereits erstellten Schritt-Timer verwerfen, indem er einen neuen Schritt-Timer mit dem Wert -1 erstellt.

    { ... "statusDetails": { "string" : "string" }, "stepTimeoutInMinutes": number }
  3. Um einen neuen Steptimer zu erstellen, können Sie auch den StartNextPendingJobExecutionAPI-Vorgang aufrufen.

Wiederholungs-Konfiguration

Anmerkung

Wenn Sie einen Auftrag erstellen, sollten Sie die entsprechende Anzahl von Wiederholungsversuchen berücksichtigen, die Sie für Ihre Konfiguration verwenden. Fügen Sie eine Abbruchkonfiguration hinzu, um übermäßige Kosten aufgrund potenzieller Wiederholungsfehler zu vermeiden. Nachdem ein Auftrag erstellt wurde, kann die Anzahl der Wiederholungen nicht aktualisiert werden. Sie können die Anzahl der Wiederholungen nur mithilfe der UpdateJobAPI-Operation auf 0 setzen.

Um diese Konfiguration mithilfe der API hinzuzufügen, geben Sie den jobExecutionsRetryConfig-Parameter an, wenn Sie den CreateJob oder den CreateJobTemplate API-Vorgang ausführen.

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

Wobei criteriaList ein Array ist, das die Kriterienliste angibt, die die Anzahl der zulässigen Wiederholungen für jeden Fehlertyp für einen Auftrag bestimmt.