Memecahkan Masalah EC2 Image Builder - EC2 Image Builder

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

Memecahkan Masalah EC2 Image Builder

EC2 Image Builder terintegrasi Layanan AWS dengan pemantauan dan pemecahan masalah untuk membantu Anda memecahkan masalah pembuatan gambar. Image Builder melacak dan menampilkan kemajuan untuk setiap langkah dalam proses pembuatan gambar. Selain itu, Image Builder dapat mengekspor log ke lokasi Amazon S3 yang Anda berikan.

Untuk pemecahan masalah lanjutan, Anda dapat menjalankan perintah dan skrip yang telah ditentukan menggunakan Run Command. AWS Systems Manager

Memecahkan masalah pembangunan pipa

Jika build pipeline Image Builder gagal, Image Builder menampilkan pesan kesalahan yang menjelaskan kegagalan tersebut. Image Builder juga mengembalikan pesan kegagalan, seperti yang ada di output contoh berikut: workflow execution ID

Workflow Execution ID: wf-12345abc-6789-0123-abc4-567890123abc failed with reason: …

Image Builder mengatur dan mengarahkan tindakan pembuatan gambar melalui serangkaian langkah yang ditentukan untuk tahapan runtime dalam proses pembuatan gambar standarnya. Tahapan pembuatan dan pengujian dari proses masing-masing memiliki alur kerja yang terkait. Saat Image Builder menjalankan alur kerja untuk membangun atau menguji gambar baru, Image Builder akan menghasilkan sumber daya metadata alur kerja yang melacak detail runtime.

Gambar kontainer memiliki alur kerja tambahan yang berjalan selama distribusi.

Detail penelitian untuk kegagalan instans runtime untuk alur kerja Anda

Untuk memecahkan masalah kegagalan runtime alur kerja Anda, Anda dapat memanggil tindakan GetWorkflowExecutiondan ListWorkflowStepExecutionsAPI dengan Anda. workflow execution ID

Tinjau log runtime alur kerja
  • CloudWatch Log Amazon

    Image Builder menerbitkan log eksekusi alur kerja terperinci ke grup dan aliran Image Builder CloudWatch Logs berikut:

    LogGroup:

    /aws/imagebuilder/ImageName

    LogStream (x.x.x/x):

    ImageVersion/ImageBuildVersion

    Dengan CloudWatch Log, Anda dapat mencari data log dengan pola filter. Untuk informasi selengkapnya, lihat Cari data log menggunakan pola filter di Panduan Pengguna CloudWatch Log Amazon.

  • AWS CloudTrail

    Semua aktivitas build juga masuk CloudTrail jika diaktifkan di akun Anda. Anda dapat memfilter CloudTrail acara berdasarkan sumbernyaimagebuilder.amazonaws.com. Atau, Anda dapat mencari ID instans Amazon EC2 yang dikembalikan dalam log eksekusi untuk melihat detail selengkapnya tentang eksekusi pipeline.

  • Amazon Simple Storage Service (S3)

    Jika Anda telah menetapkan nama bucket S3 dan key prefix dalam konfigurasi infrastruktur, jalur log runtime langkah alur kerja mengikuti pola ini:

    S3://S3BucketName/KeyPrefix/ImageName/ImageVersion/ImageBuildVersion/WorkflowExecutionId/StepName

    Log yang Anda kirim ke bucket S3 menunjukkan langkah-langkah dan pesan kesalahan untuk aktivitas pada instans EC2 selama proses pembuatan gambar. Log termasuk output log dari manajer komponen, definisi komponen yang dijalankan, dan output rinci (dalam JSON) dari semua langkah yang diambil pada instance. Jika Anda mengalami masalah, Anda harus meninjau file-file iniapplication.log, dimulai dengan, untuk mendiagnosis penyebab masalah pada instance.

Secara default, Image Builder mematikan build Amazon EC2 atau instance pengujian yang berjalan saat pipeline gagal. Anda dapat mengubah setelan instans untuk sumber daya konfigurasi infrastruktur yang digunakan pipeline, untuk mempertahankan instance build atau pengujian untuk pemecahan masalah.

Untuk mengubah setelan instans di konsol, Anda harus menghapus kotak centang Hentikan instans pada kegagalan yang terletak di bagian Pengaturan pemecahan masalah sumber daya konfigurasi infrastruktur Anda.

