View a markdown version of this page

AWS IoT Probleme bei Aufträgen - 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.

AWS IoT Probleme bei Aufträgen

Dies ist der Abschnitt zur Problembehandlung für AWS IoT Jobs.

Wie finde ich eine AWS IoT Endpunkt „Jobs“?

Wie finde ich den Endpunkt der AWS IoT Jobs-Kontrollebene?

AWS IoT Jobs unterstützt API-Operationen auf Steuerungsebene mithilfe des HTTPS-Protokolls. Stellen Sie sicher, dass Sie über das HTTPS-Protokoll eine Verbindung zum richtigen Endpunkt der Steuerebene hergestellt haben.

Eine Liste der AWS regionsspezifischen Endpunkte finden Sie unter AWS IoT Core — Control Plane-Endpoints.

Eine Liste der FIPS-kompatiblen Endpunkte der AWS IoT -Auftragssteuerebene finden Sie unter FIPS-Endpunkte nach Dienst

Anmerkung

AWS IoT Jobs und AWS IoT Core teilen sich dieselben Endpunkte. AWS Region-specific

Wie finde ich den Endpunkt der AWS IoT Jobs-Datenebene?

AWS IoT Jobs unterstützt API-Operationen auf Datenebene mithilfe der HTTPS- und MQTT-Protokolle. Stellen Sie sicher, dass Sie über das HTTPS- oder MQTT-Protokoll eine Verbindung zum richtigen Endpunkt der Datenebene hergestellt haben.

  • Protokoll: HTTPS

    • Verwenden Sie den folgenden describe-endpoint-CLI-Befehl, der unten gezeigt wird, oder die DescribeEndpoint-REST-API. Verwenden Sie iot:Jobs für den Endpunkttyp.

      aws iot describe-endpoint --endpoint-type iot:Jobs
  • MQTT-Protokoll

    • Verwenden Sie den folgenden describe-endpoint-CLI-Befehl, der unten gezeigt wird, oder die DescribeEndpoint-REST-API. Verwenden Sie iot:Data-ATS für den Endpunkttyp.

      aws iot describe-endpoint --endpoint-type iot:Data-ATS

Eine Liste der FIPS-kompatiblen AWS IoT Auftrags-Datenebenen-Endpunkte finden Sie unter FIPS-Endpunkte nach Dienst

Wie überwache ich AWS IoT Jobaktivitäten und Kennzahlen bereitstellen?

Die Überwachung der AWS IoT Jobaktivitäten mithilfe von Amazon CloudWatch bietet einen Überblick über den laufenden AWS IoT Auftragsbetrieb in Echtzeit und hilft, die Kosten mithilfe von CloudWatch Alarmen mithilfe von AWS IoT Regeln zu kontrollieren. Sie müssen die Protokollierung konfigurieren, bevor Sie die AWS IoT Jobaktivitäten überwachen und CloudWatch Alarme einrichten können. Weitere Informationen zum Einrichten der Protokollierung finden Sie unter Konfiguration AWS IoT Protokollierung.

Weitere Informationen zu Amazon CloudWatch und dazu, wie Sie mithilfe einer IAM-Benutzerrolle die Berechtigung zur Nutzung von CloudWatch Ressourcen einrichten, finden Sie unter Identitäts- und Zugriffsmanagement für Amazon CloudWatch.

Wie richte ich AWS IoT Job-Metriken und die Überwachung mithilfe von Amazon CloudWatch ein?

Um die AWS IoT Protokollierung einzurichten, folgen Sie den unter AWS IoT Protokollierung konfigurieren beschriebenen Schritten. AWS IoT Die Einrichtung der Protokollierung kann in der AWS-Managementkonsole AWS CLI, oder API erfolgen. AWS IoT Die Protokollierung, die für bestimmte Dinggruppen eingerichtet wurde, muss nur in der AWS CLI oder API erfolgen.

