AWS Step Functions - AWS CodePipeline

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 Step Functions

Eine AWS CodePipeline Aktion, die Folgendes bewirkt:

  • Startet eine AWS Step Functions State-Machine-Ausführung von Ihrer Pipeline aus.

  • Stellt dem Zustandsautomaten über eine Eigenschaft in der Aktionskonfiguration oder über eine Datei in einem Pipelineartefakt einen Anfangszustand bereit, der als Eingabe übergeben wird.

  • Legt optional ein Ausführungs-ID-Präfix für die Identifizierung von Ausführungen fest, die von der Aktion ausgelöst werden.

  • Unterstützt Standard- und Express-Zustandsautomaten .

Anmerkung

Die Aktion Step Functions wird auf Lambda ausgeführt und verfügt daher über Artefaktgrößenquoten, die den Artefaktgrößenquoten für Lambda-Funktionen entsprechen. Weitere Informationen finden Sie unter Lambda-Kontingente im Lambda Developer Guide.

Aktionstyp

  • Kategorie: Invoke

  • Eigentümer: AWS

  • Anbieter: StepFunctions

  • Version: 1

Konfigurationsparameter

StateMachineArn

Erforderlich: Ja

Der Amazon-Ressourcenname (ARN) für den Zustandsautomaten, der aufgerufen werden soll.

ExecutionNamePrefix

Erforderlich: Nein

Standardmäßig wird als Ausführungsname für den Zustandsautomaten die Ausführungs-ID der Aktion verwendet. Wenn ein Präfix angegeben wird, wird dieses der Ausführungs-ID der Aktion mit einem Bindestrich vorangestellt und beide Angaben werden zusammen als Ausführungsname für den Zustandsautomaten verwendet.

myPrefix-1624a1d1-3699-43f0-8e1e-6bafd7fde791

Bei einem Express-Zustandsautomaten sollte der Name nur 0-9, A-Z, a-z, - und _ enthalten.

InputType

Erforderlich: Nein

  • Literal (Standard): Wenn angegeben, wird der Wert im Feld Input (Eingabe) direkt als Eingabe an den Zustandsautomaten übergeben.

    Beispieleintrag für das Feld Input (Eingabe), wenn Literal ausgewählt ist:

    {"action": "test"}
  • FilePath: Der Inhalt einer Datei in dem im Eingabefeld angegebenen Eingabeartefakt wird als Eingabe für die State-Machine-Ausführung verwendet. Ein Eingabeartefakt ist erforderlich, wenn auf gesetzt InputTypeist. FilePath

    Beispieleintrag für das Eingabefeld, wenn ausgewählt FilePathist:

    assets/input.json
Eingabe

Required: Conditional

  • Literal: Wenn auf Literal (Standard) gesetzt InputTypeist, ist dieses Feld optional.

    Wenn angegeben, wird das Feld Input (Eingabe) direkt als Eingabe für die Ausführung des Zustandsautomaten verwendet. Andernfalls wird der Zustandsautomat mit einem leeren JSON-Objekt ({}) aufgerufen.

  • FilePath: Wenn auf gesetzt InputTypeist FilePath, ist dieses Feld erforderlich.

    Ein Eingabeartefakt ist auch erforderlich, wenn auf FilePathgesetzt InputTypeist.

    Der Inhalt der Datei im angegebenen Eingabeartefakt wird als Eingabe für die Ausführung des Zustandsautomaten verwendet.

Input artifacts (Eingabeartefakte)

  • Anzahl der Artefakte: 0 to 1

  • Beschreibung: Wenn auf gesetzt InputTypeist FilePath, ist dieses Artefakt erforderlich und wird als Quelle für die Eingabe für die State-Machine-Ausführung verwendet.

Ausgabeartefakte

  • Anzahl der Artefakte: 0 to 1

  • Beschreibung

    • Standard-Zustandsautomaten: Wenn vorhanden, wird das Ausgabeartefakt mit der Ausgabe des Zustandsautomaten gefüllt. Dies wird aus der output Eigenschaft der Step Functions DescribeExecution Functions-API-Antwort abgerufen, nachdem die State-Machine-Ausführung erfolgreich abgeschlossen wurde.

    • Express-Zustandsautomaten: Nicht unterstützt.

