

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

# Welcher Pipeline-Typ ist der richtige für mich?
<a name="pipeline-types-planning"></a>

Der Pipeline-Typ wird durch die Eigenschaften und Funktionen bestimmt, die von jeder Pipeline-Version unterstützt werden.

Im Folgenden finden Sie eine Zusammenfassung der Anwendungsfälle und Merkmale, die für jeden Pipeline-Typ verfügbar sind.



|  | Typ V1 | Typ V2 | Merkmale |  |  | 
| --- | --- | --- | --- | --- | --- | 
| Anwendungsfälle |  +  Standardbereitstellungen   |  +  Bereitstellungen, bei denen die Konfiguration durch die Übergabe von Variablen auf Pipeline-Ebene zur Laufzeit erfolgt <br />+  Bereitstellungen, bei denen Pipelines so konfiguriert sind, dass sie mit Git-Tags beginnen   | 
| [Action-levelVariablen ](https://docs.aws.amazon.com/codepipeline/latest/userguide/reference-variables.html) | Unterstützt | Unterstützt | 
| [PARALLELER Ausführungsmodus ](https://docs.aws.amazon.com/codepipeline/latest/userguide/welcome.html#concepts-how-it-works-executions-parallel) | Nicht unterstützt | Unterstützt | 
| [Pipeline-level Variablen ](https://docs.aws.amazon.com/codepipeline/latest/userguide/tutorials-pipeline-variables.html) | Nicht unterstützt | Unterstützt | 
| [AUSFÜHRUNGSMODUS IN DER WARTESCHLANGE ](https://docs.aws.amazon.com/codepipeline/latest/userguide/welcome.html#concepts-how-it-works-executions-queued) | Nicht unterstützt | Unterstützt | 
| [Rollback für Pipeline-Phasen ](https://docs.aws.amazon.com/codepipeline/latest/userguide/stage-rollback.html) | Nicht unterstützt | Unterstützt | 
| [Überschreibungen der Quellversion ](https://docs.aws.amazon.com/codepipeline/latest/userguide/pipelines-trigger-source-overrides.html) | Nicht unterstützt | Unterstützt | 
| [Stufenbedingungen](https://docs.aws.amazon.com/codepipeline/latest/userguide/stage-conditions.html) | Nicht unterstützt | Unterstützt | 
| [Triggert und filtert Git-Tags, Pull-Requests, Branches oder Dateipfade ](https://docs.aws.amazon.com/codepipeline/latest/userguide/pipelines-filter.html) | Nicht unterstützt | Unterstützt | 
| [Die Aktion „Befehle“ ](https://docs.aws.amazon.com/codepipeline/latest/userguide/action-reference-Commands.html) | Nicht unterstützt | Unterstützt | 
| [Eingabebedingungen mit dem Befehl Ergebnis überspringen erstellen ](https://docs.aws.amazon.com/codepipeline/latest/userguide/stage-conditions.html#stage-conditions-entry-skip) | Nicht unterstützt | Unterstützt | 
| [Konfigurieren Sie eine Phase für die automatische Wiederholung bei einem Fehler ](https://docs.aws.amazon.com/codepipeline/latest/userguide/stage-retry.html#stage-retry-auto) | Nicht unterstützt | Unterstützt | 

Informationen zur Preisgestaltung für finden Sie CodePipeline unter [ Preisgestaltung](https://aws.amazon.com/codepipeline/pricing/).

Sie können ein Python-Skript erstellen und ausführen, um die potenziellen Kosten für die Umstellung einer Pipeline vom Typ V1 auf eine Pipeline vom Typ V2 zu analysieren.

**Anmerkung**  
Das folgende Beispielskript dient nur zu Demonstrations- und Evaluierungszwecken. Es ist kein Angebotstool und garantiert nicht die Kosten für Ihre tatsächliche Nutzung einer Pipeline vom Typ V2, und es beinhaltet keine eventuell anfallenden Steuern. Informationen zur Preisgestaltung für finden Sie CodePipeline unter [ Preisgestaltung](https://aws.amazon.com/codepipeline/pricing/).

**Um ein Skript zu erstellen und auszuführen, das Ihnen bei der Bewertung der Kosten für die Umstellung einer Pipeline vom Typ V1 auf eine Pipeline vom Typ V2 hilft**

1. Laden Sie Python herunter und installieren Sie es.

1. Öffnen Sie ein Terminal-Fenster. Führen Sie den folgenden Befehl aus, um ein neues Python-Skript mit dem Namen zu erstellen ** PipelineCostAnalyzer.py**.

   ```
   vi PipelineCostAnalyzer.py
   ```

1. Kopieren Sie den folgenden Code und fügen Sie ihn in das ** PipelineCostAnalyzer.py ** Skript ein.

   ```
   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. Wechseln Sie vom Terminal oder der Befehlszeile aus in das Verzeichnis, in dem Sie das Analyzer-Skript erstellt haben.

   Führen Sie in diesem Verzeichnis den folgenden Befehl aus, wobei * Region der Ort * ist, an AWS-Region dem Sie die V1-Pipelines erstellt haben, die Sie analysieren möchten. Sie können optional auch eine bestimmte Pipeline evaluieren, indem Sie ihren Namen angeben:

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

   Führen Sie beispielsweise den folgenden Befehl aus, um das Python-Skript mit dem Namen auszuführen ** PipelineCostAnalyzer.py**. In diesem Beispiel ist die Region`us-west-2`.

   ```
   python3 PipelineCostAnalyzer.py us-west-2
   ```
**Anmerkung**  
Dieses Skript analysiert alle V1-Pipelines in der angegebenen Region, AWS-Region sofern Sie keinen bestimmten Pipeline-Namen angeben.

1. In der folgenden Beispielausgabe des Skripts sehen wir die Liste der Aktionsausführungen, die Liste der Aktionsausführungen, die für die Abrechnung in Frage kamen, die Gesamtlaufzeit dieser Aktionsausführungen und die geschätzten Kosten dieser Aktionen, wie sie in einer V2-Pipeline ausgeführt wurden.

   ```
   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 diesem Beispiel steht der negative Wert in der letzten Zeile für den geschätzten Betrag, der durch die Umstellung auf Pipelines vom Typ V2 eingespart werden könnte.
**Anmerkung**  
Bei der Skriptausgabe und den zugehörigen Beispielen, die Kosten und andere Informationen zeigen, handelt es sich lediglich um Schätzungen. Sie dienen nur zu Demonstrations- und Bewertungszwecken und garantieren keine tatsächlichen Einsparungen. Informationen zur Preisgestaltung für finden Sie CodePipeline unter [ Preisgestaltung](https://aws.amazon.com/codepipeline/pricing/).