Ridistribuisci e ripristina una distribuzione con CodeDeploy - AWS CodeDeploy

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

Ridistribuisci e ripristina una distribuzione con CodeDeploy

CodeDeploy ripristina le distribuzioni ridistribuendo una revisione precedentemente distribuita di un'applicazione come nuova distribuzione. Queste distribuzioni ripristinate sono tecnicamente distribuzioni nuove con nuovi ID, non versioni di ripristino di una distribuzione precedente.

Le distribuzioni possono essere ripristinate automaticamente o manualmente.

Rollback automatici

È possibile configurare un gruppo di distribuzione o una distribuzione in modo che venga eseguito automaticamente il ripristino quando una distribuzione non riesce o quando viene raggiunta una soglia di monitoraggio specificata. In questo caso, viene distribuita la versione più recente di una revisione di applicazione valida nota. È possibile configurare i rollback automatici al momento della creazione di un'applicazione o quando si creare o si aggiorna un gruppo di distribuzione.

Quando si crea una nuova distribuzione, è possibile anche scegliere di ignorare la configurazione di rollback automatico specificata per il gruppo di distribuzione.

Nota

Puoi utilizzare Amazon Simple Notification Service per ricevere una notifica ogni volta che una distribuzione viene ripristinata automaticamente. Per informazioni, consulta Monitoring Deployments with Amazon SNS Event Notifications.

Per ulteriori informazioni sulla configurazione dei rollback automatici, consulta Configura le opzioni avanzate per un gruppo di distribuzione.

Rollback manuali

Se non hai configurato i rollback automatici, puoi ripristinare una distribuzione manualmente creando una nuova distribuzione che utilizza una revisione dell'applicazione distribuita in precedenza, quindi seguendo la procedura per ridistribuire una revisione. Potresti dover eseguire questa operazione nel caso in cui un'applicazione si trovi in uno stato sconosciuto. Anziché dedicare molto tempo a risolvere il problema, puoi ridistribuire l'applicazione con uno stato operativo noto. Per ulteriori informazioni, consulta Crea una distribuzione con CodeDeploy.

Nota

Se rimuovi un'istanza da un gruppo di distribuzione, CodeDeploy non disinstalla nulla che potrebbe essere già stato installato su quell'istanza.

Flusso di lavoro di rollback e ridistribuzione

Quando viene avviato il rollback automatico o quando si avvia manualmente una ridistribuzione o un rollback manuale, tenta CodeDeploy innanzitutto di rimuovere da ogni istanza partecipante tutti i file che sono stati installati con successo l'ultima volta. CodeDeploy lo fa controllando il file di pulizia:

/opt/codedeploy-agent/deployment-root/deployment-instructions/deployment-group-ID-cleanupfile (per Amazon Linux, Ubuntu Server e istanze RHEL)

C:\ProgramData\Amazon\CodeDeploy\deployment-instructions\deployment-group-ID-cleanupfile (per istanze di Windows Server)

Se esiste, CodeDeploy utilizza il file di pulizia per rimuovere dall'istanza tutti i file elencati prima di iniziare la nuova distribuzione.

Ad esempio, i primi due file di testo e due file di script sono già stati distribuiti su un'istanza Amazon EC2 che esegue Windows Server e gli script hanno creato altri due file di testo durante gli eventi del ciclo di vita della distribuzione:

c:\temp\a.txt (previously deployed by CodeDeploy) c:\temp\b.txt (previously deployed by CodeDeploy) c:\temp\c.bat (previously deployed by CodeDeploy) c:\temp\d.bat (previously deployed by CodeDeploy) c:\temp\e.txt (previously created by c.bat) c:\temp\f.txt (previously created by d.bat)

Nel file di cleanup saranno elencati solo i primi due file di testo e due file script:

c:\temp\a.txt c:\temp\b.txt c:\temp\c.bat c:\temp\d.bat

Prima della nuova distribuzione, CodeDeploy rimuoverà solo i primi due file di testo e i due file di script, lasciando intatti gli ultimi due file di testo:

c:\temp\a.txt will be removed c:\temp\b.txt will be removed c:\temp\c.bat will be removed c:\temp\d.bat will be removed c:\temp\e.txt will remain c:\temp\f.txt will remain

