AWS Step Functions - AWS CodePipeline

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

AWS Step Functions

Un' AWS CodePipeline azione che esegue le seguenti operazioni:

  • Avvia l'esecuzione di una macchina a AWS Step Functions stati dalla pipeline.

  • Fornisce uno stato iniziale alla macchina a stati tramite una proprietà nella configurazione dell'operazione o un file contenuto in un artefatto della pipeline da passare come input.

  • Facoltativamente, imposta un prefisso dell'ID di esecuzione per identificare le esecuzioni che provengono dall'operazione.

  • Supporta macchine a stati Standard ed Express .

Nota

L'azione Step Functions viene eseguita su Lambda e pertanto ha quote di dimensione degli artefatti uguali alle quote di dimensione degli artefatti per le funzioni Lambda. Per ulteriori informazioni, consulta le quote Lambda nella Lambda Developer Guide.

Tipo di operazione

  • Categoria: Invoke

  • Proprietario: AWS

  • Provider: StepFunctions

  • Versione: 1

Parametri di configurazione

StateMachineArn

Campo obbligatorio: sì

L’ Amazon Resource Name (ARN) per la macchina a stati da richiamare.

ExecutionNamePrefix

Campo obbligatorio: no

Per impostazione predefinita, l'ID di esecuzione dell'operazione viene utilizzato come nome di esecuzione della macchina a stati. Se viene fornito un prefisso, viene anteposto all'ID di esecuzione dell'operazione con un trattino e utilizzato insieme come nome di esecuzione della macchina a stati.

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

Per una macchina a stati di tipo Express, il nome deve contenere solo caratteri 0-9, A-Z, a-z, - e _.

InputType

Campo obbligatorio: no

  • Literal (Letterale) (impostazione predefinita): se specificato, il valore nel campo Input viene passato direttamente all'input della macchina a stati.

    Esempio di voce per il campo Input quando è selezionato Literal (Letterale) :

    {"action": "test"}
  • FilePath: Il contenuto di un file nell'elemento di input specificato dal campo Input viene utilizzato come input per l'esecuzione della macchina a stati. Un artefatto di input è richiesto quando InputTypeè impostato su. FilePath

    Esempio di immissione per il campo Input quando FilePathè selezionato:

    assets/input.json
Input

Obbligatorio: condizionale

  • Letterale: quando InputTypeè impostato su Literal (impostazione predefinita), questo campo è facoltativo.

    Se fornito, il campo Input viene utilizzato direttamente come input per l'esecuzione della macchina a stati. In caso contrario, la macchina a stati viene richiamata con un oggetto JSON vuoto {}.

  • FilePath: Quando InputTypeè impostato su FilePath, questo campo è obbligatorio.

    Un artefatto di input è richiesto anche quando InputTypeè impostato su. FilePath

    Il contenuto del file nell'artefatto di input specificato viene utilizzato come input per l'esecuzione della macchina a stati.

Input artifact (Artefatti di input)

  • Numero di artefatti: 0 to 1

  • Descrizione: se InputTypeimpostato su FilePath, questo artefatto è obbligatorio e viene utilizzato per generare l'input per l'esecuzione della macchina a stati.

Artefatti di output

  • Numero di artefatti: 0 to 1

  • Descrizione:

    • Macchine a stati Standard: se fornito, l'artefatto di output viene popolato con l'output della macchina a stati. Questo viene ottenuto dalla output proprietà della risposta dell' DescribeExecution API Step Functions dopo che l'esecuzione della macchina a stati è stata completata correttamente.

    • Macchine a stati Express: non supportate.

Variabili di output

Questa operazione produce variabili di output che possono essere referenziate mediante configurazione dell'operazione di un'operazione a valle nella pipeline.

Per ulteriori informazioni, consulta Variables.

StateMachineArn

ARN della macchina a stati.

ExecutionArn

L'ARN di esecuzione della macchina a stati. Solo macchine a stati Standard.

