

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

# Configurazione di un nuovo tentativo per una fase fallita o per azioni non riuscite
<a name="stage-retry"></a>

È possibile riprovare una fase che ha avuto esito negativo senza dover eseguire nuovamente una pipeline dall'inizio. A tale scopo, riprovate le azioni non riuscite in una fase oppure riprovate tutte le azioni nella fase a partire dalla prima azione nella fase. Quando riprovi a eseguire le azioni non riuscite in una fase, tutte le azioni ancora in corso continuano a funzionare e le azioni fallite vengono nuovamente attivate. Quando riprovi una fase fallita dalla prima azione nella fase, non è possibile che nella fase siano in corso azioni. Prima di poter ritentare una fase, è necessario che tutte le azioni siano fallite oppure che alcune azioni siano fallite e altre abbiano avuto successo.

**Importante**  
Riprovare una fase non riuscita riprova tutte le azioni della fase dalla prima azione nella fase e riprovare le azioni fallite riprova tutte le azioni fallite nella fase. Ciò sovrascrive gli artefatti di output delle azioni precedentemente eseguite con successo nella stessa esecuzione.   
Sebbene gli artefatti possano essere sostituiti, la cronologia di esecuzione delle azioni precedentemente riuscite viene comunque conservata.

Se si utilizza la console per visualizzare una pipeline, sullo stage viene visualizzato il pulsante **Riprova fase** o Riprova **azioni fallite che può essere riprovato**.

Se si utilizza la AWS CLI, è possibile utilizzare il **get-pipeline-state** comando per determinare se alcune azioni sono fallite.

**Nota**  
Nei seguenti casi, potresti non essere in grado di riprovare una fase:  
Tutte le azioni nella fase hanno avuto esito positivo, pertanto lo stato della fase non è fallito.
La struttura complessiva della pipeline è cambiata dopo il fallimento della fase.
È già in corso un altro tentativo di ripetizione nella fase.