Anda juga dapat mengubah pengaturan instance dengan update-infrastructure-configuration perintah diAWS CLI. Tetapkan terminateInstanceOnFailure nilai ke false dalam file JSON yang direferensikan perintah dengan --cli-input-json parameter. Untuk detailnya, lihat Memperbarui konfigurasi infrastruktur.

Skenario pemecahan masalah

Bagian ini mencantumkan skenario pemecahan masalah terperinci berikut:

Untuk melihat detail skenario, pilih judul skenario untuk mengembangkannya. Anda dapat memiliki beberapa judul diperluas secara bersamaan.

Deskripsi

Pembuatan pipeline gagal dengan "AccessDenied: Akses Kode status Ditolak: 403".

Penyebab

Kemungkinan penyebabnya meliputi:

  • Profil instance tidak memiliki izin yang diperlukan untuk mengakses API atau sumber daya komponen.

  • Peran profil instance tidak memiliki izin yang diperlukan untuk masuk ke Amazon S3. Paling umum, ini terjadi ketika peran profil instance tidak memiliki PutObjectizin untuk bucket S3 Anda.

Solusi

Tergantung pada penyebabnya, masalah ini dapat diselesaikan sebagai berikut:

  • Profil instans tidak memiliki kebijakan terkelola — Tambahkan kebijakan yang hilang ke peran profil instans Anda. Kemudian jalankan pipa lagi.

  • Profil instans tidak memiliki izin tulis untuk bucket S3 — Tambahkan kebijakan ke peran profil instans Anda yang memberikan PutObjectizin untuk menulis ke bucket S3 Anda. Kemudian jalankan pipa lagi.

Deskripsi

Pembuatan pipeline gagal dengan “status = TimedOut ''” dan “failure message = 'Step timed out sementara step memverifikasi ketersediaan Agen Systems Manager pada instance target'”.

Penyebab

Kemungkinan penyebabnya meliputi:

  • Instance yang diluncurkan untuk melakukan operasi build dan menjalankan komponen tidak dapat mengakses endpoint Systems Manager.

  • Profil instance tidak memiliki izin yang diperlukan.

Solusi

Bergantung pada kemungkinan penyebabnya, masalah ini dapat diselesaikan sebagai berikut:

  • Masalah akses, subnet pribadi - Jika Anda membangun subnet pribadi, pastikan Anda telah menyiapkan PrivateLink titik akhir untuk Systems Manager, Image Builder, dan, jika ingin masuk, Amazon S3/. CloudWatch Untuk informasi selengkapnya tentang pengaturan PrivateLink titik akhir, lihat konsep titik akhir VPC (). AWS PrivateLink

  • Izin tidak ada - Tambahkan kebijakan terkelola berikut ke peran terkait layanan IAM untuk Image Builder:

    • EC2 InstanceProfileForImageBuilder

    • ECR EC2 InstanceProfileForImageBuilder ContainerBuilds

    • AmazonSSM ManagedInstanceCore

    Untuk informasi selengkapnya tentang peran terkait layanan Image Builder, lihat. Menggunakan peran terkait layanan untuk EC2 Image Builder

Deskripsi

Ketika jenis instans yang digunakan untuk membangun Image Builder Windows AMI tidak cocok dengan jenis instans yang digunakan untuk diluncurkan dari AMI, masalah dapat terjadi ketika volume non-root offline saat peluncuran. Ini terutama terjadi ketika instance build menggunakan arsitektur yang lebih baru daripada instance peluncuran.

Contoh berikut menunjukkan apa yang terjadi ketika Image Builder AMI dibangun di atas tipe instans EC2 Nitro dan diluncurkan pada instance EC2 Xen:

Jenis instance build: m5.large (Nitro)

Jenis instance peluncuran: t2.medium (Xen)

PS C:\Users\Administrator> get-disk Number Friendly Name Serial Number Health Status Operational Status Total Size Partition Style ------ ------------- ------------- ------------- ------------------ ---------- --------------- 0 AWS PVDISK vol0abc12d34e567f8a9 Healthy Online 30 GB MBR 1 AWS PVDISK vol1bcd23e45f678a9b0 Healthy Offline 8 GB MBR

Penyebab

