

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

# Que tipo de pipeline é ideal para mim?
<a name="pipeline-types-planning"></a>

O tipo de pipeline é determinado pelo conjunto de características e recursos compatíveis com cada versão do pipeline.

Veja um resumo dos casos de uso e características disponíveis para cada tipo de pipeline.


****  

|  | Tipo V1 | Tipo V2 | Características |  |  | 
| --- | --- | --- | --- | --- | --- | 
| Casos de uso |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/codepipeline/latest/userguide/pipeline-types-planning.html)  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/codepipeline/latest/userguide/pipeline-types-planning.html)  | 
| [Variáveis em nível de ação](https://docs.aws.amazon.com/codepipeline/latest/userguide/reference-variables.html) | Compatível | Compatível | 
| [Modo de execução EM PARALLEL](https://docs.aws.amazon.com/codepipeline/latest/userguide/welcome.html#concepts-how-it-works-executions-parallel) | Não compatível | Compatível | 
| [Variáveis ao nível do pipeline](https://docs.aws.amazon.com/codepipeline/latest/userguide/tutorials-pipeline-variables.html) | Não compatível | Compatível | 
| [Modo de execução QUEUED](https://docs.aws.amazon.com/codepipeline/latest/userguide/welcome.html#concepts-how-it-works-executions-queued) | Não compatível | Compatível | 
| [Reversão para estágios do pipeline](https://docs.aws.amazon.com/codepipeline/latest/userguide/stage-rollback.html) | Não compatível | Compatível | 
| [Substituições da revisão de origem](https://docs.aws.amazon.com/codepipeline/latest/userguide/pipelines-trigger-source-overrides.html) | Não compatível | Compatível | 
| [Condições de estágio](https://docs.aws.amazon.com/codepipeline/latest/userguide/stage-conditions.html) | Não compatível | Compatível | 
| [Gatilhos e filtragem de etiquetas Git, solicitações pull, ramificações ou caminhos de arquivo](https://docs.aws.amazon.com/codepipeline/latest/userguide/pipelines-filter.html) | Não compatível | Compatível | 
| [A ação Commands](https://docs.aws.amazon.com/codepipeline/latest/userguide/action-reference-Commands.html) | Não compatível | Compatível | 
| [Criar condições de entrada com resultado Ignorar](https://docs.aws.amazon.com/codepipeline/latest/userguide/stage-conditions.html#stage-conditions-entry-skip) | Não compatível | Compatível | 
| [Configurar a repetição automática em caso de falha para um estágio](https://docs.aws.amazon.com/codepipeline/latest/userguide/stage-retry.html#stage-retry-auto) | Não compatível | Compatível | 

Para obter informações sobre preços de CodePipeline, consulte [Preços](https://aws.amazon.com/codepipeline/pricing/).

Você pode criar e executar um script Python para ajudar a analisar o custo potencial de mover um pipeline do tipo V1 para um pipeline do tipo V2.

**nota**  
O exemplo de script abaixo é destinado apenas para fins de demonstração e avaliação. Não é uma ferramenta de cotação e não garante o custo do uso real de um pipeline do tipo V2, além de não incluir impostos que possam ser aplicados. Para obter informações sobre preços de CodePipeline, consulte [Preços](https://aws.amazon.com/codepipeline/pricing/).

**Como criar e executar um script para ajudar você a avaliar o custo de migrar um pipeline do tipo V1 para um pipeline do tipo V2**

1. Baixe e instale o Python.

1. Abra uma janela do terminal. Execute o comando a seguir para criar um novo script python chamado **PipelineCostAnalyzer.py**.

   ```
   vi PipelineCostAnalyzer.py
   ```

1. Copie e cole o código a seguir no **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. No terminal ou no prompt de comando, altere os diretórios para onde você criou o script do analisador.

   Nesse diretório, execute o comando a seguir, em que *region* é Região da AWS onde você criou os pipelines V1 que você deseja analisar. Ou você também pode avaliar um pipeline específico fornecendo o nome:

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

   Por exemplo, execute o comando a seguir para executar o script python chamado **PipelineCostAnalyzer.py**. Neste exemplo, a região é `us-west-2`.

   ```
   python3 PipelineCostAnalyzer.py us-west-2
   ```
**nota**  
Esse script analisará todos os pipelines V1 na Região da AWS especificada, a menos que você especifique um nome de pipeline específico.

1. No exemplo de saída do script a seguir, podemos ver a lista de execuções de ações, a lista de execuções de ações que eram qualificadas para cobrança, o runtime total dessas execuções de ações e o custo estimado dessas ações conforme executadas em um 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
   ```

   Neste exemplo, o valor negativo na última linha representa o valor estimado que pode ser economizado ao migrar para pipelines do tipo V2.
**nota**  
A saída do script e os exemplos relacionados que mostram custos e outras informações são apenas estimativas. São apenas para fins de demonstração e avaliação e não garantem nenhuma economia real. Para obter informações sobre preços de CodePipeline, consulte [Preços](https://aws.amazon.com/codepipeline/pricing/).