

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

# Mengkonfigurasi percobaan ulang tahap untuk tahap yang gagal atau tindakan yang gagal
<a name="stage-retry"></a>

Anda dapat mencoba lagi tahap yang gagal tanpa harus menjalankan pipeline lagi dari awal. Anda melakukan ini dengan mencoba kembali tindakan yang gagal dalam satu tahap atau dengan mencoba kembali semua tindakan di tahap mulai dari tindakan pertama di panggung. Saat Anda mencoba lagi tindakan yang gagal dalam satu tahap, semua tindakan yang masih berlangsung terus bekerja, dan tindakan yang gagal dipicu lagi. Ketika Anda mencoba lagi tahap yang gagal dari tindakan pertama di panggung, tahap tidak dapat memiliki tindakan apa pun yang sedang berlangsung. Sebelum sebuah tahap dapat dicoba lagi, itu harus memiliki semua tindakan gagal atau beberapa tindakan gagal dan beberapa berhasil.

**penting**  
Mencoba lagi tahap yang gagal mencoba kembali semua tindakan di panggung dari aksi pertama di panggung, dan mencoba kembali tindakan yang gagal mencoba kembali semua tindakan yang gagal di panggung. Ini mengesampingkan artefak keluaran dari tindakan yang sebelumnya berhasil dalam eksekusi yang sama.   
Meskipun artefak dapat diganti, riwayat eksekusi tindakan yang sebelumnya berhasil masih dipertahankan.

Jika Anda menggunakan konsol untuk melihat pipeline, tombol **tahap Coba lagi** atau tombol **Tindakan gagal Coba lagi muncul di panggung yang dapat dicoba ulang**.

Jika Anda menggunakan AWS CLI, Anda dapat menggunakan **get-pipeline-state** perintah untuk menentukan apakah ada tindakan yang gagal.

**catatan**  
Dalam kasus berikut, Anda mungkin tidak dapat mencoba lagi tahap:  
Semua tindakan di panggung berhasil, sehingga panggung tidak dalam status gagal.
Struktur pipa keseluruhan berubah setelah tahap gagal.
Upaya coba lagi di panggung sudah berlangsung.