Der Abschnitt AWS IoT Job-Metriken enthält die AWS IoT Job-Metriken, die zur Überwachung der AWS IoT Jobaktivitäten verwendet werden. Es wird erklärt, wie die Metriken im Feld AWS-Managementkonsole und angezeigt AWS CLI werden.

Darüber hinaus können Sie CloudWatch Alarme einrichten, um Sie auf bestimmte Metriken aufmerksam zu machen, die Sie genau überwachen möchten. Eine Anleitung zur Einrichtung von Alarmen finden Sie unter CloudWatch Amazon-Alarme verwenden.

Problembehebung bei Geräteflotten und einzelnen Geräten

Bei der Ausführung eines Auftrags wird der Status von QUEUED auf unbestimmte Zeit beibehalten

Wenn eine Auftragsausführung mit einem Status von QUEUED nicht zum nächsten logischen Status übergeht, z. B. IN_PROGRESS, FAILED oder TIMED_OUT, kann eines der folgenden Szenarien die Ursache sein:

  • Überprüfen Sie Ihre Geräteaktivität in den CloudWatch Protokollen in der CloudWatch Konsole. Weitere Informationen finden Sie unter Überwachen AWS IoT mithilfe von CloudWatch Protokollen.

  • Die IAM-Rolle, die dem Job und der nachfolgenden Auftragsausführung zugeordnet ist, verfügt möglicherweise nicht über die richtigen Berechtigungen, die in einer der Richtlinienerklärungen der IAM-Richtlinie aufgeführt sind, die dieser IAM-Rolle zugeordnet ist. Verwenden Sie die describe-job-API, um die IAM-Rolle zu identifizieren, die mit diesem Auftrag und der nachfolgenden Auftragsausführung verknüpft ist, und überprüfen Sie die IAM-Richtlinie auf die richtigen Berechtigungen. Sobald die Richtlinienberechtigungserklärungen aktualisiert wurden, sollten Sie in der Lage sein, den AssumeRole-API-Befehl für die Ressource auszuführen.

Für mein Objekt oder meine Objektgruppe wurde keine Auftragsausführung erstellt

Wenn der Status eines Auftrags auf IN_PROGRESS aktualisiert wird, beginnt der Rollout des Auftragsdokuments auf allen Geräten in Ihrer Zielgruppe. Durch diese Statusaktualisierung wird für jedes Zielgerät eine Auftragsausführung erstellt. Wenn für eines der Zielgeräte keine Auftragsausführung erstellt wurde, lesen Sie die folgenden Anleitungen:

  • Wirkt sich der Auftrag direkt auf thing aus, hat der Auftrag den Status IN_PROGRESS, und läuft der Auftrag gleichzeitig? Wenn alle drei Bedingungen erfüllt sind, sendet der Auftrag immer noch Auftragsausführungen an alle Geräte in Ihrer Zielgruppe, und für dieses spezielle Gerät thing wurde der Auftrag noch nicht ausgeführt.

    • Prüfen Sie in der AWS Management Console die Geräte in Ihrer Zielgruppe auf den Job und den Jobstatus, oder verwenden Sie den describe-job API-Befehl.

    • Verwenden Sie den describe-job-API-Befehl, um zu überprüfen, ob die IsConcurrent-Eigenschaft für den Auftrag auf „Wahr“ oder „Falsch“ festgelegt ist. Weitere Informationen finden Sie unter Auftragslimits.

  • Der Auftrag zielt nicht direkt auf thing ab.

    • Wenn Thing zu einem ThingGroup hinzugefügt wurde und der Auftrag auf ThingGroup abzielte, überprüfen Sie, ob Thing Teil von ThingGroup ist.

    • Handelt es sich bei dem Auftrag um einen Snapshot-Auftrag mit dem Status IN_PROGRESS der gleichzeitig läuft, sendet der Auftrag weiterhin Auftragsausführungen an alle Geräte in Ihrer Zielgruppe, und dieser spezifische Thing hat seine Auftragsausführung noch nicht erhalten.

    • Wenn es sich bei dem Auftrag um einen kontinuierlichen gleichzeitigen Auftrag mit dem Status IN_PROGRESS handelt, sendet der Auftrag immer noch Auftragsausführungen an alle Geräte in Ihrer Zielgruppe, und dieser spezifische Thing hat seine Auftragsausführung noch nicht erhalten. Nur für fortlaufende Aufträge können Sie den Thing aus dem ThingGroup entfernen und dann den Thing wieder dem ThingGroup hinzufügen.

    • Wenn es sich bei dem Job um einen Snapshot-Job mit dem Statusstatus handelt IN_PROGRESS und dieser nicht gleichzeitig ausgeführt wird, ist es wahrscheinlich, dass die Beziehung Thing oder die ThingGroup Mitgliedschaft von AWS IoT Jobs nicht bestätigt wird. Es wird empfohlen, nach Ihrem AddThingToThingGroup Anruf einige Sekunden Wartezeit einzuplanen, bevor Sie Ihren Anruf erstellen. Job Alternativ können Sie die Zielauswahl auf auf umstellenContinuous, sodass der Dienst das Ereignis „Verspätung“ Thing und „Zuweisung einer ThingGroup Mitgliedschaft“ automatisch ausfüllt.