Ausgabevariablen

Durch diese Aktion werden Ausgabevariablen erzeugt, die von der Aktionskonfiguration einer nachgeschalteten Aktion in der Pipeline referenziert werden können.

Weitere Informationen finden Sie unter Variablen.

StateMachineArn

Der ARN des Zustandsautomaten.

ExecutionArn

Der ARN der Ausführung des Zustandsautomaten. Nur Standard-Zustandsautomaten.

Beispielaktionskonfiguration

Beispiel für Standardeingabe

YAML
Name: ActionName ActionTypeId: Category: Invoke Owner: AWS Version: 1 Provider: StepFunctions OutputArtifacts: - Name: myOutputArtifact Configuration: StateMachineArn: arn:aws:states:us-east-1:111122223333:stateMachine:HelloWorld-StateMachine ExecutionNamePrefix: my-prefix
JSON
{ "Name": "ActionName", "ActionTypeId": { "Category": "Invoke", "Owner": "AWS", "Version": 1, "Provider": "StepFunctions" }, "OutputArtifacts": [ { "Name": "myOutputArtifact" } ], "Configuration": { "StateMachineArn": "arn:aws:states:us-east-1:111122223333:stateMachine:HelloWorld-StateMachine", "ExecutionNamePrefix": "my-prefix" } }

Beispiel für Literaleingabe

YAML
Name: ActionName ActionTypeId: Category: Invoke Owner: AWS Version: 1 Provider: StepFunctions OutputArtifacts: - Name: myOutputArtifact Configuration: StateMachineArn: arn:aws:states:us-east-1:111122223333:stateMachine:HelloWorld-StateMachine ExecutionNamePrefix: my-prefix Input: '{"action": "test"}'
JSON
{ "Name": "ActionName", "ActionTypeId": { "Category": "Invoke", "Owner": "AWS", "Version": 1, "Provider": "StepFunctions" }, "OutputArtifacts": [ { "Name": "myOutputArtifact" } ], "Configuration": { "StateMachineArn": "arn:aws:states:us-east-1:111122223333:stateMachine:HelloWorld-StateMachine", "ExecutionNamePrefix": "my-prefix", "Input": "{\"action\": \"test\"}" } }

Beispiel für Eingabedatei

YAML
Name: ActionName InputArtifacts: - Name: myInputArtifact ActionTypeId: Category: Invoke Owner: AWS Version: 1 Provider: StepFunctions OutputArtifacts: - Name: myOutputArtifact Configuration: StateMachineArn: 'arn:aws:states:us-east-1:111122223333:stateMachine:HelloWorld-StateMachine' ExecutionNamePrefix: my-prefix InputType: FilePath Input: assets/input.json
JSON
{ "Name": "ActionName", "InputArtifacts": [ { "Name": "myInputArtifact" } ], "ActionTypeId": { "Category": "Invoke", "Owner": "AWS", "Version": 1, "Provider": "StepFunctions" }, "OutputArtifacts": [ { "Name": "myOutputArtifact" } ], "Configuration": { "StateMachineArn": "arn:aws:states:us-east-1:111122223333:stateMachine:HelloWorld-StateMachine", "ExecutionNamePrefix": "my-prefix", "InputType": "FilePath", "Input": "assets/input.json" } }

Behavior

CodePipeline Führt während einer Veröffentlichung die konfigurierte Zustandsmaschine unter Verwendung der Eingabe aus, die in der Aktionskonfiguration angegeben ist.

Wenn auf Literal gesetzt InputTypeist, wird der Inhalt des Konfigurationsfeldes für die Eingabeaktion als Eingabe für die Zustandsmaschine verwendet. Wenn keine Literaleingabe bereitgestellt wird, wird für die Ausführung des Zustandsautomaten ein leeres JSON-Objekt ({}) verwendet. Weitere Informationen zum Ausführen einer State-Machine-Ausführung ohne Eingabe finden Sie in der Step Functions StartExecution API.