**Topics**
+ [Pertimbangan untuk percobaan ulang tahap](#stage-retry-considerations)
+ [Coba lagi tahap yang gagal secara manual](#stage-retry-manual)
+ [Konfigurasikan tahapan untuk coba lagi otomatis pada kegagalan](#stage-retry-auto)

## Pertimbangan untuk percobaan ulang tahap
<a name="stage-retry-considerations"></a>

Pertimbangan untuk percobaan ulang tahap adalah sebagai berikut:
+ Anda hanya dapat mengonfigurasi percobaan ulang otomatis pada kegagalan panggung untuk satu upaya coba lagi.
+ Anda dapat mengonfigurasi percobaan ulang otomatis pada kegagalan panggung untuk semua tindakan, termasuk `Source` tindakan.

## Coba lagi tahap yang gagal secara manual
<a name="stage-retry-manual"></a>

Anda dapat mencoba lagi tahap yang gagal secara manual menggunakan konsol atau CLI.

Anda juga dapat mengonfigurasi tahapan untuk mencoba lagi secara otomatis pada kegagalan seperti yang dijelaskan dalam[Konfigurasikan tahapan untuk coba lagi otomatis pada kegagalan](#stage-retry-auto). 

### Coba lagi tahap yang gagal secara manual (konsol)
<a name="stage-retry-console"></a><a name="proc-stage-retry-console"></a>

**Untuk mencoba lagi tahap yang gagal atau tindakan yang gagal dalam tahap - konsol**

1. Masuk ke Konsol Manajemen AWS dan buka CodePipeline konsol di [http://console.aws.amazon. com/codesuite/codepipeline/home](https://console.aws.amazon.com/codesuite/codepipeline/home).

   Nama-nama semua pipeline yang terkait dengan AWS akun Anda ditampilkan.

1.  Di **Nama**, pilih nama pipa. 

1. Temukan panggung dengan tindakan yang gagal, lalu pilih salah satu dari yang berikut ini:
   + Untuk mencoba kembali semua tindakan di panggung, pilih **Coba lagi** tahap.
   + Untuk mencoba lagi hanya tindakan yang gagal di panggung, pilih **Coba lagi tindakan yang gagal**.   
![Contoh pipeline dengan tahap CodeCommit sumber dan tahap CodeDeploy penerapan yang gagal](http://docs.aws.amazon.com/id_id/codepipeline/latest/userguide/images/retry-failed-stage.png)

   Jika semua tindakan yang dicoba ulang di tahap selesai dengan sukses, pipa terus berjalan.

### Coba lagi tahap yang gagal secara manual (CLI)
<a name="stage-retry-cli"></a>

**Untuk mencoba lagi tahap yang gagal atau tindakan yang gagal dalam satu tahap - CLI**

Untuk menggunakan AWS CLI untuk mencoba kembali semua tindakan atau semua tindakan yang gagal, Anda menjalankan **retry-stage-execution** perintah dengan parameter berikut: 

```
--pipeline-name <value>
--stage-name <value>
--pipeline-execution-id <value>
--retry-mode ALL_ACTIONS/FAILED_ACTIONS
```
**catatan**  
Nilai yang dapat Anda gunakan `retry-mode` adalah `FAILED_ACTIONS` dan`ALL_ACTIONS`.

1. Di terminal (Linux, macOS, atau Unix) atau command prompt (Windows), jalankan [https://docs.aws.amazon.com/cli/latest/reference/codepipeline/get-pipeline-state.html](https://docs.aws.amazon.com/cli/latest/reference/codepipeline/get-pipeline-state.html)perintah, seperti yang ditunjukkan pada contoh berikut untuk pipeline bernama. `MyPipeline`

   ```
   aws codepipeline retry-stage-execution --pipeline-name MyPipeline --stage-name Deploy --pipeline-execution-id b59babff-5f34-EXAMPLE --retry-mode FAILED_ACTIONS
   ```

   Output mengembalikan ID eksekusi:

   ```
   {
       "pipelineExecutionId": "b59babff-5f34-EXAMPLE"
   }
   ```

1. Anda juga dapat menjalankan perintah dengan file input JSON. Pertama-tama Anda membuat file JSON yang mengidentifikasi pipeline, tahapan yang berisi tindakan gagal, dan eksekusi pipeline terbaru di tahap itu. Anda kemudian menjalankan **retry-stage-execution** perintah dengan `--cli-input-json` parameter. Untuk mengambil detail yang Anda butuhkan untuk file JSON, paling mudah untuk menggunakan perintah. **get-pipeline-state**

   1. Di terminal (Linux, macOS, atau Unix) atau command prompt (Windows), jalankan [https://docs.aws.amazon.com/cli/latest/reference/codepipeline/get-pipeline-state.html](https://docs.aws.amazon.com/cli/latest/reference/codepipeline/get-pipeline-state.html)perintah pada pipeline. Misalnya, untuk pipeline bernama MyFirstPipeline, Anda akan mengetik sesuatu yang mirip dengan berikut ini:

      ```
      aws codepipeline get-pipeline-state --name {{MyFirstPipeline}}
      ```

      Respons terhadap perintah mencakup informasi status pipa untuk setiap tahap. Dalam contoh berikut, respons menunjukkan bahwa satu atau lebih tindakan gagal dalam tahap Pementasan:

      ```
      {
          "updated": 1427245911.525,
          "created": 1427245911.525,
          "pipelineVersion": 1,
          "pipelineName": "MyFirstPipeline",
          "stageStates": [
              {
                  "actionStates": [...],
                  "stageName": "Source",
                  "latestExecution": {
                      "pipelineExecutionId": "9811f7cb-7cf7-SUCCESS",
                      "status": "Succeeded"
                  }
              },
              {{{
                  "actionStates": [...],
                  "stageName": "Staging",
                  "latestExecution": {
                      "pipelineExecutionId": "3137f7cb-7cf7-EXAMPLE",
                      "status": "Failed"
                  }}}
              }
          ]
      }
      ```

   1. Dalam editor teks biasa, buat file tempat Anda akan merekam yang berikut ini, dalam format JSON:
      + Nama pipa yang berisi tindakan yang gagal
      + Nama panggung yang berisi tindakan yang gagal
      + ID eksekusi pipeline terbaru di panggung
      + Mode coba lagi.

      Untuk MyFirstPipeline contoh sebelumnya, file Anda akan terlihat seperti ini:

      ```
      {
          "pipelineName": "MyFirstPipeline",
          "stageName": "Staging",
          "pipelineExecutionId": "3137f7cb-7cf7-EXAMPLE",
          "retryMode": "FAILED_ACTIONS"
      }
      ```

   1. Simpan file dengan nama seperti**retry-failed-actions.json**.

   1. Panggil file yang Anda buat saat menjalankan [https://docs.aws.amazon.com/cli/latest/reference/codepipeline/retry-stage-execution.html](https://docs.aws.amazon.com/cli/latest/reference/codepipeline/retry-stage-execution.html)perintah. Contoh:
**penting**  
Pastikan untuk menyertakan `file://` sebelum nama file. Diperlukan dalam perintah ini.

      ```
      aws codepipeline retry-stage-execution --cli-input-json file://retry-failed-actions.json
      ```

   1. Untuk melihat hasil percobaan ulang, buka CodePipeline konsol dan pilih pipeline yang berisi tindakan yang gagal, atau gunakan **get-pipeline-state** perintah lagi. Untuk informasi selengkapnya, lihat [Lihat saluran pipa dan detailnya di CodePipeline](pipelines-view.md). 

## Konfigurasikan tahapan untuk coba lagi otomatis pada kegagalan
<a name="stage-retry-auto"></a>

Anda dapat mengonfigurasi panggung untuk coba lagi otomatis pada kegagalan. Tahap akan membuat satu percobaan lagi dan menampilkan status coba lagi pada tahap gagal pada **halaman View** pipeline.

Anda dapat mengonfigurasi mode coba lagi dengan menentukan bahwa tahap harus secara otomatis mencoba kembali semua tindakan dalam tahap gagal atau hanya tindakan yang gagal di panggung.

### Konfigurasikan panggung untuk coba lagi otomatis pada kegagalan (konsol)
<a name="stage-retry-auto-console"></a>

Anda dapat menggunakan konsol untuk mengonfigurasi panggung untuk coba lagi otomatis.

**Konfigurasikan panggung untuk coba lagi otomatis (konsol)**

1. Masuk ke Konsol Manajemen AWS dan buka CodePipeline konsol di [http://console.aws.amazon. com/codesuite/codepipeline/home](https://console.aws.amazon.com/codesuite/codepipeline/home).

   Nama dan status semua pipeline yang terkait dengan AWS akun Anda ditampilkan. 

1. Di **Nama**, pilih nama pipeline yang ingin Anda edit.

1. Pada halaman detail pipeline, pilih **Edit**.

1. Pada halaman **Edit**, untuk tindakan yang ingin Anda edit, pilih **Edit tahap**.

1. Pilih **Konfigurasi tahap otomatis:**, lalu pilih **Aktifkan coba ulang otomatis pada kegagalan panggung**. Simpan perubahan pada pipeline Anda.

1. Dalam **konfigurasi tahap otomatis:**, pilih salah satu mode coba lagi berikut:
   + Untuk menentukan bahwa mode akan mencoba kembali semua tindakan di panggung, pilih **Coba lagi tahap gagal**.
   + Untuk menentukan bahwa mode hanya akan mencoba lagi tindakan yang gagal di panggung, pilih **Coba lagi tindakan yang gagal**.

   Simpan perubahan pada pipeline Anda.  
![Contoh layar edit untuk mengonfigurasi percobaan ulang otomatis pada kegagalan panggung di CodePipeline.](http://docs.aws.amazon.com/id_id/codepipeline/latest/userguide/images/retry-configure.png)

1. Setelah pipeline Anda berjalan, jika kegagalan tahap terjadi, upaya coba ulang otomatis akan dilakukan. Contoh berikut menunjukkan tahap build yang telah dicoba ulang secara otomatis.  
![Contoh pipeline dengan tahap gagal yang telah dicoba ulang sekali.](http://docs.aws.amazon.com/id_id/codepipeline/latest/userguide/images/stage-auto-retry-example.png)

1. Untuk melihat detail tentang upaya coba lagi, pilih. Jendela menampilkan.  
![Contoh jendela metadata tahap coba lagi yang menunjukkan ada satu upaya.](http://docs.aws.amazon.com/id_id/codepipeline/latest/userguide/images/retry-stage-metadata.png)

### Konfigurasikan panggung untuk percobaan ulang otomatis (CLI)
<a name="stage-retry-auto-cli"></a>

Untuk menggunakan AWS CLI untuk mengkonfigurasi tahap untuk secara otomatis mencoba kembali pada kegagalan, gunakan perintah untuk membuat atau memperbarui pipeline seperti yang dijelaskan dalam [Buat pipeline, tahapan, dan tindakan](pipelines-create.md) dan[Edit pipa di CodePipeline](pipelines-edit.md).
+ Buka terminal (Linux, macOS, atau Unix) atau command prompt (Windows) dan gunakan AWS CLI untuk menjalankan `update-pipeline` perintah, menentukan kondisi kegagalan dalam struktur pipa. Contoh berikut mengonfigurasi percobaan ulang otomatis untuk nama bertahap: `S3Deploy` 

  ```
  {
                  "name": "S3Deploy",
                  "actions": [
                      {
                          "name": "s3deployaction",
                          "actionTypeId": {
                              "category": "Deploy",
                              "owner": "AWS",
                              "provider": "S3",
                              "version": "1"
                          },
                          "runOrder": 1,
                          "configuration": {
                              "BucketName": "static-website-bucket",
                              "Extract": "false",
                              "ObjectKey": "SampleApp.zip"
                          },
                          "outputArtifacts": [],
                          "inputArtifacts": [
                              {
                                  "name": "SourceArtifact"
                              }
                          ],
                          "region": "us-east-1"
                      }
                  ],
                   "onFailure": {
                      "result": "RETRY",
                      "retryConfiguration": {
                          "retryMode": "ALL_ACTIONS",
                      },
              }
  ```

### Konfigurasikan tahapan untuk coba ulang otomatis ()CloudFormation
<a name="stage-retry-auto-cfn"></a>

 CloudFormation Untuk menggunakan konfigurasi tahapan untuk percobaan ulang otomatis pada kegagalan, gunakan parameter siklus hidup `OnFailure` tahap. Gunakan `RetryConfiguration` parameter untuk mengkonfigurasi mode coba lagi.

```
OnFailure:
     Result: RETRY
     RetryConfiguration: 
         RetryMode: ALL_ACTIONS
```
+ Perbarui template seperti yang ditunjukkan pada cuplikan berikut. Contoh berikut mengonfigurasi coba ulang otomatis untuk tahap bernama: `Release`

  ```
  AppPipeline: 
    Type: AWS::CodePipeline::Pipeline 
    Properties: 
      RoleArn:
        Ref: CodePipelineServiceRole 
      Stages: 
        - 
          Name: Source 
          Actions: 
            - 
              Name: SourceAction
              ActionTypeId: 
                Category: Source 
                Owner: AWS 
                Version: 1 
                Provider: S3 
              OutputArtifacts: 
                - 
                  Name: SourceOutput 
              Configuration: 
                S3Bucket: 
                  Ref: SourceS3Bucket 
                S3ObjectKey: 
                  Ref: SourceS3ObjectKey 
              RunOrder: 1  
        - 
          Name: Release 
          Actions: 
            - 
              Name: ReleaseAction
              InputArtifacts: 
                - 
                  Name: SourceOutput 
              ActionTypeId: 
                Category: Deploy 
                Owner: AWS 
                Version: 1
                Provider: CodeDeploy 
              Configuration: 
                ApplicationName: 
                  Ref: ApplicationName
                DeploymentGroupName: 
                  Ref: DeploymentGroupName 
              RunOrder: 1   
         OnFailure:
             Result: RETRY
             RetryConfiguration: 
                RetryMode: ALL_ACTIONS
      ArtifactStore: 
        Type: S3 
        Location:
          Ref: ArtifactStoreS3Location 
        EncryptionKey:
          Id: arn:aws:kms:useast-1:ACCOUNT-ID:key/KEY-ID
          Type: KMS
      DisableInboundStageTransitions: 
        - 
          StageName: Release 
          Reason: "Disabling the transition until integration tests are completed"
      Tags:
        - Key: Project
          Value: ProjectA
        - Key: IsContainerBased
          Value: 'true'
  ```

  Untuk informasi selengkapnya tentang mengonfigurasi percobaan ulang tahap pada kegagalan, lihat [OnFailure](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codepipeline-pipeline-stagedeclaration.html#cfn-codepipeline-pipeline-stagedeclaration-onfailure)`StageDeclaration`di bawah *CloudFormation Panduan Pengguna*.