Mengkonfigurasi percobaan ulang tahap untuk tahap yang gagal atau tindakan yang gagal - AWS CodePipeline

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

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.

Pertimbangan untuk percobaan ulang tahap

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

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

Anda juga dapat mengonfigurasi tahap untuk mencoba lagi secara otomatis pada kegagalan seperti yang dijelaskan dalamKonfigurasikan tahap untuk coba lagi otomatis pada kegagalan.

Coba lagi tahap yang gagal secara manual (konsol)

Untuk mencoba lagi tahap yang gagal atau tindakan yang gagal dalam tahap - konsol
  1. Masuk ke AWS Management Console dan buka CodePipeline konsol di http://console.aws.amazon. com/codesuite/codepipeline/home.

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

  2. Di Nama, pilih nama pipa.

  3. Temukan panggung dengan tindakan yang gagal, lalu pilih salah satu dari 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

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

Coba lagi tahap yang gagal secara manual () CLI

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

  1. Di terminal (Linux, macOS, atau Unix) atau command prompt (Windows), jalankan retry-stage-executionperintah, 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" }
  2. Anda juga dapat menjalankan perintah dengan file JSON input. Pertama-tama Anda membuat JSON file yang mengidentifikasi pipeline, tahapan yang berisi tindakan gagal, dan eksekusi pipeline terbaru di tahap tersebut. Anda kemudian menjalankan retry-stage-execution perintah dengan --cli-input-json parameter. Untuk mengambil detail yang Anda butuhkan untuk JSON file, paling mudah untuk menggunakan get-pipeline-state perintah.

    1. Di terminal (Linux, macOS, atau Unix) atau command prompt (Windows), jalankan get-pipeline-stateperintah 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" } } ] }
    2. Dalam editor teks biasa, buat file tempat Anda akan merekam yang berikut ini, dalam format: JSON

      • Nama pipa yang berisi tindakan 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" }
    3. Simpan file dengan nama sepertiretry-failed-actions.json.

    4. Panggil file yang Anda buat saat menjalankan retry-stage-executionperintah. Sebagai 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
    5. 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.

Konfigurasikan tahap untuk coba lagi otomatis pada kegagalan

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)

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

Konfigurasikan panggung untuk coba lagi otomatis (konsol)
  1. Masuk ke AWS Management Console dan buka CodePipeline konsol di http://console.aws.amazon. com/codesuite/codepipeline/home.

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

  2. Di Nama, pilih nama pipeline yang ingin Anda edit.

  3. Pada halaman detail pipeline, pilih Edit.

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

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

  6. 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.
  7. 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.
  8. Untuk melihat detail tentang upaya coba lagi, pilih. Jendela menampilkan.

    Contoh jendela metadata tahap coba lagi yang menunjukkan ada satu upaya.

Konfigurasikan tahapan untuk coba ulang otomatis () CLI

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 danEdit pipa di CodePipeline.

  • 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 ()AWS CloudFormation

AWS 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 OnFailureStageDeclarationdi bawah AWS CloudFormation Panduan Pengguna.