Wenn auf gesetzt InputTypeist FilePath, entpackt die Aktion das Eingabeartefakt und verwendet den Inhalt der Datei, die im Konfigurationsfeld für die Eingabeaktion angegeben ist, als Eingabe für die Zustandsmaschine. Wenn angegeben, FilePathist das Eingabefeld erforderlich und es muss ein Eingabeartefakt vorhanden sein. Andernfalls schlägt die Aktion fehl.

Nach einer erfolgreichen Ausführung des Starts ist das Verhalten für die beiden Arten von Zustandsautomaten, Standard- bzw. Express- unterschiedlich.

Standard-Zustandsautomaten

Wenn die Ausführung der Standardzustandsmaschine erfolgreich gestartet wurde, CodePipeline wird die DescribeExecution API abgefragt, bis die Ausführung einen Terminalstatus erreicht. Wenn die Ausführung erfolgreich abgeschlossen wird, wird die Aktion erfolgreich ausgeführt, andernfalls schlägt sie fehl.

Wenn ein Ausgabeartefakt konfiguriert ist, enthält das Artefakt den Rückgabewert des Zustandsautomaten. Dies wird aus der output Eigenschaft der Step Functions DescribeExecution Functions-API-Antwort abgerufen, nachdem die State-Machine-Ausführung erfolgreich abgeschlossen wurde. Beachten Sie, dass für diese API Einschränkungen für die Ausgabelänge zwingend gelten.

Fehlerbehandlung

  • Wenn der Start einer Ausführung für einen Zustandsautomaten fehlschlägt, schlägt die Ausführung der Aktion ebenfalls fehl.

  • Wenn die Ausführung der Zustandsmaschine keinen Terminalstatus erreicht, bevor die CodePipeline Step Functions Functions-Aktion ihr Timeout erreicht (Standard von 7 Tagen), schlägt die Aktionsausführung fehl. Der Zustandsautomat läuft möglicherweise trotz dieses Fehlers weiter. Weitere Informationen zu Timeouts bei der Ausführung von Zustandsmaschinen in Step Functions finden Sie unter Standard- und Express-Workflows.

    Anmerkung

    Sie können für das Konto mit der Aktion eine Kontingenterhöhung für das Timeout von Aufrufaktionen anfordern. Die Kontingenterhöhung gilt dann auch für alle Aktionen dieser Art in allen Regionen für dieses Konto.

  • Wenn die Ausführung des Zustandsautomaten mit dem Beendigungsstatus FAILED, TIMED_OUT oder ABORTED endet, schlägt die Ausführung der Aktion fehl.

Express-Zustandsautomaten

Wenn die Ausführung des Express-Zustandsautomaten erfolgreich gestartet wurde, wird die Ausführung der Aufrufaktion erfolgreich abgeschlossen.

Überlegungen zu Aktionen, die für Express-Zustandsautomaten konfiguriert sind:

  • Sie können kein Ausgabeartefakt angeben.

  • Die Aktion wartet nicht, bis die Ausführung des Zustandsautomaten beendet ist.

  • Nachdem die Ausführung der Aktion gestartet wurde CodePipeline, ist die Ausführung der Aktion erfolgreich, auch wenn die Ausführung der Zustandsmaschine fehlschlägt.

Fehlerbehandlung

  • Wenn die Ausführung einer Zustandsmaschine CodePipeline nicht gestartet werden kann, schlägt die Ausführung der Aktion fehl. Andernfalls gilt die Aktion sofort ebenfalls als erfolgreich ausgeführt. Die Aktion ist erfolgreich, CodePipeline unabhängig davon, wie lange es dauert, bis die State-Machine-Ausführung abgeschlossen ist oder welches Ergebnis sie hat.

Die folgenden verwandten Ressourcen bieten Ihnen nützliche Informationen für die Arbeit mit dieser Aktion.