Esempio di configurazione dell'operazione

Esempio di input predefinito

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" } }

Esempio di input letterale

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\"}" } }

Esempio di file di input

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" } }

Comportamento

Durante una versione, CodePipeline esegue la macchina a stati configurata utilizzando l'input specificato nella configurazione dell'azione.

Quando InputTypeè impostato su Literal, il contenuto del campo di configurazione dell'azione di input viene utilizzato come input per la macchina a stati. Quando l'input letterale non viene fornito, l'esecuzione della macchina a stati utilizza un oggetto JSON vuoto {}. Per ulteriori informazioni sull'esecuzione di un'esecuzione di una macchina a stati senza input, consulta l' StartExecutionAPI Step Functions.

Quando InputTypeè impostata su FilePath, l'azione decomprime l'elemento di input e utilizza il contenuto del file specificato nel campo di configurazione dell'azione di input come input per la macchina a stati. Quando FilePathè specificato, il campo di input è obbligatorio e deve esistere un elemento di input; in caso contrario, l'azione ha esito negativo.

Dopo l'esecuzione di un avvio riuscito, il comportamento divergerà per i due tipi di macchina a stati, Standard ed Express.

Macchine a stati Standard

Se l'esecuzione della macchina a stati standard è stata avviata correttamente, esegue il CodePipeline polling dell'DescribeExecutionAPI finché l'esecuzione non raggiunge lo stato di terminale. Se l'esecuzione viene completata correttamente, l'operazione ha esito positivo; in caso contrario, ha esito negativo.

Se è configurato un artefatto di output, l'artefatto conterrà il valore restituito dalla macchina a stati. Questo viene ottenuto dalla output proprietà della risposta dell' DescribeExecution API Step Functions dopo che l'esecuzione della macchina a stati è stata completata correttamente. Si noti che vi sono dei vincoli di lunghezza di output applicati a questa API.

Gestione degli errori

  • Se l'operazione non riesce ad avviare un'esecuzione di una macchina a stati, l'esecuzione dell'operazione ha esito negativo.

  • Se l'esecuzione della macchina a stati non riesce a raggiungere lo stato di terminale prima che l'azione CodePipeline Step Functions raggiunga il suo timeout (impostazione predefinita di 7 giorni), l'esecuzione dell'azione fallisce. La macchina a stati potrebbe continuare nonostante questo errore. Per ulteriori informazioni sui timeout di esecuzione delle macchine a stati in Step Functions, consulta Flussi di lavoro Standard e Express.

    Nota

    È possibile richiedere un aumento della quota per il timeout dell'azione di richiamo per l'account con l'operazione. Tuttavia, l'aumento delle quote si applica a tutte le operazioni di questo tipo in tutte le regioni per tale account.

  • Se l'esecuzione della macchina a stati raggiunge uno stato terminale di FAILED, TIMED_OUT o ABORTED, l'esecuzione dell'operazione ha esito negativo.

Macchine a stati Express

Se l'esecuzione della macchina a stati Express è stata avviata correttamente, l'esecuzione dell'operazione di richiamo viene completata correttamente.

Considerazioni relative alle operazioni configurate per le macchine a stati Express:

  • Non è possibile designare un artefatto di output.

  • L'operazione non attende il completamento dell'esecuzione della macchina a stati.

  • Dopo l'avvio dell'esecuzione dell'azione CodePipeline, l'esecuzione dell'azione riesce anche se l'esecuzione della macchina a stati fallisce.

Gestione degli errori

  • Se CodePipeline non riesce ad avviare l'esecuzione di una macchina a stati, l'esecuzione dell'azione fallisce. Altrimenti, l'operazione viene eseguita immediatamente con esito positivo. L'azione riesce CodePipeline indipendentemente dal tempo impiegato dall'esecuzione della macchina a stati per essere completata o dal relativo risultato.

Le risorse correlate seguenti possono essere utili durante l'utilizzo di questa operazione.