

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

# Quale tipo di pipeline è adatto a me?
<a name="pipeline-types-planning"></a>

Il tipo di pipeline è determinato dall'insieme di caratteristiche e funzionalità supportate da ciascuna versione della pipeline.

Di seguito è riportato un riepilogo dei casi d'uso e delle caratteristiche disponibili per ogni tipo di pipeline.


****  

|  | Tipo V1 | Tipo V2 | Caratteristiche |  |  | 
| --- | --- | --- | --- | --- | --- | 
| Casi d’uso |  [See the AWS documentation website for more details](http://docs.aws.amazon.com/it_it/codepipeline/latest/userguide/pipeline-types-planning.html)  |  [See the AWS documentation website for more details](http://docs.aws.amazon.com/it_it/codepipeline/latest/userguide/pipeline-types-planning.html)  | 
| [Variabili a livello di azione](https://docs.aws.amazon.com/codepipeline/latest/userguide/reference-variables.html) | Supportata | Supportata | 
| [modalità di esecuzione PARALLELA](https://docs.aws.amazon.com/codepipeline/latest/userguide/welcome.html#concepts-how-it-works-executions-parallel) | Non supportata | Supportata | 
| [Variabili a livello di pipeline](https://docs.aws.amazon.com/codepipeline/latest/userguide/tutorials-pipeline-variables.html) | Non supportata | Supportata | 
| [modalità di esecuzione QUEUED](https://docs.aws.amazon.com/codepipeline/latest/userguide/welcome.html#concepts-how-it-works-executions-queued) | Non supportata | Supportata | 
| [Rollback per le fasi della pipeline](https://docs.aws.amazon.com/codepipeline/latest/userguide/stage-rollback.html) | Non supportata | Supportata | 
| [La revisione del codice sorgente sostituisce](https://docs.aws.amazon.com/codepipeline/latest/userguide/pipelines-trigger-source-overrides.html) | Non supportata | Supportata | 
| [Condizioni dello stage](https://docs.aws.amazon.com/codepipeline/latest/userguide/stage-conditions.html) | Non supportata | Supportata | 
| [Trigger e filtraggio di tag Git, richieste pull, rami o percorsi di file](https://docs.aws.amazon.com/codepipeline/latest/userguide/pipelines-filter.html) | Non supportata | Supportata | 
| [L'azione Commands](https://docs.aws.amazon.com/codepipeline/latest/userguide/action-reference-Commands.html) | Non supportata | Supportata | 
| [Creazione di condizioni di ingresso con Skip result](https://docs.aws.amazon.com/codepipeline/latest/userguide/stage-conditions.html#stage-conditions-entry-skip) | Non supportata | Supportata | 
| [Configura una fase per il nuovo tentativo automatico in caso di errore](https://docs.aws.amazon.com/codepipeline/latest/userguide/stage-retry.html#stage-retry-auto) | Non supportata | Supportata | 

Per informazioni sui prezzi di CodePipeline, vedi [Prezzi](https://aws.amazon.com/codepipeline/pricing/).

Puoi creare ed eseguire uno script Python per aiutarti ad analizzare il costo potenziale dello spostamento di una pipeline di tipo V1 in una pipeline di tipo V2.

**Nota**  
Lo script di esempio riportato di seguito è destinato esclusivamente a scopi dimostrativi e di valutazione. Non è uno strumento di preventivo e non garantisce il costo per l'uso effettivo di una pipeline di tipo V2 e non include le eventuali tasse applicabili. [Per informazioni sui prezzi di CodePipeline, vedi Prezzi.](https://aws.amazon.com/codepipeline/pricing/)

**Per creare ed eseguire uno script che consenta di valutare il costo dello spostamento di una pipeline di tipo V1 in una pipeline di tipo V2**

1. Scarica e installa python.

1. Apri una finestra del terminale. **Esegui il seguente comando per creare un nuovo script python chiamato PipelineCostAnalyzer .py.**

   ```
   vi PipelineCostAnalyzer.py
   ```

1. Copia e incolla il codice seguente nello **PipelineCostAnalyzerscript.py.**

   ```
   import boto3
   import sys
   import math
   from datetime import datetime, timedelta, timezone
   
   if len(sys.argv) < 3:
       raise Exception("Please provide region name and pipeline name as arguments. Example usage: python PipelineCostAnalyzer.py us-east-1 MyPipeline")
   session = boto3.Session(profile_name='default', region_name=sys.argv[1])
   pipeline = sys.argv[2]
   codepipeline = session.client('codepipeline')
   
   def analyze_cost_in_v2(pipeline_name):
       if codepipeline.get_pipeline(name=pipeline)['pipeline']['pipelineType'] == 'V2':
           raise Exception("Provided pipeline is already of type V2.")
       total_action_executions = 0
       total_blling_action_executions = 0
       total_action_execution_minutes = 0
       cost = 0.0
       hasNextToken = True
       nextToken = ""
   
       while hasNextToken:
           if nextToken=="":
               response = codepipeline.list_action_executions(pipelineName=pipeline_name)
           else:
               response = codepipeline.list_action_executions(pipelineName=pipeline_name, nextToken=nextToken)
           if 'nextToken' in response:
               nextToken = response['nextToken']
           else:
               hasNextToken= False
           for action_execution in response['actionExecutionDetails']:
               start_time = action_execution['startTime']
               end_time = action_execution['lastUpdateTime']
               if (start_time < (datetime.now(timezone.utc) - timedelta(days=30))):
                   hasNextToken= False
                   continue
               total_action_executions += 1
               if (action_execution['status'] in ['Succeeded', 'Failed', 'Stopped']):
                   action_owner = action_execution['input']['actionTypeId']['owner']
                   action_category = action_execution['input']['actionTypeId']['category']
                   if (action_owner == 'Custom' or (action_owner == 'AWS' and action_category == 'Approval')):
                       continue
                   
                   total_blling_action_executions += 1
                   action_execution_minutes = (end_time - start_time).total_seconds()/60
                   action_execution_cost = math.ceil(action_execution_minutes) * 0.002
                   total_action_execution_minutes += action_execution_minutes
                   cost = round(cost + action_execution_cost, 2)
   
       print ("{:<40}".format('Activity in last 30 days:'))
       print ("| {:<40} | {:<10}".format('___________________________________', '__________________'))
       print ("| {:<40} | {:<10}".format('Total action executions:', total_action_executions))
       print ("| {:<40} | {:<10}".format('Total billing action executions:', total_blling_action_executions))
       print ("| {:<40} | {:<10}".format('Total billing action execution minutes:', round(total_action_execution_minutes, 2)))
       print ("| {:<40} | {:<10}".format('Cost of moving to V2 in $:', cost - 1))
   
   analyze_cost_in_v2(pipeline)
   ```

1. Dal terminale o dal prompt dei comandi, modificate le directory in cui avete creato lo script dell'analizzatore.

   Da quella directory, esegui il comando seguente, dove la *regione è la regione* Regione AWS in cui hai creato le pipeline V1 che desideri analizzare. Facoltativamente, puoi anche valutare una pipeline specifica fornendone il nome:

   ```
   python3 PipelineCostAnalyzer.py {{region}} --{{pipelineName}}
   ```

   **Ad esempio, esegui il comando seguente per eseguire lo script python denominato .py. PipelineCostAnalyzer** In questo esempio, la regione è. `us-west-2`

   ```
   python3 PipelineCostAnalyzer.py us-west-2
   ```
**Nota**  
Questo script analizzerà tutte le pipeline V1 nell'area specificata, a Regione AWS meno che non si specifichi un nome di pipeline specifico.

1. Nel seguente esempio di output dello script, possiamo vedere l'elenco delle esecuzioni di azioni, l'elenco delle esecuzioni di azioni idonee alla fatturazione, la durata totale di queste esecuzioni di azioni e il costo stimato di queste azioni eseguite in una pipeline V2.

   ```
   Activity in last 30 days: 
    | ___________________________________      | __________________
    | Total action executions:                 | 9         
    | Total billing action executions:         | 9         
    | Total billing action execution minutes:  | 5.59      
    | Cost of moving to V2 in $:               | -0.76
   ```

   In questo esempio, il valore negativo nell'ultima riga rappresenta l'importo stimato che potrebbe essere risparmiato passando a pipeline di tipo V2.
**Nota**  
L'output dello script e gli esempi correlati che mostrano i costi e altre informazioni sono solo stime. Sono destinati esclusivamente a scopi dimostrativi e di valutazione e non garantiscono alcun risparmio effettivo. Per informazioni sui prezzi di CodePipeline, vedi [Prezzi](https://aws.amazon.com/codepipeline/pricing/).