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 ausführt:

  • Startet die Ausführung eines AWS Step Functions-Zustandsautomaten über Ihre Pipeline.

  • 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

In den Regionen Asien-Pazifik (Hongkong) und Europa (Mailand) ist diese Funktion nicht verfügbar. Weitere Informationen zu anderen verfügbaren Aktionen finden Sie unterProdukt- und Serviceintegrationen mit CodePipelineaus.

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(default): Wenn angegeben, ist der Wert in derEingabeDas Feld wird direkt an die Eingabe des Zustandsautomaten übergeben.

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

    {"action": "test"}
  • FilePath: Der Inhalt einer Datei in dem Eingastartefakt, das imEingabeDas Feld wird als Eingabe für die Ausführung des Zustandsautomaten verwendet. Ein Eingabeartefakt ist erforderlich, wenn InputType auf FilePath festgelegt ist.

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

    assets/input.json
Eingabe

Erforderlich Bedingt

  • Literal: WannInputTypewird auf gesetztLiteral(Standard) 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: WannInputTypewird auf gesetztFilePathist dieses Feld ein Pflichtfeld.

    Ein Eingabe-Artefakt ist auch erforderlich, wenn InputType auf FilePathfestgelegt ist.

    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 WennInputTypewird auf gesetztFilePath, ist dieses Artefakt erforderlich und wird verwendet, um die Eingabe für die Ausführung des Zustandsautomaten zu erhalten.

Ausgabeartefakte

  • Anzahl der Artefakte 0 to 1

  • Beschreibung

    • Standard-Zustandsautomaten: Wenn angegeben, wird das Ausgabe-Artefakt mit der Ausgabe des Zustandsautomaten gefüllt. Dies wird von deroutputEigentum derSchrittfunktionen DescribeExecution API-Antwort, nachdem die Ausführung des Zustandsautomaten 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

Während einer Veröffentlichung CodePipeline führt den konfigurierten Zustandsautomaten unter Verwendung der Eingabe aus, die in der Aktionskonfiguration angegeben ist.

Wenn InputType auf Literal, festgelegt ist, wird der Inhalt des Konfigurationsfelds der Aktion, Input (Eingabe), als Eingabe für den Zustandsautomaten verwendet. Wenn keine Literaleingabe bereitgestellt wird, wird für die Ausführung des Zustandsautomaten ein leeres JSON-Objekt ({}) verwendet. Weitere Informationen zum Ausführen eines Zustandsautomaten ohne Eingabe finden Sie in der Step Functions-StartExecution API.

Wenn InputType auf FilePath festgelegt ist, entpackt die Aktion das Eingabeartefakt und verwendet den Inhalt der Datei, die im Konfigurationsfeld der Aktion, Input (Eingabe), angegeben ist, als Eingabe für den Zustandsautomaten. Wenn FilePath angegeben wird, ist das Feld Input (Eingabe) 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 des Standard-Zustandsautomaten erfolgreich gestartet wurde, CodePipeline fragtDescribeExecution-API, 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 von deroutputEigentum derSchrittfunktionen DescribeExecution API-Antwort, nachdem die Ausführung des Zustandsautomaten 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 des Zustandsautomaten nicht beendet ist CodePipeline Step Functions Functions-Aktion erreicht ihren Timeout (Standard 7 Tage), die Ausführung der Aktion schlägt fehl. Der Zustandsautomat läuft möglicherweise trotz dieses Fehlers weiter. Weitere Informationen zu Timeouts für die Ausführung von Zustandsautomaten in Step Functions-Standard-Workflows gegen Express-Workflowsaus.

    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 in CodePipeline gestartet wurde, ist die Ausführung der Aktion auch dann erfolgreich, wenn die Ausführung des Zustandsautomaten fehlschlägt.

Fehlerbehandlung

  • Wenn CodePipeline Starten der Ausführung eines Zustandsautomaten nicht, die Ausführung der Aktion schlägt fehl. Andernfalls gilt die Aktion sofort ebenfalls als erfolgreich ausgeführt. Die Aktion gelingt CodePipeline unabhängig davon, wie lange die Ausführung des Zustandsautomaten dauert oder deren Ergebnis dauert.

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