Come parte di questo processo, CodeDeploy non cercherà di ripristinare o riconciliare in altro modo le azioni intraprese dagli script nelle distribuzioni precedenti durante le ridistribuzioni successive, che si tratti di rollback manuali o automatici. Ad esempio, se d.bat i file c.bat and contengono la logica per non ricreare i file and se già esistono, le versioni precedenti di e.txt e f.txt rimarranno invariate ogni volta che vengono eseguite e nelle distribuzioni successive. e.txt f.txt CodeDeploy c.bat d.bat È possibile aggiungere la logica a c.bat e d.bat per verificare sempre la presenza di versioni precedenti di e.txt e f.txt ed eliminarle prima di crearne di nuove.

Comportamento di rollback con il contenuto esistente

Come parte del processo di distribuzione, l' CodeDeploy agente rimuove da ogni istanza tutti i file installati dalla distribuzione più recente. Se i file che non facevano parte di una distribuzione precedente vengono visualizzati nelle posizioni di distribuzione di destinazione, puoi scegliere CodeDeploy cosa farne durante la distribuzione successiva:

  • Interruzione non riuscita: viene segnalato un errore e lo stato della distribuzione viene modificato in Non riuscito.

  • Sovrascrivi il contenuto: la versione del file contenuta nella revisione dell'applicazione sostituisce la versione già presente sull'istanza.

  • Conserva il contenuto: il file nella posizione di destinazione viene conservato e la versione nella revisione dell'applicazione non viene copiata nell'istanza.

È possibile scegliere questo comportamento quando si crea una distribuzione. Se si crea una distribuzione nella console, vedereCrea una distribuzione della piattaforma di elaborazione EC2/on-premise (console). Se si crea una distribuzione con AWS CLI, vedereCrea un'implementazione della piattaforma di elaborazione (CLI) EC2/on-premise.

Puoi scegliere di mantenere i file che desideri inserire nella successiva distribuzione senza doverli aggiungere al pacchetto della revisione dell'applicazione. Ad esempio, potresti caricare direttamente nell'istanza i file che sono necessari per la distribuzione, ma che non sono stati aggiunti al pacchetto di revisione dell'applicazione. Oppure puoi caricare file sull'istanza se le tue applicazioni sono già nell'ambiente di produzione ma desideri utilizzarle CodeDeploy per la prima volta per distribuirle.

Nel caso dei rollback, in cui per un errore di distribuzione viene ridistribuita la revisione dell'applicazione distribuita più recente, alla distribuzione di ripristino viene applicata l'opzione di gestione del contenuto relativa a quell'ultima distribuzione.

Tuttavia, se la distribuzione non riuscita è stata configurata per sovrascrivere, anziché conservare, i file, durante il rollback potrebbe verificarsi un risultato inaspettato. Nello specifico, potrebbe accadere che i file che devono essere conservati vengano rimossi dalla distribuzione non riuscita. I file non sono presenti nell'istanza quando viene eseguita la distribuzione di rollback.

Nell'esempio seguente, sono presenti tre distribuzioni. Tutti i file che vengono sovrascritti (eliminati) durante la seconda distribuzione non riuscita non sono più disponibili (non possono essere conservati) quando la revisione dell'applicazione 1 viene nuovamente distribuita durante la distribuzione 3:

Implementazione

Revisione dell'applicazione

Opzione sovrascrittura contenuto

Stato della distribuzione

Comportamento e risultato

distribuzione 1

revisione dell'applicazione 1

CONSERVA

Riuscito

CodeDeploy rileva i file nelle posizioni di destinazione che non sono stati distribuiti dalla distribuzione precedente. Questi file potrebbero essere stati inseriti intenzionalmente per includerli nella distribuzione corrente. Vengono tenuti e registrati come parte del pacchetto di distribuzione corrente.

distribuzione 2

revisione dell'applicazione 2

SOVRASCRIVI

Non riuscito

Durante il processo di distribuzione, CodeDeploy elimina tutti i file che fanno parte della precedente distribuzione riuscita. Questo include i file che sono stati conservati durante la distribuzione 1.

Tuttavia, la distribuzione ha esito negativo per motivi non correlati.

distribuzione 3

revisione dell'applicazione 1

CONSERVA

Poiché il rollback automatico è abilitato per il gruppo di distribuzione o distribuzione, CodeDeploy distribuisce l'ultima revisione valida dell'applicazione conosciuta, la revisione 1 dell'applicazione.

Tuttavia, i file che si desidera conservare nella distribuzione 1 sono stati eliminati prima del fallimento della distribuzione 2 e non possono essere recuperati da. AWS CodeDeployÈ possibile aggiungerli all'istanza, se sono necessarie per la revisione dell'applicazione 1, oppure è possibile creare una nuova revisione dell'applicazione.