

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

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


****  

|  | Tipe V1 | Jenis V2 | Karakteristik |  |  | 
| --- | --- | --- | --- | --- | --- | 
| Kasus penggunaan |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/codepipeline/latest/userguide/pipeline-types-planning.html)  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/codepipeline/latest/userguide/pipeline-types-planning.html)  | 
| [Variabel tingkat tindakan](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 | 
| [Variabel tingkat pipa](https://docs.aws.amazon.com/codepipeline/latest/userguide/tutorials-pipeline-variables.html) | Tidak didukung | Didukung | 
| [Mode eksekusi ANTRIAN](https://docs.aws.amazon.com/codepipeline/latest/userguide/welcome.html#concepts-how-it-works-executions-queued) | Tidak didukung | Didukung | 
| [Rollback untuk tahapan pipa](https://docs.aws.amazon.com/codepipeline/latest/userguide/stage-rollback.html) | Tidak didukung | Didukung | 
| [Pengesampingan revisi sumber](https://docs.aws.amazon.com/codepipeline/latest/userguide/pipelines-trigger-source-overrides.html) | Tidak didukung | Didukung | 
| [Kondisi panggung](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 tahapan untuk coba lagi otomatis pada kegagalan](https://docs.aws.amazon.com/codepipeline/latest/userguide/stage-retry.html#stage-retry-auto) | Tidak didukung | Didukung | 

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

Anda dapat membuat dan menjalankan skrip Python untuk membantu Anda menganalisis potensi biaya pemindahan 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 sebenarnya dari pipa tipe V2, dan itu tidak termasuk pajak apa pun yang mungkin berlaku. Untuk informasi tentang harga CodePipeline, lihat [Harga](https://aws.amazon.com/codepipeline/pricing/).

**Untuk membuat dan menjalankan skrip untuk membantu Anda mengevaluasi biaya pemindahan 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 **PipelineCostAnalyzerskrip.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. 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 skrip 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 keluaran berikut dari skrip, 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 harga CodePipeline, lihat [Harga](https://aws.amazon.com/codepipeline/pricing/).