

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 del rollback dello stage
<a name="stage-rollback"></a>

È possibile ripristinare una fase e riportarla a un'esecuzione che in quella fase ha avuto esito positivo. È possibile preconfigurare una fase per il rollback in caso di errore oppure ripristinare manualmente una fase. L'operazione di rollback comporterà una nuova esecuzione. L'esecuzione della pipeline di destinazione scelta per il rollback viene utilizzata per recuperare le revisioni e le variabili di origine. 

Il tipo di esecuzione, standard o rollback, viene visualizzato nella cronologia della pipeline, nello stato della pipeline e nei dettagli di esecuzione della pipeline.

**Topics**
+ [Considerazioni sui rollback](#stage-rollback-considerations)
+ [Ripristina manualmente uno stage](stage-rollback-manual.md)
+ [Configura una fase per il rollback automatico](stage-rollback-auto.md)
+ [Visualizza lo stato di rollback nell'elenco delle esecuzioni](stage-rollback-view-listing.md)
+ [Visualizza i dettagli sullo stato del rollback](stage-rollback-view-details.md)

## Considerazioni sui rollback
<a name="stage-rollback-considerations"></a>

Le considerazioni relative al rollback dello stage sono le seguenti:
+ Non è possibile ripristinare uno stadio di origine.
+ La pipeline può tornare a un'esecuzione precedente solo se l'esecuzione precedente è stata avviata nella versione corrente della struttura della pipeline.
+ Non è possibile ripristinare un ID di esecuzione di destinazione che sia un tipo di esecuzione di rollback.
+ CodePipeline utilizzerà le variabili e gli artefatti dell'esecuzione a cui viene ripristinato.

# Ripristina manualmente uno stage
<a name="stage-rollback-manual"></a>

È possibile ripristinare manualmente uno stage utilizzando la console o la CLI. La pipeline può tornare a un'esecuzione precedente solo se l'esecuzione precedente è stata avviata nella versione corrente della struttura della pipeline.

È inoltre possibile configurare una fase per il rollback automatico in caso di errore, come descritto in. [Configura una fase per il rollback automatico](stage-rollback-auto.md) 

## Ripristina manualmente uno stage (console)
<a name="stage-rollback-console"></a>

È possibile utilizzare la console per ripristinare manualmente uno stage fino all'esecuzione della pipeline di destinazione. Quando si esegue il **rollback di una fase, viene visualizzata un'etichetta Rollback** sulla visualizzazione della pipeline nella console.

**Ripristina manualmente uno stage (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 **Nome**, scegliete il nome della pipeline con lo stage da ripristinare.  
![\[Un esempio di diagramma di una pipeline con due fasi. CodePipeline\]](http://docs.aws.amazon.com/it_it/codepipeline/latest/userguide/images/rollback-stage-first.png)

1. Sullo stage, scegli **Avvia** rollback. Viene visualizzato il **pulsante Ripristina alla** pagina.

1. Scegliete l'esecuzione di destinazione a cui desiderate ripristinare lo stage.
**Nota**  
L'elenco delle esecuzioni della pipeline di destinazione disponibili includerà tutte le esecuzioni nell'attuale versione della pipeline a partire dal 1° febbraio 2024.  
![\[Un esempio di scelta dell'ID di esecuzione di destinazione in. CodePipeline\]](http://docs.aws.amazon.com/it_it/codepipeline/latest/userguide/images/rollback-stage-dialog.png)

Il diagramma seguente mostra un esempio di rollback stage con il nuovo ID di esecuzione.

![\[Un esempio di diagramma di una pipeline con uno stadio di rollback in entrata. CodePipeline\]](http://docs.aws.amazon.com/it_it/codepipeline/latest/userguide/images/stage-rolled-back.png)


## Ripristina manualmente uno stage (CLI)
<a name="stage-rollback-cli"></a>

Per utilizzare il AWS CLI ripristino manuale di uno stage, utilizzate il `rollback-stage` comando. 

È anche possibile ripristinare uno stadio manualmente, come descritto in[Ripristina manualmente uno stage](#stage-rollback-manual). 

**Nota**  
L'elenco delle esecuzioni della pipeline di destinazione disponibili includerà tutte le esecuzioni nell'attuale versione della pipeline a partire dal 1° febbraio 2024.

**Per ripristinare manualmente uno stage (CLI)**

1. Il comando CLI per il rollback manuale richiederà l'ID di esecuzione di un'esecuzione della pipeline precedentemente riuscita nella fase. Per ottenere l'ID di esecuzione della pipeline di destinazione da specificare, utilizzate il list-pipeline-executions comando con un filtro che restituirà le esecuzioni riuscite nella fase. Apri un terminale (Linux, macOS o Unix) o il prompt dei comandi (Windows) e usa AWS CLI per eseguire il `list-pipeline-executions` comando, specificando il nome della pipeline e il filtro per le esecuzioni riuscite nella fase. In questo esempio, l'output elencherà le esecuzioni della pipeline per la pipeline denominata e per le esecuzioni riuscite nella fase denominata MyFirstPipeline . `deploys3` 

   ```
   aws codepipeline list-pipeline-executions --pipeline-name MyFirstPipeline --filter succeededInStage={stageName=deploys3}
   ```

   Nell'output, copiate l'ID di esecuzione dell'esecuzione precedentemente riuscita che desiderate specificare per il rollback. Lo utilizzerai nel passaggio successivo come ID di esecuzione di destinazione.

1. Apri un terminale (Linux, macOS o Unix) o il prompt dei comandi (Windows) e usa AWS CLI per eseguire il `rollback-stage` comando, specificando il nome della pipeline, il nome dello stage e l'esecuzione di destinazione a cui desideri eseguire il rollback. Ad esempio, per ripristinare una fase denominata Deploy per una pipeline denominata: *MyFirstPipeline* 

   ```
   aws codepipeline rollback-stage --pipeline-name MyFirstPipeline --stage-name Deploy --target-pipeline-execution-id bc022580-4193-491b-8923-9728dEXAMPLE 
   ```

   L'output restituisce l'ID di esecuzione per la nuova esecuzione ripristinata. Si tratta di un ID separato che utilizza le revisioni e i parametri di origine dell'esecuzione di destinazione specificata.

# Configura una fase per il rollback automatico
<a name="stage-rollback-auto"></a>

È possibile configurare le fasi di una pipeline per il rollback automatico in caso di errore. Quando la fase fallisce, viene ripristinata l'ultima esecuzione riuscita. La pipeline può tornare a un'esecuzione precedente solo se l'esecuzione precedente è stata avviata nella versione corrente della struttura della pipeline. Poiché la configurazione del rollback automatico fa parte della definizione della pipeline, la fase della pipeline eseguirà il rollback automatico solo dopo l'esecuzione corretta della pipeline nella fase di pipeline.

## Configura una fase per il rollback automatico (console)
<a name="stage-rollback-auto-console"></a>

È possibile ripristinare una fase fino a un'esecuzione precedente specificata con successo. Per ulteriori informazioni, [RollbackStage](https://docs.aws.amazon.com/codepipeline/latest/APIReference/API_RollbackStage.html)consulta la *Guida alle CodePipeline API*.

**Configura una fase per il rollback 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 dello stadio:**, quindi scegli **Configura il rollback automatico in caso di errore dello stage**. Salva le modifiche alla tua pipeline.  
![\[Un esempio di schermata di modifica in cui configurare una fase di rollback. CodePipeline\]](http://docs.aws.amazon.com/it_it/codepipeline/latest/userguide/images/rollback-configure.png)

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

 AWS CLI Per configurare una fase fallita in modo da ripristinare automaticamente l'esecuzione riuscita più recente, utilizzate i comandi per creare o aggiornare una pipeline come descritto in and. [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 il rollback automatico per uno stage denominato: `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": "ROLLBACK"
                  }
              }
  ```

  *Per ulteriori informazioni sulla configurazione delle condizioni di errore per lo stage rollback, consulta [FailureConditions](https://docs.aws.amazon.com/codepipeline/latest/APIReference/API_FailureConditions.html)l'API Reference. CodePipeline *

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

Da utilizzare CloudFormation per configurare uno stadio per il rollback automatico in caso di errore, utilizzate il `OnFailure` parametro. In caso di errore, lo stage tornerà automaticamente all'ultima esecuzione riuscita.

```
OnFailure:
     Result: ROLLBACK
```
+ Aggiorna il modello come mostrato nel frammento seguente. L'esempio seguente configura il rollback automatico per uno staged denominato: `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: ROLLBACK
      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 delle condizioni di errore per lo stage rollback, consulta 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 *

# Visualizza lo stato di rollback nell'elenco delle esecuzioni
<a name="stage-rollback-view-listing"></a>

È possibile visualizzare lo stato e l'ID di esecuzione di destinazione per un'esecuzione di rollback.

## Visualizza lo stato di rollback nell'elenco delle esecuzioni (console)
<a name="stage-rollback-view-listing-console"></a>

È possibile utilizzare la console per visualizzare lo stato e l'ID di esecuzione di destinazione per un'esecuzione di rollback nell'elenco di esecuzione. 

**Visualizza lo stato di esecuzione del rollback nell'elenco delle esecuzioni (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).

    Account AWS Vengono visualizzati i nomi e lo stato di tutte le pipeline associate alla tua. 

1. In **Nome**, scegliete il nome della pipeline che desiderate visualizzare.

1. Scegliere **History (Cronologia)**. **L'elenco delle esecuzioni mostra l'etichetta Rollback.**

![\[Un esempio di pagina di cronologia delle esecuzioni che mostra l'etichetta Rollback in. CodePipeline\]](http://docs.aws.amazon.com/it_it/codepipeline/latest/userguide/images/rollback-view-list-console.png)


Scegliete l'ID di esecuzione di cui desiderate visualizzare i dettagli.

## Visualizza lo stato di rollback con `list-pipeline-executions` (CLI)
<a name="stage-rollback-view-listing-cli"></a>

È possibile utilizzare la CLI per visualizzare lo stato e l'ID di esecuzione di destinazione per un'esecuzione di rollback. 
+ Apri un terminale (Linux, macOS o Unix) o un prompt dei comandi (Windows) e usali AWS CLI per eseguire il comando: **list-pipeline-executions**

  ```
  aws codepipeline list-pipeline-executions --pipeline-name MyFirstPipeline 
  ```

  Questo comando restituisce un elenco di tutte le esecuzioni completate associate alla pipeline.

  L'esempio seguente mostra i dati restituiti per una pipeline denominata nel *MyFirstPipeline* punto in cui un'esecuzione di rollback ha avviato la pipeline.

  ```
  {
      "pipelineExecutionSummaries": [
          {
              "pipelineExecutionId": "eb7ebd36-353a-4551-90dc-18ca5EXAMPLE",
              "status": "Succeeded",
              "startTime": "2024-04-16T09:00:28.185000+00:00",
              "lastUpdateTime": "2024-04-16T09:00:29.665000+00:00",
              "sourceRevisions": [
                  {
                      "actionName": "Source",
                      "revisionId": "revision_ID",
                      "revisionSummary": "Added README.txt",
                      "revisionUrl": "console-URL"
                  }
              ],
              "trigger": {
                  "triggerType": "ManualRollback",
                  "triggerDetail": "{arn:aws:sts::<account_ID>:assumed-role/<role>"}"
              },
              "executionMode": "SUPERSEDED",
              "executionType": "ROLLBACK",
              "rollbackMetadata": {
                  "rollbackTargetPipelineExecutionId": "f15b38f7-20bf-4c9e-94ed-2535eEXAMPLE"
              }
          },
          {
              "pipelineExecutionId": "fcd61d8b-4532-4384-9da1-2aca1EXAMPLE",
              "status": "Succeeded",
              "startTime": "2024-04-16T08:58:56.601000+00:00",
              "lastUpdateTime": "2024-04-16T08:59:04.274000+00:00",
              "sourceRevisions": [
                  {
                      "actionName": "Source",
                      "revisionId": "revision_ID",
                      "revisionSummary": "Added README.txt",
                      "revisionUrl": "console_URL"
                  }
              ],
              "trigger": {
                  "triggerType": "StartPipelineExecution",
                  "triggerDetail": "arn:aws:sts::<account_ID>:assumed-role/<role>"
              },
              "executionMode": "SUPERSEDED"
          },
          {
              "pipelineExecutionId": "5cd064ca-bff7-425f-8653-f41d9EXAMPLE",
              "status": "Failed",
              "startTime": "2024-04-24T19:19:50.781000+00:00",
              "lastUpdateTime": "2024-04-24T19:19:52.119000+00:00",
              "sourceRevisions": [
                  {
                      "actionName": "Source",
                      "revisionId": "<revision_ID>",
                      "revisionSummary": "Edited README.txt",
                      "revisionUrl": "<revision_URL>"
                  }
              ],
              "trigger": {
                  "triggerType": "AutomatedRollback",
                  "triggerDetail": "{\"FailedPipelineExecutionId\":\"b2e77fa5-9285-4dea-ae66-4389EXAMPLE\"}"
              },
              "executionMode": "SUPERSEDED",
              "executionType": "ROLLBACK",
              "rollbackMetadata": {
                  "rollbackTargetPipelineExecutionId": "5efcfa68-d838-4ca7-a63b-4a743EXAMPLE"
              }
           },
  ```

# Visualizza i dettagli sullo stato del rollback
<a name="stage-rollback-view-details"></a>

È possibile visualizzare lo stato e l'ID di esecuzione di destinazione per un'esecuzione di rollback.

## Visualizza lo stato del rollback nella pagina di dettaglio (console)
<a name="stage-rollback-view-details-console"></a>

È possibile utilizzare la console per visualizzare lo stato e l'ID di esecuzione della pipeline di destinazione per un'esecuzione di rollback.

![\[Una pagina di stato di esempio che mostra il campo ID di esecuzione della pipeline di destinazione in. CodePipeline\]](http://docs.aws.amazon.com/it_it/codepipeline/latest/userguide/images/rollback-view-status-console.png)


## Visualizza i dettagli del rollback con `get-pipeline-execution` (CLI)
<a name="stage-rollback-view-details-cli"></a>

Le esecuzioni di pipeline che sono state ripristinate verranno visualizzate nell'output relativo all'esecuzione della pipeline.
+ Per visualizzare i dettagli relativi a una pipeline, eseguire il comando **[get-pipeline-execution](https://docs.aws.amazon.com/cli/latest/reference/codepipeline/get-pipeline-execution.html)**, specificando il nome univoco della pipeline. Ad esempio, per visualizzare i dettagli relativi a una pipeline denominata *MyFirstPipeline*, immettere quanto segue:

  ```
  aws codepipeline get-pipeline-execution --pipeline-name MyFirstPipeline --pipeline-execution-id 3f658bd1-69e6-4448-ba3e-79007EXAMPLE
  ```

  Questo comando restituisce la struttura della pipeline.

  L'esempio seguente mostra i dati restituiti per una parte di una pipeline denominata*MyFirstPipeline*, in cui vengono visualizzati l'ID di esecuzione del rollback e i metadati.

  ```
  {
      "pipelineExecution": {
          "pipelineName": "MyFirstPipeline",
          "pipelineVersion": 6,
          "pipelineExecutionId": "2004a94e-8b46-4c34-a695-c8d20EXAMPLE",
          "status": "Succeeded",
          "artifactRevisions": [
              {
                  "name": "SourceArtifact",
                  "revisionId": "<ID>",
                  "revisionSummary": "Added README.txt",
                  "revisionUrl": "<console_URL>"
              }
          ],
          "trigger": {
              "triggerType": "ManualRollback",
              "triggerDetail": "arn:aws:sts::<account_ID>:assumed-role/<role>"
          },
          "executionMode": "SUPERSEDED",
          "executionType": "ROLLBACK",
          "rollbackMetadata": {
              "rollbackTargetPipelineExecutionId": "4f47bed9-6998-476c-a49d-e60beEXAMPLE"
          }
      }
  }
  ```

## Visualizza lo stato di rollback con `get-pipeline-state` (CLI)
<a name="w2aac34c10c17b9"></a>

Le esecuzioni di pipeline che sono state ripristinate verranno visualizzate nell'output per ottenere lo stato della pipeline.
+ Per visualizzare i dettagli relativi a una pipeline, eseguire il comando **get-pipeline-state**, specificando il nome univoco della pipeline. Ad esempio, per visualizzare i dettagli sullo stato di una pipeline denominata*MyFirstPipeline*, inserisci quanto segue:

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

  L'esempio seguente mostra i dati restituiti con il tipo di esecuzione rollback.

  ```
  {
      "pipelineName": "MyFirstPipeline",
      "pipelineVersion": 7,
      "stageStates": [
          {
              "stageName": "Source",
              "inboundExecutions": [],
              "inboundTransitionState": {
                  "enabled": true
              },
              "actionStates": [
                  {
                      "actionName": "Source",
                      "currentRevision": {
                          "revisionId": "<Revision_ID>"
                      },
                      "latestExecution": {
                          "actionExecutionId": "13bbd05d-b439-4e35-9c7e-887cb789b126",
                          "status": "Succeeded",
                          "summary": "update",
                          "lastStatusChange": "2024-04-24T20:13:45.799000+00:00",
                          "externalExecutionId": "10cbEXAMPLEID"
                      },
                      "entityUrl": "console-url",
                      "revisionUrl": "console-url"
                  }
              ],
              "latestExecution": {
                  "pipelineExecutionId": "cf95a8ca-0819-4279-ae31-03978EXAMPLE",
                  "status": "Succeeded"
              }
          },
          {
              "stageName": "deploys3",
              "inboundExecutions": [],
              "inboundTransitionState": {
                  "enabled": true
              },
              "actionStates": [
                  {
                      "actionName": "s3deploy",
                      "latestExecution": {
                          "actionExecutionId": "3bc4e3eb-75eb-45b9-8574-8599aEXAMPLE",
                          "status": "Succeeded",
                          "summary": "Deployment Succeeded",
                          "lastStatusChange": "2024-04-24T20:14:07.577000+00:00",
                          "externalExecutionId": "mybucket/SampleApp.zip"
                      },
                      "entityUrl": "console-URL"
                  }
              ],
              "latestExecution": {
                  "pipelineExecutionId": "fdf6b2ae-1472-4b00-9a83-1624eEXAMPLE",
                  "status": "Succeeded",
                  "type": "ROLLBACK"
              }
          }
      ],
      "created": "2024-04-15T21:29:01.635000+00:00",
      "updated": "2024-04-24T20:12:24.480000+00:00"
  }
  ```