

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à.

# Continua i flussi di lavoro di lunga durata utilizzando l'API Step Functions (consigliato)
<a name="tutorial-continue-new"></a>

AWS Step Functions è progettato per eseguire flussi di lavoro con una durata e un numero di passaggi limitati. Le esecuzioni dei flussi di lavoro standard hanno una durata massima di un anno e 25.000 eventi (vedi). [Quote di servizio Step Functions](service-quotas.md)

Per le esecuzioni di lunga durata, è possibile evitare di raggiungere la quota fissa avviando una nuova esecuzione del flusso di lavoro dallo stato. `Task` È necessario suddividere i flussi di lavoro in macchine a stati più piccole che continuino il lavoro in corso in una nuova esecuzione.

Per avviare nuove esecuzioni di flussi di lavoro, richiamerai l'azione `StartExecution` API dal tuo `Task` stato e passerai i parametri necessari.

Step Functions può avviare l'esecuzione dei flussi di lavoro chiamando la propria API come [servizio integrato](integrate-services.md). Si consiglia di utilizzare questo approccio per evitare il superamento delle quote di servizio per le esecuzioni di lunga durata.

## Passaggio 1: creare una macchina a stati a esecuzione prolungata
<a name="use-sfn-api-create-called-state-machine"></a>

Crea una macchina a stati a lunga durata che desideri avviare dallo `Task` stato di una macchina a stati diversa. Per questo tutorial, usa la [macchina a stati che utilizza una funzione Lambda](tutorial-creating-lambda-state-machine.md).

**Nota**  
Assicurati di copiare il nome e il nome Amazon Resource Name di questa macchina a stati in un file di testo per un uso successivo.

## Passaggio 2: creare una macchina a stati per richiamare l'azione API Step Functions
<a name="use-sfn-api-create-caller-state-machine"></a>

**Per avviare le esecuzioni dei flussi di lavoro da uno `Task` stato**

