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 den API Betrieb der Steuerungsebene mithilfe des HTTPS Protokolls. Stellen Sie sicher, dass Sie mithilfe des HTTPS Protokolls eine Verbindung zum richtigen Endpunkt der Steuerungsebene hergestellt haben.

Eine Liste der AWS regionsspezifischen Endpunkte finden Sie unter AWS IoT Core — Endpunkte der Steuerungsebene.

Eine Liste der FIPS kompatiblen Endpunkte auf der AWS IoT Jobs-Kontrollebene finden Sie unter Endpunkte nach Diensten FIPS

Anmerkung

AWS IoT Jobs und AWS IoT Core teilen sich dieselben AWS regionsspezifischen Endpunkte.

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

AWS IoT Jobs unterstützt API Datenebenenoperationen mithilfe der MQTT Protokolle HTTPS und. Stellen Sie sicher, dass Sie mithilfe des HTTPS MQTT OR-Protokolls eine Verbindung zum richtigen Endpunkt der Datenebene hergestellt haben.

  • HTTPSProtokoll

    • Verwenden Sie den folgenden unten abgebildeten describe-endpointCLIBefehl oder den DescribeEndpointRESTAPI. Verwenden Sie iot:Jobs für den Endpunkttyp.

      aws iot describe-endpoint --endpoint-type iot:Jobs
  • MQTTProtokoll

    • Verwenden Sie den folgenden unten abgebildeten describe-endpointCLIBefehl oder den DescribeEndpointRESTAPI. Verwenden Sie iot:Data-ATS für den Endpunkttyp.

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

Eine Liste der FIPS kompatiblen Endpunkte auf der Datenebene von AWS IoT Jobs finden Sie unter FIPSEndpoints by Service

Wie überwache ich die AWS IoT Jobaktivitä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 im AWS Management Console AWS CLI, oder erfolgenAPI. AWS IoT Die Protokollierung, die für bestimmte Dinggruppen eingerichtet wurde, muss API nur mit 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 in den Feldern 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 Auftrag 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-jobAPI, um die IAM Rolle zu identifizieren, die mit diesem Job und der nachfolgenden Jobausfü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 AssumeRoleAPIBefehl 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-jobAPIBefehl.

    • Verwenden Sie den describe-jobAPIBefehl, um zu überprüfen, ob die IsConcurrent Eigenschaft für den Job auf „Wahr“ oder „Falsch“ gesetzt 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 Status „Nicht gleichzeitig“ handelt, ist es wahrscheinlich, dass die Beziehung Thing oder die ThingGroup Mitgliedschaft von AWS IoT Jobs nicht bestätigt wurde. IN_PROGRESS 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 Fehlermeldung von fehlschlägtLimitedExceededException, rufen Sie den auf list-jobs API und überprüfen Sie alle Jobs 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 Nutzlast begrenzt. Wenn Sie ein Auftragsdokument benötigen, das größer als 32 kB (Kilobyte), 32.000 B (Byte) ist, erstellen und speichern Sie das Jobdokument in Amazon S3 und fügen Sie ein Amazon S3 S3-Objekt URL in das documentSource Feld für CreateJob API oder mit dem ein. AWS CLI Fügen Sie für die AWS Management Console ein Amazon S3 S3-Objekt URL in das Amazon S3 URL S3-Textfeld ein, wenn Sie einen Job erstellen.

Geräteseitige MQTT Nachrichtenanfragen drosseln Grenzwerte

Wenn Sie den Fehlercode 400 erhaltenThrottlingException, ist die geräteseitige MQTT Meldung fehlgeschlagen, da das Limit gleichzeitiger geräteseitiger 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 eine Fehlermeldung angezeigt wird, dass der API Befehl ungültig ist. Eine umfassende Liste aller AWS IoT API Befehle finden Sie in der AWS IoT APIReferenz.

Verbindungsfehler auf der Serviceseite

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