Karena pengaturan default Windows, disk yang baru ditemukan tidak secara otomatis dibawa online dan diformat. Ketika jenis instans diubah pada EC2, Windows memperlakukan ini sebagai disk baru yang ditemukan. Ini karena perubahan driver yang mendasarinya.

Solusi

Kami menyarankan Anda menggunakan sistem tipe instans yang sama saat membuat AMI Windows yang ingin Anda luncurkan. Jangan sertakan jenis instance yang dibangun pada sistem yang berbeda dalam konfigurasi infrastruktur Anda. Jika salah satu jenis instance yang Anda tentukan menggunakan sistem Nitro, maka mereka semua harus menggunakan sistem Nitro.

Untuk informasi selengkapnya tentang instans yang dibangun di sistem Nitro, lihat Instans yang dibangun di Sistem Nitro di Panduan Pengguna Amazon EC2 untuk Instans Windows.

Deskripsi

Anda menggunakan image dasar yang diperkeras CIS dan build gagal.

Penyebab

Ketika /tmp direktori diklasifikasikan sebagainoexec, itu dapat menyebabkan Image Builder gagal.

Solusi

Pilih lokasi yang berbeda untuk direktori kerja Anda di workingDirectory bidang resep gambar. Untuk informasi selengkapnya, lihat deskripsi tipe ImageRecipedata.

Deskripsi

Systems Manager Automation menunjukkan kegagalan dalam langkah AssertInventoryCollection otomatisasi.

Penyebab

Anda atau organisasi Anda mungkin telah membuat asosiasi Manajer Negara Bagian Systems Manager yang mengumpulkan informasi inventaris untuk instans EC2. Jika koleksi metadata gambar yang disempurnakan diaktifkan untuk pipeline Image Builder Anda (ini adalah default), Image Builder mencoba membuat asosiasi inventaris baru untuk instance build. Namun, Systems Manager tidak mengizinkan beberapa asosiasi inventaris untuk instans terkelola, dan mencegah asosiasi baru jika sudah ada. Hal ini menyebabkan operasi gagal, dan menghasilkan pembuatan pipa yang gagal.

Solusi

Untuk mengatasi masalah ini, matikan pengumpulan metadata gambar yang disempurnakan, menggunakan salah satu metode berikut:

  • Perbarui pipeline gambar Anda di konsol, untuk menghapus kotak centang Aktifkan pengumpulan metadata yang disempurnakan. Simpan perubahan Anda dan jalankan pipeline build.

    Untuk informasi selengkapnya tentang memperbarui pipeline gambar AMI menggunakan konsol EC2 Image Builder, Perbarui saluran pipa gambar AMI (konsol) lihat. Untuk informasi selengkapnya tentang memperbarui pipeline image container menggunakan konsol EC2 Image Builder, Perbarui pipeline gambar kontainer (konsol) lihat.

  • Anda juga dapat memperbarui pipeline gambar Anda dengan update-image-pipeline perintah di fileAWS CLI. Untuk melakukan ini, sertakan EnhancedImageMetadataEnabled properti dalam file JSON Anda, atur kefalse. Contoh berikut menunjukkan properti disetel kefalse.

    { "name": "MyWindows2019Pipeline", "description": "Builds Windows 2019 Images", "enhancedImageMetadataEnabled": false, "imageRecipeArn": "arn:aws:imagebuilder:us-west-2:123456789012:image-recipe/my-example-recipe/2020.12.03", "infrastructureConfigurationArn": "arn:aws:imagebuilder:us-west-2:123456789012:infrastructure-configuration/my-example-infrastructure-configuration", "distributionConfigurationArn": "arn:aws:imagebuilder:us-west-2:123456789012:distribution-configuration/my-example-distribution-configuration", "imageTestsConfiguration": { "imageTestsEnabled": true, "timeoutMinutes": 60 }, "schedule": { "scheduleExpression": "cron(0 0 * * SUN *)", "pipelineExecutionStartCondition": "EXPRESSION_MATCH_AND_DEPENDENCY_UPDATES_AVAILABLE" }, "status": "ENABLED" }

Untuk mencegah hal ini terjadi pada pipeline baru, kosongkan kotak centang Aktifkan pengumpulan metadata yang disempurnakan saat Anda membuat pipeline baru menggunakan konsol EC2 Image Builder, atau setel nilai properti dalam file JSON saat Anda false membuat pipeline menggunakan. EnhancedImageMetadataEnabled AWS CLI