Ein neuer Auftrag schlägt aufgrund eines LimitedExceededException-Fehlers fehl

Wenn Ihre Auftragserstellung mit der Fehlerantwort von LimitedExceededException fehlschlägt, rufen Sie die list-jobs-API auf und überprüfen Sie alle Aufträge mit isConcurrent=true, um festzustellen, ob Sie das Limit für die gleichzeitige Ausführung von Aufträgen erreicht haben. Weitere Informationen zu gleichzeitigen Aufträgen finden Sie unter Auftragslimits. Um Ihre Limits für die gleichzeitige Ausführung von Aufträgen zu sehen und eine Erhöhung des Limits zu beantragen, gehen Sie zu AWS IoT Device Management Auftragslimits und -kontingente.

Begrenzung der Dokumentgröße

Die Größe des Auftragsdokuments ist durch die Größe der MQTT-Payload begrenzt. Wenn Sie ein Auftragsdokument benötigen, das größer als 32 kB (Kilobyte), 32.000 B (Byte) ist, erstellen und speichern Sie das Auftragsdokument in Amazon S3 und fügen Sie eine Amazon S3-Objekt-URL in das documentSource-Feld für die CreateJob-API ein oder verwenden Sie AWS CLI. Fügen Sie bei der AWS-Managementkonsole Erstellung eines Jobs eine Amazon S3-Objekt-URL in das Amazon S3-URL-Textfeld ein.

Geräteseitige MQTT-Nachrichtenanfragen - Drosselungsgrenzwerte

Wenn Sie den Fehlercode 400 ThrottlingException erhalten, ist die geräteseitige MQTT-Nachricht fehlgeschlagen, da das Limit für gleichzeitige geräteseitige Anfragen erreicht wurde. Unter AWS IoT Device Management -Limits und Kontingente für Aufträge finden Sie weitere Informationen zu den Limits für Aufträge und darüber, ob diese einstellbar sind.

Verbindungstimeoutfehler

Ein Fehlercode 400 RequestExpired weist auf einen Verbindungsfehler hin, der auf eine hohe Latenz oder niedrige clientseitige Timeout-Werte zurückzuführen ist.

Ungültiger API-Befehl

Vergewissern Sie sich, dass der richtige API-Befehl eingegeben wurde, um zu vermeiden, dass die Fehlermeldung angezeigt wird, dass der API-Befehl ungültig ist. In der AWS IoT API-Referenz finden Sie eine umfassende Liste aller AWS IoT -API-Befehle.

Verbindungsfehler auf der Serviceseite

Ein Fehlercode 503 ServiceUnavailable gibt an, dass der Fehler auf der Serverseite auftrat.