Problembehandlung bei Service-Integrationen - AWS Step Functions

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.

Problembehandlung bei Service-Integrationen

Mein Job ist im Downstream-Service abgeschlossen, aber in Step Functions bleibt der Aufgabenstatus „In Bearbeitung“ oder seine Fertigstellung verzögert sich.

Für.syncService-Integrationsmuster, Step Functions verwendet EventBridge-Regeln, Downstream-APIs oder eine Kombination aus beidem, um den Status des Downstream-Jobs zu erkennen. Für einige Dienste erstellt Step Functions keine zu überwachenden EventBridge-Regeln. Beispielsweise für dieAWS GlueService-Integration, anstatt EventBridge-Regeln zu verwenden, macht Step Functions eineglue:GetJobRunRufen Sie den Aufgrund der Häufigkeit von API-Aufrufen besteht ein Unterschied zwischen dem Abschluss der nachgelagerten Aufgabe und der Abschlusszeit der Task Step Functions. Step Functions benötigt IAM-Berechtigungen, um die EventBridge-Regeln zu verwalten und Anrufe an den Downstream-Dienst zu tätigen. Weitere Informationen darüber, wie sich unzureichende Berechtigungen für Ihre Ausführungsrolle auf den Abschluss von Aufgaben auswirken können, finden Sie unterZusätzliche Berechtigungen für Aufgaben, die das Muster „Job ausführen“ verwendenaus.

Ich möchte eine JSON-Ausgabe von einer Ausführung eines verschachtelten Zustandsmaschinen zurückgeben.

Es gibt zwei synchrone Service-Integrationen für Step Functions:startExecution.syncundstartExecution.sync:2aus. Beide warten, bis der verschachtelte Zustandsautomat fertig ist, aber sie geben eine andere zurückOutput-Formate. Sie können die folgende Seite verwendenstartExecution.sync:2um eine JSON-Ausgabe zurückzugeben unterOutputaus.

Ich kann eine Lambda-Funktion von einem anderen Konto aus nicht aufrufen.

In derTaskstate'sResourceFeld verwendenarn:aws:states:::lambda:invokeund übermitteln Sie dieFunctionArnin Parametern. Die IAM-Rolle, die mit dem Statuscomputer verknüpft ist, muss über die richtigen Berechtigungen verfügen, um kontoübergreifende Lambda-Funktionen aufzurufen:lambda:invokeFunctionaus.

{ "StartAt":"CallLambda", "States":{ "CallLambda":{ "Type":"Task", "Resource":"arn:aws:states:::lambda:invoke", "Parameters":{ "FunctionName":"arn:aws:lambda:us-west-2:123456789012:function:my-function" }, "End":true } } }

Ich kann keine Task-Token sehen, die von.waitForTaskTokenStatus.

In derTaskstate'sParametersmüssen Sie ein Aufgabentoken übergeben. Beispielsweise könnten Sie etwas Ähnliches wie den folgenden Code verwenden.

{ "StartAt":"taskToken", "States":{ "taskToken":{ "Type":"Task", "Resource":"arn:aws:states:::lambda:invoke.waitForTaskToken", "Parameters":{ "FunctionName":"get-model-review-decision", "Payload":{ "token.$":"$$.Task.Token" }, }, "End":true } } }
Anmerkung

Sie können versuchen zu verwenden.waitForTaskTokenmit jeder -API-Aktion. Einige APIs haben jedoch keine geeigneten Parameter.