

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

# Jenis pipa apa yang tepat untuk saya?
<a name="pipeline-types-planning"></a>

Jenis pipa ditentukan oleh serangkaian karakteristik dan fitur yang didukung oleh setiap versi pipeline.

Berikut ini adalah ringkasan kasus penggunaan dan karakteristik yang tersedia untuk setiap jenis pipa.



|  | Tipe V1 | Tipe V2 | Karakteristik |  |  | 
| --- | --- | --- | --- | --- | --- | 
| Kasus penggunaan |  +  Penerapan standar   |  +  Penerapan dengan konfigurasi dari meneruskan variabel tingkat pipa saat runtime <br />+  Penerapan di mana pipeline dikonfigurasi untuk memulai pada tag Git   | 
| [Action-levelvariabel ](https://docs.aws.amazon.com/codepipeline/latest/userguide/reference-variables.html) | Didukung | Didukung | 
| [Mode eksekusi PARALEL ](https://docs.aws.amazon.com/codepipeline/latest/userguide/welcome.html#concepts-how-it-works-executions-parallel) | Tidak didukung | Didukung | 
| [Pipeline-level variabel ](https://docs.aws.amazon.com/codepipeline/latest/userguide/tutorials-pipeline-variables.html) | Tidak didukung | Didukung | 
| [Mode eksekusi QUEUED ](https://docs.aws.amazon.com/codepipeline/latest/userguide/welcome.html#concepts-how-it-works-executions-queued) | Tidak didukung | Didukung | 
| [Kembalikan untuk tahapan pipa ](https://docs.aws.amazon.com/codepipeline/latest/userguide/stage-rollback.html) | Tidak didukung | Didukung | 
| [Penggantian revisi sumber ](https://docs.aws.amazon.com/codepipeline/latest/userguide/pipelines-trigger-source-overrides.html) | Tidak didukung | Didukung | 
| [Kondisi tahap](https://docs.aws.amazon.com/codepipeline/latest/userguide/stage-conditions.html) | Tidak didukung | Didukung | 
| [Memicu dan memfilter tag Git, permintaan tarik, cabang, atau jalur file ](https://docs.aws.amazon.com/codepipeline/latest/userguide/pipelines-filter.html) | Tidak didukung | Didukung | 
| [Tindakan Perintah ](https://docs.aws.amazon.com/codepipeline/latest/userguide/action-reference-Commands.html) | Tidak didukung | Didukung | 
| [Membuat kondisi Entri dengan hasil Lewati ](https://docs.aws.amazon.com/codepipeline/latest/userguide/stage-conditions.html#stage-conditions-entry-skip) | Tidak didukung | Didukung | 
| [Konfigurasikan tahap untuk coba ulang otomatis pada kegagalan ](https://docs.aws.amazon.com/codepipeline/latest/userguide/stage-retry.html#stage-retry-auto) | Tidak didukung | Didukung | 

Untuk informasi tentang penetapan harga untuk CodePipeline, lihat [ Harga](https://aws.amazon.com/codepipeline/pricing/).

Anda dapat membuat dan menjalankan skrip Python untuk membantu Anda menganalisis biaya potensial memindahkan pipeline tipe V1 ke pipeline tipe V2.

**catatan**  
Contoh skrip di bawah ini dimaksudkan untuk tujuan demonstrasi dan evaluasi saja. Ini bukan alat penawaran dan tidak menjamin biaya untuk penggunaan pipa tipe V2 Anda yang sebenarnya, dan tidak termasuk pajak apa pun yang mungkin berlaku. Untuk informasi tentang penetapan harga untuk CodePipeline, lihat [ Harga](https://aws.amazon.com/codepipeline/pricing/).

**Untuk membuat dan menjalankan skrip untuk membantu Anda mengevaluasi biaya memindahkan pipeline tipe V1 ke pipeline tipe V2**

1. Unduh dan instal python.

1. Buka jendela terminal. Jalankan perintah berikut untuk membuat skrip python baru bernama ** PipelineCostAnalyzer.py**.

   ```
   vi PipelineCostAnalyzer.py
   ```

1. Salin dan tempel kode berikut ke dalam ** PipelineCostAnalyzer.py ** skrip.

   ```
   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. Dari terminal atau command prompt, ubah direktori ke tempat Anda membuat skrip penganalisis.

   Dari direktori itu, jalankan perintah berikut, di mana * wilayah * adalah Wilayah AWS tempat Anda membuat pipeline V1 yang ingin Anda analisis. Anda juga dapat mengevaluasi pipeline tertentu secara opsional dengan memberikan namanya:

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

   Misalnya, jalankan perintah berikut untuk menjalankan script python bernama ** PipelineCostAnalyzer.py**. Dalam contoh ini, Wilayah adalah`us-west-2`.

   ```
   python3 PipelineCostAnalyzer.py us-west-2
   ```
**catatan**  
Skrip ini akan menganalisis semua pipeline V1 dalam yang ditentukan Wilayah AWS kecuali Anda menentukan nama pipeline tertentu.

1. Dalam contoh output dari skrip berikut, kita dapat melihat daftar eksekusi tindakan, daftar eksekusi tindakan yang memenuhi syarat untuk penagihan, total runtime eksekusi tindakan ini, dan perkiraan biaya tindakan ini seperti yang dilakukan dalam 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
   ```

   Dalam contoh ini, nilai negatif di baris terakhir mewakili perkiraan jumlah yang mungkin disimpan dengan pindah ke pipeline tipe V2.
**catatan**  
Output skrip dan contoh terkait yang menunjukkan biaya dan informasi lainnya hanya perkiraan. Mereka dimaksudkan untuk tujuan demonstrasi dan evaluasi saja dan tidak menjamin penghematan aktual. Untuk informasi tentang penetapan harga untuk CodePipeline, lihat [ Harga](https://aws.amazon.com/codepipeline/pricing/).