AWS IoT Problembehebung bei Jobs - 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 Problembehebung bei Jobs

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

Wie finde ich einen AWS IoT Jobs-Endpunkt?

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

AWS IoT Jobs unterstützt API-Operationen auf Kontrollebene 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 — Endpoints der Steuerungsebene.

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 regionsspezifischen Endpunkte. AWS

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

AWS IoT Jobs unterstützt API-Operationen auf Datenebene mithilfe der Protokolle HTTPS und MQTT. 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 für den Endpunkttyp iot:Data-ATS (empfohlen) oderiot:Data.

      aws iot describe-endpoint --endpoint-type iot:Data-ATS (recommended)
      aws iot describe-endpoint --endpoint-type iot:Data

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

Wie überwache ich die AWS IoT Jobs-Aktivitäten und stelle Messwerte bereit?

Die Überwachung AWS IoT der Auftragsaktivitäten mithilfe von Amazon CloudWatch bietet Echtzeiteinblicke in den laufenden AWS IoT Auftragsbetrieb 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 Job-Aktivitäten überwachen und CloudWatch Alarme einrichten können. Weitere Informationen zum Einrichten der Protokollierung finden Sie unter Konfigurieren Sie die AWS IoT Protokollierung.

Weitere Informationen zu Amazon CloudWatch und zur Einrichtung von Berechtigungen über eine IAM-Benutzerrolle zur Nutzung von CloudWatch Ressourcen finden Sie unter Identitäts- und Zugriffsmanagement für Amazon CloudWatch.

Wie richte ich AWS IoT Job-Metriken und Monitoring mit Amazon ein CloudWatch?

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 Management Console AWS CLI, oder API erfolgen. AWS IoT Die Protokollierung, die für bestimmte Dinggruppen eingerichtet wurde, darf nur in der API AWS CLI oder erfolgen.

Der Abschnitt AWS IoT Job-Metriken enthält die AWS IoT Job-Metriken, die zur Überwachung der AWS IoT Jobs-Aktivität verwendet werden. Darin wird erklärt, wie die Metriken im AWS Management Console und angezeigt AWS CLI werden.

Darüber hinaus können Sie CloudWatch Alarme einrichten, um Sie auf bestimmte Kennzahlen aufmerksam zu machen, die Sie genau überwachen möchten. Anleitungen zur Alarmeinrichtung 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äten in den CloudWatch Protokollen in der CloudWatch Konsole. Weitere Informationen finden Sie unter Überwachung 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.

    • Überprüfen Sie die Geräte in Ihrer Zielgruppe für den Job und den Status des Jobs in der AWS Management Console oder verwenden Sie den describe-jobAPI-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.

    • Handelt es sich bei dem Job um einen Snapshot-Job mit dem Statusstatus IN_PROGRESS und ist er nicht gleichzeitig, dann ist es wahrscheinlich, dass die Thing oder die ThingGroup Mitgliedschaftsbeziehung von AWS IoT Jobs nicht bestätigt wurde. Es wird empfohlen, nach Ihrem AddThingToThingGroup Anruf mehrere Sekunden Wartezeit einzuplanen, bevor Sie Ihren Anruf erstellen. Job Alternativ können Sie die Zielauswahl auf ändernContinuous, sodass der Dienst das verzögerte Ereignis Thing und die ThingGroup Mitgliedschaft automatisch auffü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 für die AWS Management Console eine Amazon S3 S3-Objekt-URL in das Textfeld Amazon S3 S3-URL ein, wenn Sie einen Job erstellen.

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.