View a markdown version of this page

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 tahap atau dengan mencoba kembali semua tindakan di tahap mulai dari tindakan pertama di tahap. Saat Anda mencoba lagi tindakan gagal dalam tahap, semua tindakan yang masih berlangsung terus bekerja, dan tindakan gagal dipicu lagi. Saat Anda mencoba lagi tahap yang gagal dari tindakan pertama di tahap, tahap tidak dapat memiliki tindakan apa pun yang sedang berlangsung. Sebelum tahap dapat dicoba lagi, semua tindakan harus gagal atau beberapa tindakan gagal dan beberapa berhasil.

penting

Mencoba lagi tahap yang gagal mencoba kembali semua tindakan di tahap dari tindakan pertama di tahap, dan mencoba kembali tindakan yang gagal mencoba lagi semua tindakan yang gagal di tahap. 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 ulang atau tombol T oba ulang tindakan gagal muncul di panggung yang dapat dicoba lagi.

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 tahap 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 tahap untuk satu kali percobaan ulang.

  • 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 kembali tahap yang gagal secara manual menggunakan konsol atau CLI.

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

Coba lagi tahap yang gagal secara manual (konsol)

Untuk mencoba lagi tahap yang gagal atau tindakan gagal dalam tahap - konsol
  1. Masuk ke Konsol Manajemen AWS 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 gagal, lalu pilih salah satu dari berikut ini:

    • Untuk mencoba kembali semua tindakan di panggung, pilih Tahap C oba lagi.

    • Untuk mencoba lagi hanya tindakan yang gagal di panggung, pilih C oba ulang tindakan gagal.

    Contoh pipeline dengan tahap CodeCommit sumber dan tahap penerapan CodeDeploy yang gagal

    Jika semua tindakan yang dicoba ulang di tahap berhasil diselesaikan, pipeline akan terus berjalan.

Coba lagi tahap yang gagal secara manual (CLI)

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

Untuk menggunakan AWS CLI untuk mencoba kembali semua tindakan atau semua tindakan 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. Pada terminal (Linux, macOS, atau Unix) atau command prompt (Windows), jalankan retry-stage-execution perintah, seperti yang ditunjukkan dalam contoh berikut untuk pipeline bernamaMyPipeline.

    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 input JSON. Pertama-tama Anda membuat file JSON yang mengidentifikasi pipeline, tahap yang berisi tindakan gagal, dan eksekusi pipeline terbaru dalam 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 menggunakan get-pipeline-state perintah.

    1. Di terminal (Linux, macOS, atau Unix) atau command prompt (Windows), jalankan get-pipeline-state perintah pada pipeline. Misalnya, untuk pipeline bernama MyFirstPipeline, Anda akan mengetikkan sesuatu yang mirip dengan berikut ini:

      aws codepipeline get-pipeline-state --name MyFirstPipeline

      Respons terhadap perintah mencakup informasi status pipeline untuk setiap tahap. Dalam contoh berikut, respons menunjukkan bahwa satu atau lebih tindakan gagal pada tahap Staging:

      { "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 di mana Anda akan merekam yang berikut ini, dalam format JSON:

      • Nama pipeline yang berisi tindakan gagal

      • Nama tahap yang berisi tindakan 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-execution 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
    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 ulang otomatis pada kegagalan

Anda dapat mengonfigurasi tahap untuk coba ulang otomatis pada kegagalan. Tahap akan melakukan satu kali percobaan ulang dan menampilkan status percobaan ulang pada tahap gagal pada halaman Lihat pipeline.

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

Konfigurasikan tahap untuk coba ulang otomatis pada kegagalan (konsol)

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

Konfigurasikan tahap untuk coba ulang otomatis (konsol)
  1. Masuk ke Konsol Manajemen AWS 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 rincian pipeline, pilih Edit.

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

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

  6. Dalam Konfigurasi tahap otomatis:, pilih salah satu mode coba ulang berikut:

    • Untuk menentukan bahwa mode akan mencoba kembali semua tindakan di panggung, pilih C oba lagi tahap gagal.

    • Untuk menentukan bahwa mode hanya akan mencoba lagi tindakan yang gagal di panggung, pilih C oba ulang tindakan gagal.

    Simpan perubahan ke pipeline Anda.

    Contoh layar edit untuk mengonfigurasi percobaan ulang otomatis pada kegagalan tahap di CodePipeline.
  7. Setelah pipeline 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 ditampilkan.

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

Konfigurasikan tahap untuk coba ulang otomatis (CLI)

Untuk menggunakan tahap AWS CLI untuk mengonfigurasi untuk mencoba lagi secara otomatis 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 pipeline. Contoh berikut mengonfigurasi percobaan ulang otomatis untuk tahap bernama: 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 tahap untuk coba ulang otomatis (CloudFormation)

Untuk digunakan CloudFormation untuk mengonfigurasi tahap 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 dalam cuplikan berikut. Contoh berikut mengonfigurasi percobaan 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 tahap percobaan ulang pada kegagalan, lihat StageDeclaration di OnFailure bawah Panduan CloudFormation Pengguna.