**Topics**
+ [Considerazioni per un nuovo tentativo](#stage-retry-considerations)
+ [Riprova manualmente una fase fallita](#stage-retry-manual)
+ [Configura una fase per il nuovo tentativo automatico in caso di errore](#stage-retry-auto)

## Considerazioni per un nuovo tentativo
<a name="stage-retry-considerations"></a>

Le considerazioni relative a un nuovo tentativo sono le seguenti:
+ È possibile configurare un tentativo automatico in caso di errore sullo stage solo per un nuovo tentativo.
+ È possibile configurare i tentativi automatici in caso di errore sullo stage per tutte le azioni, comprese le azioni. `Source`

## Riprova manualmente una fase fallita
<a name="stage-retry-manual"></a>

È possibile riprovare manualmente una fase non riuscita utilizzando la console o la CLI.

È inoltre possibile configurare una fase per riprovare automaticamente in caso di errore, come descritto in. [Configura una fase per il nuovo tentativo automatico in caso di errore](#stage-retry-auto) 

### Riprova manualmente una fase fallita (console)
<a name="stage-retry-console"></a><a name="proc-stage-retry-console"></a>

**Per riprovare una fase fallita o azioni fallite in una fase: console**

1. Accedi Console di gestione AWS e apri la CodePipeline console all'[indirizzo http://console.aws.amazon. com/codesuite/codepipeline/home](https://console.aws.amazon.com/codesuite/codepipeline/home).

   Vengono visualizzati i nomi di tutte le pipeline associate al tuo AWS account.

1.  In **Name (Nome)**, scegli il nome della pipeline. 

1. Individuate la fase in cui si è verificata l'azione non riuscita, quindi scegliete una delle seguenti opzioni:
   + Per riprovare tutte le azioni nella fase, scegli **Riprova** fase.
   + Per riprovare solo le azioni fallite nella fase, scegli **Riprova** le azioni fallite.   
![\[Una pipeline di esempio con una fase di CodeCommit origine e una fase di distribuzione non riuscita CodeDeploy\]](http://docs.aws.amazon.com/it_it/codepipeline/latest/userguide/images/retry-failed-stage.png)

   Se tutte le operazioni ripetute nella fase vengono completate, l'esecuzione della pipeline continua.

### Riprova manualmente una fase fallita (CLI)
<a name="stage-retry-cli"></a>

**Per riprovare una fase o azioni non riuscite in una fase - CLI**

Per utilizzare il comando AWS CLI per riprovare tutte le azioni o tutte le azioni non riuscite, esegui il **retry-stage-execution** comando con i seguenti parametri: 

```
--pipeline-name <value>
--stage-name <value>
--pipeline-execution-id <value>
--retry-mode ALL_ACTIONS/FAILED_ACTIONS
```
**Nota**  
I valori per cui è possibile utilizzare `retry-mode` sono `FAILED_ACTIONS` e`ALL_ACTIONS`.

1. In un terminale (Linux, macOS o Unix) o nel prompt dei comandi (Windows), esegui il [https://docs.aws.amazon.com/cli/latest/reference/codepipeline/get-pipeline-state.html](https://docs.aws.amazon.com/cli/latest/reference/codepipeline/get-pipeline-state.html)comando, come illustrato nell'esempio seguente per una pipeline denominata. `MyPipeline`

   ```
   aws codepipeline retry-stage-execution --pipeline-name MyPipeline --stage-name Deploy --pipeline-execution-id b59babff-5f34-EXAMPLE --retry-mode FAILED_ACTIONS
   ```

   L'output restituisce l'ID di esecuzione:

   ```
   {
       "pipelineExecutionId": "b59babff-5f34-EXAMPLE"
   }
   ```

1. Puoi anche eseguire il comando con un file di input JSON. Crea innanzitutto un file JSON che identifichi la pipeline, la fase contenente le operazioni non riuscite e l'esecuzione della pipeline più recente in tale fase. Quindi, esegui il comando **retry-stage-execution** con il parametro `--cli-input-json`. Per recuperare i dettagli necessari per il file JSON, è più semplice utilizzare il comando **get-pipeline-state**.

   1. In un terminale (Linux, macOS o Unix) o nel prompt dei comandi (Windows), esegui il [https://docs.aws.amazon.com/cli/latest/reference/codepipeline/get-pipeline-state.html](https://docs.aws.amazon.com/cli/latest/reference/codepipeline/get-pipeline-state.html)comando su una pipeline. Ad esempio, per una pipeline denominata MyFirstPipeline, è necessario digitare qualcosa di simile al seguente:

      ```
      aws codepipeline get-pipeline-state --name MyFirstPipeline
      ```

      La risposta al comando include le informazioni sullo stato della pipeline per ogni fase. Nel seguente esempio, la risposta indica che una o più operazioni non sono riuscite nella fase Gestione temporanea:

      ```
      {
          "updated": 1427245911.525,
          "created": 1427245911.525,
          "pipelineVersion": 1,
          "pipelineName": "MyFirstPipeline",
          "stageStates": [
              {
                  "actionStates": [...],
                  "stageName": "Source",
                  "latestExecution": {
                      "pipelineExecutionId": "9811f7cb-7cf7-SUCCESS",
                      "status": "Succeeded"
                  }
              },
              {
                  "actionStates": [...],
                  "stageName": "Staging",
                  "latestExecution": {
                      "pipelineExecutionId": "3137f7cb-7cf7-EXAMPLE",
                      "status": "Failed"
                  }
              }
          ]
      }
      ```

   1. In un editor di testo normale, creare un file in formato JSON in cui verranno registrate le informazioni riportate di seguito:
      + Il nome della pipeline contenente le operazioni non riuscite.
      + Il nome della fase contenente le operazioni non riuscite.
      + L'ID dell'ultima esecuzione della pipeline nella fase
      + La modalità di ripetizione.

       MyFirstPipeline Nell'esempio precedente, il file avrebbe un aspetto simile al seguente:

      ```
      {
          "pipelineName": "MyFirstPipeline",
          "stageName": "Staging",
          "pipelineExecutionId": "3137f7cb-7cf7-EXAMPLE",
          "retryMode": "FAILED_ACTIONS"
      }
      ```

   1. Salvare il file con un nome come **retry-failed-actions.json**.

   1. Chiama il file creato quando esegui il comando [https://docs.aws.amazon.com/cli/latest/reference/codepipeline/retry-stage-execution.html](https://docs.aws.amazon.com/cli/latest/reference/codepipeline/retry-stage-execution.html). Esempio:
**Importante**  
Assicurarsi di includere `file://` prima del nome del file. Questo è obbligatorio in questo comando.

      ```
      aws codepipeline retry-stage-execution --cli-input-json file://retry-failed-actions.json
      ```

   1. Per visualizzare i risultati del nuovo tentativo, apri la CodePipeline console e scegli la pipeline che contiene le azioni fallite oppure usa nuovamente il **get-pipeline-state** comando. Per ulteriori informazioni, consulta [Visualizza le pipeline e i dettagli in CodePipeline](pipelines-view.md). 

## Configura una fase per il nuovo tentativo automatico in caso di errore
<a name="stage-retry-auto"></a>

È possibile configurare una fase per un nuovo tentativo automatico in caso di errore. La fase effettuerà un nuovo tentativo e mostrerà lo stato del nuovo tentativo nella fase non riuscita nella pagina **Visualizza** pipeline.

È possibile configurare la modalità di nuovo tentativo specificando che la fase deve riprovare automaticamente tutte le azioni nella fase non riuscita o solo le azioni non riuscite nella fase.

### Configura una fase per un nuovo tentativo automatico in caso di errore (console)
<a name="stage-retry-auto-console"></a>

È possibile utilizzare la console per configurare una fase per il ritentativo automatico.

**Configura una fase per il ritentativo automatico (console)**

1. Accedi Console di gestione AWS e apri la CodePipeline console all'[indirizzo http://console.aws.amazon. com/codesuite/codepipeline/home](https://console.aws.amazon.com/codesuite/codepipeline/home).

   Vengono visualizzati i nomi e lo stato di tutte le pipeline associate al tuo AWS account. 

1. In **Name (Nome)**, scegliere il nome della pipeline da modificare.

1. Nella pagina dei dettagli della pipeline, scegliere **Edit (Modifica)**.

1. Nella pagina **Modifica**, per l'azione che desideri modificare, scegli **Modifica fase**.

1. Scegli **Configurazione automatica della fase:**, quindi scegli **Abilita riprova automatica in caso di errore sullo stage**. Salva le modifiche alla tua pipeline.

1. In **Configurazione automatica della fase:**, scegli una delle seguenti modalità di riprova:
   + Per specificare che la modalità riproverà tutte le azioni nella fase, scegliete **Riprova** fase fallita.
   + Per specificare che la modalità riproverà solo le azioni non riuscite nella fase, scegliete **Riprova** le azioni fallite.

   Salva le modifiche alla pipeline.  
![\[Un esempio di schermata di modifica per configurare il nuovo tentativo automatico in caso di errore sullo stage. CodePipeline\]](http://docs.aws.amazon.com/it_it/codepipeline/latest/userguide/images/retry-configure.png)

1. Dopo l'esecuzione della pipeline, se si verifica un errore nella fase, verrà effettuato un nuovo tentativo automatico. Gli esempi seguenti mostrano una fase di compilazione che è stata ritentata automaticamente.  
![\[Una pipeline di esempio con una fase fallita che è stata ritentata una volta.\]](http://docs.aws.amazon.com/it_it/codepipeline/latest/userguide/images/stage-auto-retry-example.png)

1. Per visualizzare i dettagli sul nuovo tentativo, scegliete. Viene visualizzata la finestra.  
![\[Un esempio della finestra dei metadati della fase di riprova che mostra che c'è stato un tentativo.\]](http://docs.aws.amazon.com/it_it/codepipeline/latest/userguide/images/retry-stage-metadata.png)

### Configurare una fase per il ritentativo automatico (CLI)
<a name="stage-retry-auto-cli"></a>

 AWS CLI Per configurare una fase in modo che riprovi automaticamente in caso di errore, utilizzate i comandi per creare o aggiornare una pipeline come descritto in e. [Crea una pipeline, fasi e azioni](pipelines-create.md) [Modifica una tubazione in CodePipeline](pipelines-edit.md)
+ Apri un terminale (Linux, macOS o Unix) o il prompt dei comandi (Windows) e usalo AWS CLI per eseguire il `update-pipeline` comando, specificando la condizione di errore nella struttura della pipeline. L'esempio seguente configura un nuovo tentativo automatico per una fase denominata: `S3Deploy` 

  ```
  {
                  "name": "S3Deploy",
                  "actions": [
                      {
                          "name": "s3deployaction",
                          "actionTypeId": {
                              "category": "Deploy",
                              "owner": "AWS",
                              "provider": "S3",
                              "version": "1"
                          },
                          "runOrder": 1,
                          "configuration": {
                              "BucketName": "static-website-bucket",
                              "Extract": "false",
                              "ObjectKey": "SampleApp.zip"
                          },
                          "outputArtifacts": [],
                          "inputArtifacts": [
                              {
                                  "name": "SourceArtifact"
                              }
                          ],
                          "region": "us-east-1"
                      }
                  ],
                   "onFailure": {
                      "result": "RETRY",
                      "retryConfiguration": {
                          "retryMode": "ALL_ACTIONS",
                      },
              }
  ```

### Configurate una fase per il ritentativo automatico ()CloudFormation
<a name="stage-retry-auto-cfn"></a>

Da utilizzare CloudFormation per configurare una fase per un nuovo tentativo automatico in caso di errore, utilizzate il parametro `OnFailure` Stage Lifecycle. Utilizzate il `RetryConfiguration` parametro per configurare la modalità di riprova.

```
OnFailure:
     Result: RETRY
     RetryConfiguration: 
         RetryMode: ALL_ACTIONS
```
+ Aggiorna il modello come mostrato nel frammento seguente. L'esempio seguente configura il nuovo tentativo automatico per una fase denominata: `Release`

  ```
  AppPipeline: 
    Type: AWS::CodePipeline::Pipeline 
    Properties: 
      RoleArn:
        Ref: CodePipelineServiceRole 
      Stages: 
        - 
          Name: Source 
          Actions: 
            - 
              Name: SourceAction
              ActionTypeId: 
                Category: Source 
                Owner: AWS 
                Version: 1 
                Provider: S3 
              OutputArtifacts: 
                - 
                  Name: SourceOutput 
              Configuration: 
                S3Bucket: 
                  Ref: SourceS3Bucket 
                S3ObjectKey: 
                  Ref: SourceS3ObjectKey 
              RunOrder: 1  
        - 
          Name: Release 
          Actions: 
            - 
              Name: ReleaseAction
              InputArtifacts: 
                - 
                  Name: SourceOutput 
              ActionTypeId: 
                Category: Deploy 
                Owner: AWS 
                Version: 1
                Provider: CodeDeploy 
              Configuration: 
                ApplicationName: 
                  Ref: ApplicationName
                DeploymentGroupName: 
                  Ref: DeploymentGroupName 
              RunOrder: 1   
         OnFailure:
             Result: RETRY
             RetryConfiguration: 
                RetryMode: ALL_ACTIONS
      ArtifactStore: 
        Type: S3 
        Location:
          Ref: ArtifactStoreS3Location 
        EncryptionKey:
          Id: arn:aws:kms:useast-1:ACCOUNT-ID:key/KEY-ID
          Type: KMS
      DisableInboundStageTransitions: 
        - 
          StageName: Release 
          Reason: "Disabling the transition until integration tests are completed"
      Tags:
        - Key: Project
          Value: ProjectA
        - Key: IsContainerBased
          Value: 'true'
  ```

  *Per ulteriori informazioni sulla configurazione di un nuovo tentativo in caso di errore, vedere la sezione successiva della Guida per [OnFailure](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codepipeline-pipeline-stagedeclaration.html#cfn-codepipeline-pipeline-stagedeclaration-onfailure)l'`StageDeclaration`utente.CloudFormation *