1. Apri la [console Step Functions](https://console.aws.amazon.com/states/home), scegli **Macchine a stati** dal menu, quindi scegli **Crea macchina a stati**.

1. Scegliete **Crea da vuoto**.

1. Assegna un nome alla tua macchina a stati, quindi scegli **Continua** per modificare la tua macchina a stati in Workflow Studio.

1. Dalla scheda **Azioni**, trascina l'azione **StartExecution**API e rilasciala nello stato vuoto denominato **Trascina il primo stato qui**.

1. Scegli lo **StartExecution**stato ed esegui le seguenti operazioni nella scheda **Configurazione** in[Modalità progettazione](workflow-studio.md#wfs-interface-design-mode):

   1. Rinomina lo stato in. **Start nested execution**

   1. Per **Tipo di integrazione**, scegli **AWS SDK - new** dall'elenco a discesa.

   1. In **Parametri API**, procedi come segue:

      1. Per esempio`StateMachineArn`, sostituisci l'Amazon Resource Name di esempio con l'ARN della tua macchina a stati. Ad esempio, inserisci l'ARN della [macchina a stati che utilizza Lambda](tutorial-creating-lambda-state-machine.md).

      1. Per `Input` node, sostituisci il testo segnaposto esistente con il seguente valore:

         ```
         "Comment": "Starting workflow execution using a Step Functions API action"
         ```

      1. Assicurati che i tuoi input in **API Parameters** siano simili ai seguenti:

         ```
         {
           "StateMachineArn": "arn:aws:states:us-east-2:123456789012:stateMachine:LambdaStateMachine",
           "Input": {
             "Comment": "Starting workflow execution using a Step Functions API action",
             "AWS_STEP_FUNCTIONS_STARTED_BY_EXECUTION_ID.$": "$$.Execution.Id"
           }
         ```

1. (Facoltativo) Scegliete **Definizione** nel [Pannello Inspector](workflow-studio.md#workflow-studio-components-formdefinition) pannello per visualizzare la definizione generata automaticamente [Lingua degli Stati di Amazon](concepts-amazon-states-language.md) (ASL) del flusso di lavoro.
**Suggerimento**  
Puoi anche visualizzare la definizione ASL in Workflow Studio. [Editor del codice](workflow-studio.md#wfs-interface-code-editor) Nell'editor di codice, puoi anche modificare la definizione ASL del tuo flusso di lavoro.

1. Specificate un nome per la vostra macchina a stati. Per fare ciò, scegli l'icona di modifica accanto al nome della macchina a stati predefinita di **MyStateMachine**. Quindi, nella **configurazione della macchina a stati**, specifica un nome nella casella **Nome macchina a stati**.

   Per questo tutorial, inserisci il nome **ParentStateMachine**.

1. (Facoltativo) Nella **configurazione della macchina a stati**, specificate altre impostazioni del flusso di lavoro, come il tipo di macchina a stati e il relativo ruolo di esecuzione.

   Per questo tutorial, mantieni tutte le selezioni predefinite nelle **impostazioni della macchina a stati**.

   Se [in precedenza hai creato un ruolo IAM](procedure-create-iam-role.md) con le autorizzazioni corrette per la tua macchina a stati e desideri utilizzarlo, in **Autorizzazioni** seleziona **Scegli un ruolo esistente**, quindi seleziona un ruolo dall'elenco. Oppure seleziona **Inserisci un ruolo ARN** e quindi fornisci un ARN per quel ruolo IAM.

1. Nella finestra di dialogo **Conferma la creazione del ruolo**, scegli **Conferma** per continuare.

   Puoi anche scegliere **Visualizza le impostazioni del ruolo** per tornare alla **configurazione della macchina a stati**.
**Nota**  
Se elimini il ruolo IAM creato da Step Functions, Step Functions non può ricrearlo in un secondo momento. Allo stesso modo, se modifichi il ruolo (ad esempio, rimuovendo Step Functions dai principi nella policy IAM), Step Functions non può ripristinare le impostazioni originali in un secondo momento. 

## Fase 3: Aggiornare la policy IAM
<a name="use-sfn-api-update-policy-start-execution"></a>

Per assicurarti che la tua macchina a stati disponga delle autorizzazioni per avviare l'esecuzione della [macchina a stati che utilizza una funzione Lambda](tutorial-creating-lambda-state-machine.md), devi allegare una policy in linea al ruolo IAM della tua macchina a stati. *Per ulteriori informazioni, consulta [Embedding Inline Policies](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_manage-attach-detach.html#embed-inline-policy-console) nella IAM User Guide.*

1. Nella **ParentStateMachine**pagina, scegli l'**ARN del ruolo IAM** per accedere alla pagina **Ruoli** IAM per la tua macchina a stati.

1. Assegna un'autorizzazione appropriata al ruolo IAM di **ParentStateMachine**per consentirgli di avviare l'esecuzione di un'altra macchina a stati. Per assegnare l'autorizzazione, procedi come segue:

   1. Nella pagina IAM **Roles**, scegli **Aggiungi autorizzazioni**, quindi scegli **Crea policy inline**.

   1. Nella pagina **Crea policy**, scegli la scheda **JSON**.

   1. Sostituisci il testo esistente con la seguente politica.  
****  

      ```
      {
        "Version":"2012-10-17",		 	 	 
        "Statement": [
            {
                "Effect": "Allow",
                "Action": [
                    "states:StartExecution"
                ],
                "Resource": [
                    "arn:aws:states:us-east-1:123456789012:stateMachine:LambdaStateMachine"
                ]
            }
        ]
      }
      ```

   1. Scegliere **Esamina policy**.

   1. Specifica un nome per la policy e scegli **Crea policy**.

## Fase 4: Esegui la macchina a stati
<a name="use-sfn-api-start-execution"></a>

Le esecuzioni di macchine a stati sono casi in cui si esegue il flusso di lavoro per eseguire attività.

1. Nella **ParentStateMachine**pagina, scegli **Avvia** esecuzione.

   Viene visualizzata la finestra di dialogo **Avvia esecuzione**.

1. Nella finestra di dialogo **Avvia esecuzione**, effettuate le seguenti operazioni:

   1. (Facoltativo) Immettete un nome di esecuzione personalizzato per sovrascrivere il valore predefinito generato.
**Nomi e log non ASCII**  
Step Functions accetta nomi per macchine a stati, esecuzioni, attività ed etichette che contengono caratteri non ASCII. Poiché tali caratteri impediranno ad Amazon CloudWatch di registrare i dati, consigliamo di utilizzare solo caratteri ASCII per tenere traccia delle metriche di Step Functions.

   1. (Facoltativo) Nella casella **Input**, inserisci i valori di input in formato JSON per eseguire il flusso di lavoro.

   1. Selezionare **Start execution (Avvia esecuzione)**.

   1. La console Step Functions ti indirizza a una pagina intitolata con il tuo ID di esecuzione. Questa pagina è nota come pagina dei *dettagli di esecuzione*. In questa pagina è possibile esaminare i risultati dell'esecuzione man mano che l'esecuzione procede o dopo il suo completamento.

      Per esaminare i risultati dell'esecuzione, scegliete i singoli stati nella **vista Grafico**, quindi scegliete le singole schede [Dettagli del passaggio](concepts-view-execution-details.md#exec-details-intf-step-details) nel riquadro per visualizzare i dettagli di ogni stato, inclusi rispettivamente input, output e definizione. Per i dettagli sulle informazioni sull'esecuzione che è possibile visualizzare nella pagina *Dettagli di esecuzione*, vedere[Panoramica dei dettagli di esecuzione](concepts-view-execution-details.md#exec-details-interface-overview).

1. Apri la **LambdaStateMachine**pagina e nota una nuova esecuzione attivata da. **ParentStateMachine**