View a markdown version of this page

Pemecahan Masalah AWS CodeBuild - AWS CodeBuild
Apache Maven membangun artefak referensi dari repositori yang salahMembangun perintah dijalankan sebagai root secara defaultBuild mungkin gagal ketika nama file memiliki non-U.S. Karakter bahasa InggrisBuild mungkin gagal saat mendapatkan parameter dari Amazon EC2 Parameter StoreTidak dapat mengakses filter cabang di CodeBuild konsolTidak dapat melihat kesuksesan atau kegagalan pembangunanStatus build tidak dilaporkan ke penyedia sumberTidak dapat menemukan dan memilih gambar dasar platform Windows Server Core 2019Perintah sebelumnya dalam file buildspec tidak dikenali oleh perintah selanjutnyaKesalahan: “Akses ditolak” saat mencoba mengunduh cacheKesalahan: “BUILD_CONTAINER_UNABLE_TO_PULL_IMAGE” saat menggunakan gambar build khususKesalahan: “Container build ditemukan mati sebelum menyelesaikan build. wadah build mati karena kehabisan memori, atau image Docker tidak didukung. ErrorCode: 500”Kesalahan: “Tidak dapat terhubung ke daemon Docker” saat menjalankan buildKesalahan: "CodeBuild tidak berwenang untuk melakukan: sts:AssumeRole" saat membuat atau memperbarui proyek buildKesalahan: “Galat memanggil GetBucketAcl: Pemilik bucket telah berubah atau peran layanan tidak lagi memiliki izin untuk memanggil s3:GetBucketAcl”Kesalahan: “Gagal mengunggah artefak: arn tidak valid” saat menjalankan buildKesalahan: “Git clone gagal: Tidak dapat mengakses 'URL repositori Anda': Masalah sertifikat SSL: Sertifikat yang ditandatangani sendiri”Kesalahan: “Bucket yang Anda coba akses harus ditangani menggunakan titik akhir yang ditentukan” saat menjalankan buildKesalahan: “Gambar build ini memerlukan pemilihan setidaknya satu versi runtime.”Kesalahan: “QUEUED: INSUFFICIENT_SUBNET” saat build dalam antrian build gagalKesalahan: “Tidak dapat mengunduh cache: RequestError: Permintaan kirim gagal disebabkan oleh: x509: Gagal memuat root sistem dan tidak ada root yang disediakan”Kesalahan: “Tidak dapat mengunduh sertifikat dari S3. AccessDenied”Kesalahan: “Tidak dapat menemukan kredenSIAL”RequestError kesalahan batas waktu saat berjalan CodeBuild di server proxyBourne shell (sh) harus ada dalam gambar buildPeringatan: “Melewatkan instalasi runtime. pemilihan versi runtime tidak didukung oleh image build ini” saat menjalankan buildKesalahan: “Tidak dapat memverifikasi JobWorker identitas”Pembuatan gagal memulaiMengakses GitHub metadata dalam build yang di-cache secara lokalAccessDenied: Pemilik bucket untuk grup laporan tidak cocok dengan pemilik bucket S3...Kesalahan: “KredenSIAL Anda tidak memiliki satu atau lebih cakupan hak istimewa yang diperlukan” saat membuat CodeBuild proyek dengan CodeConnectionsKesalahan: “Maaf, tidak ada terminal sama sekali yang diminta - tidak bisa mendapatkan input” saat membangun dengan perintah instal UbuntuPembuatan Bitbucket gagal dengan kesalahan otentikasi setelah menggunakan Secrets Manager OAuth

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

Pemecahan Masalah AWS CodeBuild

Gunakan informasi dalam topik ini untuk membantu Anda mengidentifikasi, mendiagnosis, dan mengatasi masalah. Untuk mempelajari cara mencatat dan memantau CodeBuild build untuk memecahkan masalah, lihatPencatatan log dan pemantauan.

Topik

Apache Maven membangun artefak referensi dari repositori yang salah

Masalah: Saat Anda menggunakan Maven dengan lingkungan build AWS CodeBuild Java yang disediakan, Maven menarik dependensi build dan plugin dari repositori pusat Maven yang aman di. https://repo1.maven.org/maven2 Ini terjadi bahkan jika pom.xml file proyek build Anda secara eksplisit menyatakan lokasi lain untuk digunakan sebagai gantinya.

Kemungkinan penyebab: Lingkungan build CodeBuild-provided Java menyertakan file bernama settings.xml yang sudah diinstal sebelumnya di /root/.m2 direktori lingkungan build. settings.xmlFile ini berisi deklarasi berikut, yang menginstruksikan Maven untuk selalu menarik dependensi build dan plugin dari repositori Maven pusat yang aman di. https://repo1.maven.org/maven2

<settings> <activeProfiles> <activeProfile>securecentral</activeProfile> </activeProfiles> <profiles> <profile> <id>securecentral</id> <repositories> <repository> <id>central</id> <url>https://repo1.maven.org/maven2</url> <releases> <enabled>true</enabled> </releases> </repository> </repositories> <pluginRepositories> <pluginRepository> <id>central</id> <url>https://repo1.maven.org/maven2</url> <releases> <enabled>true</enabled> </releases> </pluginRepository> </pluginRepositories> </profile> </profiles> </settings>

Solusi yang disarankan: Lakukan hal berikut:

  1. Tambahkan settings.xml file ke kode sumber Anda.

  2. Dalam settings.xml file ini, gunakan settings.xml format sebelumnya sebagai panduan untuk mendeklarasikan repositori yang Anda inginkan untuk Maven menarik dependensi build dan plugin sebagai gantinya.

  3. Pada install fase proyek build Anda, instruksikan CodeBuild untuk menyalin settings.xml file Anda ke /root/.m2 direktori lingkungan build. Misalnya, pertimbangkan cuplikan berikut dari buildspec.yml file yang menunjukkan perilaku ini.

    version 0.2 phases: install: commands: - cp ./settings.xml /root/.m2/settings.xml

Membangun perintah dijalankan sebagai root secara default

Masalah: AWS CodeBuild menjalankan perintah build Anda sebagai pengguna root. Ini terjadi bahkan jika Dockerfile gambar build terkait Anda menetapkan USER instruksi ke pengguna yang berbeda.

Penyebab: Secara default, CodeBuild jalankan semua perintah build sebagai pengguna root.

Solusi yang disarankan: Tidak ada.

Build mungkin gagal ketika nama file memiliki non-U.S. Karakter bahasa Inggris

Masalah: Saat Anda menjalankan build yang menggunakan file dengan nama file yang berisi non-U.S. Karakter bahasa Inggris (misalnya, karakter Mandarin), pembangunan gagal.

Kemungkinan penyebab: Lingkungan build yang disediakan oleh AWS CodeBuild setel lokal defaultnya kePOSIX. POSIXpengaturan lokalisasi kurang kompatibel dengan CodeBuild dan nama file yang mengandung non-U.S. Karakter bahasa Inggris dan dapat menyebabkan build terkait gagal.

Solusi yang disarankan: Tambahkan perintah berikut ke pre_build bagian file buildspec Anda. Perintah-perintah ini membuat lingkungan build digunakan U.S. Bahasa Inggris UTF-8 untuk pengaturan lokalisasi, yang lebih kompatibel dengan CodeBuild dan nama file yang berisi non-U.S. Karakter bahasa Inggris.

Untuk membangun lingkungan berbasis Ubuntu:

pre_build: commands: - export LC_ALL="en_US.UTF-8" - locale-gen en_US en_US.UTF-8 - dpkg-reconfigure -f noninteractive locales

Untuk membangun lingkungan berbasis Amazon Linux:

pre_build: commands: - export LC_ALL="en_US.utf8"

Build mungkin gagal saat mendapatkan parameter dari Amazon EC2 Parameter Store

Masalah: Saat build mencoba mendapatkan nilai satu atau lebih parameter yang disimpan di Amazon EC2 Parameter Store, build gagal pada DOWNLOAD_SOURCE fase dengan kesalahanParameter does not exist.

Kemungkinan penyebab: Peran layanan yang diandalkan proyek build tidak memiliki izin untuk memanggil ssm:GetParameters tindakan atau proyek build menggunakan peran layanan yang dihasilkan oleh AWS CodeBuild dan memungkinkan pemanggilan ssm:GetParameters tindakan, tetapi parameter memiliki nama yang tidak dimulai dengan/CodeBuild/.

Solusi yang disarankan:

  • Jika peran layanan tidak dihasilkan oleh CodeBuild, perbarui definisinya untuk memungkinkan CodeBuild untuk memanggil ssm:GetParameters tindakan. Misalnya, pernyataan kebijakan berikut memungkinkan pemanggilan ssm:GetParameters tindakan untuk mendapatkan parameter dengan nama yang dimulai dengan/CodeBuild/:

    JSON
    { "Version":"2012-10-17", "Statement": [ { "Action": "ssm:GetParameters", "Effect": "Allow", "Resource": "arn:aws:ssm:us-east-1:111122223333:parameter/CodeBuild/*" } ] }
  • Jika peran layanan dihasilkan oleh CodeBuild, perbarui definisinya CodeBuild untuk memungkinkan akses parameter di Amazon EC2 Parameter Store dengan nama selain yang dimulai dengan/CodeBuild/. Misalnya, pernyataan kebijakan berikut memungkinkan memanggil ssm:GetParameters tindakan untuk mendapatkan parameter dengan nama yang ditentukan:

    JSON
    { "Version":"2012-10-17", "Statement": [ { "Action": "ssm:GetParameters", "Effect": "Allow", "Resource": "arn:aws:ssm:us-east-1:111122223333:parameter/PARAMETER_NAME" } ] }

Tidak dapat mengakses filter cabang di CodeBuild konsol

Masalah: Opsi filter cabang tidak tersedia di konsol saat Anda membuat atau memperbarui AWS CodeBuild proyek.

Kemungkinan penyebab: Opsi filter cabang tidak digunakan lagi. Ini telah digantikan oleh grup filter webhook, yang memberikan kontrol lebih besar atas peristiwa webhook yang memicu build baru. CodeBuild

Solusi yang disarankan: Untuk memigrasikan filter cabang yang Anda buat sebelum pengenalan filter webhook, buat grup filter webhook dengan HEAD_REF filter dengan ekspresi reguler. ^refs/heads/branchName$ Misalnya, jika ekspresi reguler filter cabang Anda adalah^branchName$, maka ekspresi reguler yang diperbarui yang Anda masukkan ke dalam HEAD_REF filter adalah^refs/heads/branchName$. Untuk informasi selengkapnya, lihat Acara webhook Bitbucket dan Filter acara GitHub webhook (konsol).

Tidak dapat melihat kesuksesan atau kegagalan pembangunan

Masalah: Anda tidak dapat melihat keberhasilan atau kegagalan build yang dicoba ulang.

Kemungkinan penyebab: Opsi untuk melaporkan status build Anda tidak diaktifkan.

Solusi yang disarankan: Akti fkan status build Laporan saat Anda membuat atau memperbarui CodeBuild proyek. Opsi ini memberitahu CodeBuild untuk melaporkan kembali status saat Anda memicu build. Untuk informasi selengkapnya, lihat laporan BuildStatus di Refer AWS CodeBuild ensi API.

Status build tidak dilaporkan ke penyedia sumber

Masalah: Setelah mengizinkan pelaporan status build ke penyedia sumber, seperti GitHub atau Bitbucket, status build tidak diperbarui.

Kemungkinan penyebab: Pengguna yang terkait dengan penyedia sumber tidak memiliki akses tulis ke repo.

Solusi yang disarankan: Untuk dapat melaporkan status build ke penyedia sumber, pengguna yang terkait dengan penyedia sumber harus memiliki akses tulis ke repo. Jika pengguna tidak memiliki akses tulis, status build tidak dapat diperbarui. Untuk informasi selengkapnya, lihat Akses penyedia sumber.

Tidak dapat menemukan dan memilih gambar dasar platform Windows Server Core 2019

Masalah: Anda tidak dapat menemukan atau memilih gambar dasar platform Windows Server Core 2019.

Kemungkinan penyebab: Anda menggunakan Wil AWS ayah yang tidak mendukung gambar ini.

Solusi yang disarankan: Gunakan salah satu AWS Wilayah berikut di mana gambar dasar platform Windows Server Core 2019 didukung:

  • Timur AS (N. Virginia)

  • AS Timur (Ohio)

  • AS Barat (Oregon)

  • Eropa (Irlandia)

Perintah sebelumnya dalam file buildspec tidak dikenali oleh perintah selanjutnya

Masalah: Hasil dari satu atau lebih perintah dalam file buildspec Anda tidak dikenali oleh perintah selanjutnya dalam file buildspec yang sama. Misalnya, perintah mungkin menetapkan variabel lingkungan lokal, tetapi perintah yang dijalankan nanti mungkin gagal untuk mendapatkan nilai variabel lingkungan lokal itu.

Kemungkinan penyebab: Dalam file buildspec versi 0.1, AWS CodeBuild jalankan setiap perintah dalam instance terpisah dari shell default di lingkungan build. Ini berarti bahwa setiap perintah berjalan secara terpisah dari semua perintah lainnya. Secara default, maka, Anda tidak dapat menjalankan perintah tunggal yang bergantung pada status perintah sebelumnya.

Solusi yang disarankan: Kami menyarankan Anda menggunakan buildspec versi 0.2, yang memecahkan masalah ini. Jika Anda harus menggunakan buildspec versi 0.1, kami sarankan Anda menggunakan operator rantai perintah shell (misalnya, && di Linux) untuk menggabungkan beberapa perintah menjadi satu perintah. Atau sertakan skrip shell dalam kode sumber Anda yang berisi beberapa perintah, lalu panggil skrip shell itu dari satu perintah di file buildspec. Untuk informasi selengkapnya, lihat Shell dan perintah di lingkungan build dan Variabel lingkungan di lingkungan build.

Kesalahan: “Akses ditolak” saat mencoba mengunduh cache

Masalah: Saat mencoba mengunduh cache pada proyek build yang mengaktifkan cache, Anda menerima Access denied kesalahan.

Kemungkinan penyebab:

  • Anda baru saja mengonfigurasi caching sebagai bagian dari proyek build Anda.

  • Cache baru-baru ini dibatalkan melalui InvalidateProjectCache API.

  • Peran layanan yang digunakan oleh CodeBuild tidak memiliki s3:GetObject s3:PutObject izin ke bucket S3 yang menyimpan cache.

Solusi yang disarankan: Untuk penggunaan pertama kali, normal untuk melihat ini segera setelah memperbarui konfigurasi cache. Jika kesalahan ini berlanjut, maka Anda harus memeriksa untuk melihat apakah peran layanan Anda memiliki s3:GetObject dan s3:PutObject izin ke bucket S3 yang menyimpan cache. Untuk informasi selengkapnya, lihat Menentukan izin S3 di Panduan Pengembang Amazon S3.

Kesalahan: “BUILD_CONTAINER_UNABLE_TO_PULL_IMAGE” saat menggunakan gambar build khusus

Masalah: Saat Anda mencoba menjalankan build yang menggunakan image build khusus, build gagal dengan kesalahanBUILD_CONTAINER_UNABLE_TO_PULL_IMAGE.

Kemungkinan penyebab: Ukuran keseluruhan gambar build yang tidak terkompresi lebih besar dari ruang disk tipe komputasi lingkungan build yang tersedia. Untuk memeriksa ukuran image build Anda, gunakan Docker untuk menjalankan docker images REPOSITORY:TAG perintah. Untuk daftar ruang disk yang tersedia berdasarkan jenis komputasi, lihatMembangun mode dan tipe komputasi lingkungan.

Solusi yang disarankan: Gunakan tipe komputasi yang lebih besar dengan lebih banyak ruang disk yang tersedia, atau kurangi ukuran image build kustom Anda.

Kemungkinan penyebab: AWS CodeBuild tidak memiliki izin untuk menarik gambar build dari Amazon Elastic Container Registry (Amazon ECR) Anda.

Solusi yang disarankan: Per barui izin di repositori Anda di Amazon ECR sehingga CodeBuild dapat menarik gambar build kustom Anda ke lingkungan build. Untuk informasi selengkapnya, lihat Sampel Amazon ECR.

Kemungkinan penyebabnya: Gambar Amazon ECR yang Anda minta tidak tersedia di Wil AWS ayah yang AWS digunakan akun Anda.

Solusi yang disarankan: Gunakan gambar Amazon ECR yang berada di Wil AWS ayah yang sama dengan yang AWS digunakan akun Anda.

Kemungkinan penyebab: Anda menggunakan registri pribadi di VPC yang tidak memiliki akses internet publik. CodeBuild tidak dapat menarik gambar dari alamat IP pribadi di VPC. Untuk informasi selengkapnya, lihat Registri pribadi dengan AWS Secrets Manager sampel untuk CodeBuild.

Solusi yang disarankan: Jika Anda menggunakan registri pribadi di VPC, pastikan VPC memiliki akses internet publik.

Kemungkinan penyebab: Jika pesan kesalahan berisi "toomanyrequests“, dan gambar diperoleh dari Docker Hub, kesalahan ini berarti batas tarik Docker Hub telah tercapai.

Solusi yang disarankan: Gunakan registri pribadi Docker Hub, atau dapatkan gambar Anda dari Amazon ECR. Untuk informasi selengkapnya tentang menggunakan registri pribadi, lihatRegistri pribadi dengan AWS Secrets Manager sampel untuk CodeBuild. Untuk informasi selengkapnya tentang menggunakan Amazon ECR, lihatSampel Amazon ECR untuk CodeBuild.

Kesalahan: “Container build ditemukan mati sebelum menyelesaikan build. wadah build mati karena kehabisan memori, atau image Docker tidak didukung. ErrorCode: 500”

Masalah: Saat Anda mencoba menggunakan wadah Microsoft Windows atau Linux di AWS CodeBuild, kesalahan ini terjadi selama fase PENYEDIAAN.

Kemungkinan penyebab:

  • Versi OS kontainer tidak didukung oleh CodeBuild.

  • HTTP_PROXY,HTTPS_PROXY, atau keduanya ditentukan dalam wadah.

Solusi yang disarankan:

  • Untuk Microsoft Windows, gunakan wadah Windows dengan OS kontainer yang version:10.0.x microsoft/windowsservercore (misalnya ,:10.0.14393.2125). microsoft/windowsservercore

  • Untuk Linux, hapus HTTPS_PROXY pengaturan HTTP_PROXY dan di image Docker Anda, atau tentukan konfigurasi VPC dalam proyek build Anda.

Kesalahan: “Tidak dapat terhubung ke daemon Docker” saat menjalankan build

Masalah: Pembuatan Anda gagal dan Anda menerima kesalahan yang mirip dengan Cannot connect to the Docker daemon at unix:/var/run/docker.sock. Is the docker daemon running? di log build.

Kemungkinan penyebab: Anda tidak menjalankan build Anda dalam mode istimewa.

Solusi yang disarankan: Untuk memperbaiki kesalahan ini, Anda harus mengaktifkan mode istimewa dan memperbarui buildspec Anda menggunakan instruksi berikut.

Untuk menjalankan build Anda dalam mode istimewa, ikuti langkah-langkah ini:

  1. Buka CodeBuild konsol di https://console.aws.amazon.com/codebuild/.

  2. Di panel navigasi, pilih Bangun proyek, lalu pilih proyek build Anda.

  3. Dari Edit, pilih Lingkungan.

  4. Pilih Konfigurasi tambahan.

  5. Dari Privileged, pilih Aktifkan tanda ini jika Anda ingin membuat gambar Docker atau ingin build Anda mendapatkan hak istimewa yang ditingkatkan. .

  6. Pilih Perbarui lingkungan.

  7. Pilih Mulai build untuk mencoba lagi build Anda.

Anda juga harus memulai daemon Docker di dalam wadah Anda. F install ase buildspec Anda mungkin terlihat mirip dengan ini.

phases: install: commands: - nohup /usr/local/bin/dockerd --host=unix:///var/run/docker.sock --host=tcp://127.0.0.1:2375 --storage-driver=overlay2 & - timeout 15 sh -c "until docker info; do echo .; sleep 1; done"

Untuk informasi selengkapnya tentang driver penyimpanan OverlayFS yang dirujuk dalam file buildspec, lihat Menggunakan driver penyimpanan OverlayFS di situs web Docker.

catatan

Jika sistem operasi dasar adalah Alpine Linux, buildspec.yml tambahkan -t argumen ketimeout:

- timeout -t 15 sh -c "until docker info; do echo .; sleep 1; done"

Untuk mempelajari selengkapnya tentang cara membangun dan menjalankan image Docker dengan menggunakan AWS CodeBuild, lihatDocker dalam sampel gambar khusus untuk CodeBuild.

Kesalahan: "CodeBuild tidak berwenang untuk melakukan: sts:AssumeRole" saat membuat atau memperbarui proyek build

Masalah: Saat Anda mencoba membuat atau memperbarui proyek build, Anda menerima kesalahanCode:InvalidInputException, Message:CodeBuild is not authorized to perform: sts:AssumeRole on arn:aws:iam::account-ID:role/service-role-name.

Kemungkinan penyebab:

  • AWS Security Token Service (AWS STS) telah dinonaktifkan untuk AWS wilayah tempat Anda mencoba membuat atau memperbarui proyek build.

  • Per AWS CodeBuild an layanan yang terkait dengan proyek build tidak ada atau tidak memiliki izin yang cukup untuk dipercaya CodeBuild.

  • Cas AWS CodeBuild ing peran layanan yang terkait dengan proyek build tidak cocok dengan peran IAM yang sebenarnya.

Solusi yang disarankan:

  • Pastikan AWS STS diaktifkan untuk AWS wilayah tempat Anda mencoba membuat atau memperbarui proyek build. Untuk informasi selengkapnya, lihat Mengaktifkan dan menonaktifkan AWS STS di Wil AWS ayah di Panduan Pengguna IAM.

  • Pastikan peran CodeBuild layanan target ada di AWS akun Anda. Jika Anda tidak menggunakan konsol, pastikan Anda tidak salah mengeja Nama Sumber Daya Amazon (ARN) dari peran layanan saat Anda membuat atau memperbarui proyek build. Perhatikan bahwa peran IAM peka huruf besar/kecil, jadi periksa apakah casing peran IAM sudah benar.

  • Pastikan peran CodeBuild layanan target memiliki izin yang cukup untuk dipercaya CodeBuild. Untuk informasi selengkapnya, lihat pernyataan kebijakan hubungan kepercayaan diMemungkinkan CodeBuild untuk berinteraksi dengan orang lain AWS layanan.

Kesalahan: “Galat memanggil GetBucketAcl: Pemilik bucket telah berubah atau peran layanan tidak lagi memiliki izin untuk memanggil s3:GetBucketAcl”

Masalah: Saat menjalankan build, Anda menerima kesalahan tentang perubahan kepemilikan bucket S3 dan GetBucketAcl izin.

Kemungkinan penyebab: Anda menambahkan s3:GetBucketLocation izin s3:GetBucketAcl dan ke peran IAM Anda. Izin ini mengamankan bucket S3 proyek Anda dan memastikan bahwa hanya Anda yang dapat mengaksesnya. Setelah Anda menambahkan izin ini, pemilik bucket S3 berubah.

Solusi yang disarankan: Pastikan Anda adalah pemilik bucket S3, lalu tambahkan izin ke peran IAM Anda lagi. Untuk informasi selengkapnya, lihat Akses aman ke bucket S3.

Kesalahan: “Gagal mengunggah artefak: arn tidak valid” saat menjalankan build

Masalah: Saat Anda menjalankan build, fase UPLOAD_ARTIFACTS build gagal dengan kesalahanFailed to upload artifacts: Invalid arn.

Kemungkinan penyebab: Bucket keluaran S3 Anda (bucket tempat AWS CodeBuild menyimpan outputnya dari build) berada di Wil AWS ayah yang berbeda dari proyek CodeBuild build.

Solusi yang disarankan: Per barui pengaturan proyek build untuk menunjuk ke bucket keluaran yang berada di Wil AWS ayah yang sama dengan proyek build.

Kesalahan: “Git clone gagal: Tidak dapat mengakses 'URL repositori Anda': Masalah sertifikat SSL: Sertifikat yang ditandatangani sendiri”

Masalah: Saat Anda mencoba menjalankan proyek build, build gagal dengan kesalahan ini.

Kemungkinan penyebab: Repositori sumber Anda memiliki sertifikat yang ditandatangani sendiri, tetapi Anda belum memilih untuk menginstal sertifikat dari bucket S3 Anda sebagai bagian dari proyek build Anda.

Solusi yang disarankan:

  • Edit proyek Anda. Untuk Sertifikat, pilih Instal sertifikat dari S3. Untuk Bucket of certificate, pilih bucket S3 tempat sertifikat SSL Anda disimpan. Untuk Kunci Objek sertifikat, masukkan nama kunci objek S3 Anda.

  • Edit proyek Anda. Pilih SSL tidak aman untuk mengabaikan peringatan SSL saat menghubungkan ke repositori proyek Server GitHub Perusahaan Anda.

    catatan

    Kami menyarankan Anda menggunakan SSL tidak aman untuk pengujian saja. Ini tidak boleh digunakan di lingkungan produksi.

Kesalahan: “Bucket yang Anda coba akses harus ditangani menggunakan titik akhir yang ditentukan” saat menjalankan build

Masalah: Saat Anda menjalankan build, fase DOWNLOAD_SOURCE build gagal dengan kesalahanThe bucket you are attempting to access must be addressed using the specified endpoint. Please send all future requests to this endpoint.

Kemungkinan penyebab: Kode sumber pra-bangun Anda disimpan dalam bucket S3, dan bucket itu berada di Wil AWS ayah yang berbeda dari proyek AWS CodeBuild build.

Solusi yang disarankan: Per barui pengaturan proyek build untuk menunjuk ke bucket yang berisi kode sumber yang sudah dibuat sebelumnya. Pastikan bucket berada di Wilayah yang sama AWS dengan proyek pembangunan.

Kesalahan: “Gambar build ini memerlukan pemilihan setidaknya satu versi runtime.”

Masalah: Saat Anda menjalankan build, fase DOWNLOAD_SOURCE build gagal dengan kesalahanYAML_FILE_ERROR: This build image requires selecting at least one runtime version.

Kemungkinan penyebab: Build Anda menggunakan versi 1.0 atau yang lebih baru dari gambar standar Amazon Linux 2 (AL2), atau versi 2.0 atau yang lebih baru dari gambar standar Ubuntu, dan runtime tidak ditentukan dalam file buildspec.

Solusi yang disarankan: Jika Anda menggunakan aws/codebuild/standard:2.0 CodeBuild gambar terkelola, Anda harus menentukan versi runtime di runtime-versions bagian file buildspec. Misalnya, Anda dapat menggunakan file buildspec berikut untuk proyek yang menggunakan PHP:

version: 0.2 phases: install: runtime-versions: php: 7.3 build: commands: - php --version artifacts: files: - README.md
catatan

Jika Anda menentukan runtime-versions bagian dan menggunakan gambar selain Ubuntu Standard Image 2.0 atau yang lebih baru, atau gambar standar Amazon Linux 2 (AL2) 1.0 atau yang lebih baru, build mengeluarkan peringatan, "Skipping install of runtimes. Runtime version selection is not supported by this build image.”

Untuk informasi selengkapnya, lihat Specify runtime versions in the buildspec file.

Kesalahan: “QUEUED: INSUFFICIENT_SUBNET” saat build dalam antrian build gagal

Masalah: Pembuatan dalam antrian build gagal dengan kesalahan yang mirip denganQUEUED: INSUFFICIENT_SUBNET.

Kemungkinan penyebab: Blo k IPv4 CIDR yang ditentukan untuk VPC Anda menggunakan alamat IP yang dicadangkan. Empat alamat IP pertama dan alamat IP terakhir di setiap blok CIDR subnet tidak tersedia untuk Anda gunakan dan tidak dapat ditetapkan ke instance. Sebagai contoh, dalam sebuah subnet dengan blok CIDR 10.0.0.0/24, lima alamat IP berikut dicadangkan:

  • 10.0.0.0:Alamat jaringan.

  • 10.0.0.1: Dicadangkan oleh AWS untuk router VPC.

  • 10.0.0.2: Dicadangkan oleh AWS. Alamat IP server DNS selalu menjadi basis rentang jaringan VPC ditambah dua; Namun, kami juga memesan basis dari setiap rentang subnet ditambah dua. Untuk VPC dengan beberapa blok CIDR, alamat IP server DNS terletak di CIDR utama. Lihat informasi yang lebih lengkap di Server DNS Amazon dalam Panduan Pengguna Amazon VPC.

  • 10.0.0.3: Dicadangkan AWS untuk penggunaan di masa mendatang.

  • 10.0.0.255: Alamat siaran jaringan. Kami tidak mendukung siaran dalam VPC. Alamat ini dipesan.

Solusi yang disarankan: Periksa apakah VPC Anda menggunakan alamat IP yang dicadangkan. Ganti alamat IP yang dicadangkan dengan yang tidak dicadangkan. Untuk informasi selengkapnya, lihat Ukuran VPC dan subnet dalam Panduan Pengguna Amazon VPC.

Kesalahan: “Tidak dapat mengunduh cache: RequestError: Permintaan kirim gagal disebabkan oleh: x509: Gagal memuat root sistem dan tidak ada root yang disediakan”

Masalah: Saat Anda mencoba menjalankan proyek build, build gagal dengan kesalahan ini.

Kemungkinan penyebab: Anda mengonfigurasi caching sebagai bagian dari proyek build Anda dan menggunakan image Docker lama yang menyertakan sertifikat root yang kedaluwarsa.

Solusi yang disarankan: Per barui gambar Docker yang sedang digunakan dalam AWS CodeBuild proyek Anda. Untuk informasi selengkapnya, lihat Gambar Docker disediakan oleh CodeBuild.

Kesalahan: “Tidak dapat mengunduh sertifikat dari S3. AccessDenied”

Masalah: Saat Anda mencoba menjalankan proyek build, build gagal dengan kesalahan ini.

Kemungkinan penyebab:

  • Anda telah memilih bucket S3 yang salah untuk sertifikat Anda.

  • Anda telah memasukkan kunci objek yang salah untuk sertifikat Anda.

Solusi yang disarankan:

  • Edit proyek Anda. Untuk Bucket of certificate, pilih bucket S3 tempat sertifikat SSL Anda disimpan.

  • Edit proyek Anda. Untuk Kunci Objek sertifikat, masukkan nama kunci objek S3 Anda.

Kesalahan: “Tidak dapat menemukan kredenSIAL”

Masalah: Saat Anda mencoba menjalankan AWS CLI, menggunakan AWS SDK, atau memanggil komponen serupa lainnya sebagai bagian dari build, Anda mendapatkan kesalahan build yang terkait langsung dengan AWS CLI, AWS SDK, atau komponen. Misalnya, Anda mungkin mendapatkan kesalahan build sepertiUnable to locate credentials.

Kemungkinan penyebab:

  • Versi AWS CLI, AWS SDK, atau komponen di lingkungan build tidak kompatibel dengan AWS CodeBuild.

  • Anda menjalankan wadah Docker dalam lingkungan build yang menggunakan Docker, dan wadah tidak memiliki akses ke AWS kredenSIAL secara default.

Solusi yang disarankan:

  • Pastikan lingkungan build Anda memiliki versi AWS SDK AWS CLI, atau komponen berikut atau yang lebih tinggi.

    • AWS CLI: 1.10.47

    • AWS SDK untuk C ++: 0.2.19

    • AWS SDK untuk Go: 1.2.5

    • AWS SDK untuk Java: 1.11.16

    • AWS SDK untuk JavaScript: 2.4.7

    • AWS SDK untuk PHP: 3.18.28

    • AWS SDK untuk Python (Boto3): 1.4.0

    • AWS SDK untuk Ruby: 2.3.22

    • Botocore: 1.4.37

    • CoreCLR: 3.2.6-beta

    • Node.js: 2.4.7

  • Jika Anda perlu menjalankan wadah Docker di lingkungan build dan wadah memerlukan AWS kredenSIAL, Anda harus melewati kredenSIAL dari lingkungan build ke wadah. Dalam file buildspec Anda, sertakan run perintah Docker seperti berikut ini. Contoh ini menggunakan aws s3 ls perintah untuk membuat daftar bucket S3 yang tersedia. -eOpsi melewati variabel lingkungan yang diperlukan untuk wadah Anda untuk mengakses AWS kredenSIAL.

    docker run -e AWS_DEFAULT_REGION -e AWS_CONTAINER_CREDENTIALS_RELATIVE_URI your-image-tag aws s3 ls
  • Jika Anda membuat image Docker dan build memerlukan AWS kredenSIAL (misalnya, untuk mengunduh file dari Amazon S3), Anda harus melewati kredenSIAL dari lingkungan build ke proses pembuatan Docker sebagai berikut.

    1. Di Dockerfile kode sumber Anda untuk gambar Docker, tentukan instruksi berikut. ARG

      ARG AWS_DEFAULT_REGION ARG AWS_CONTAINER_CREDENTIALS_RELATIVE_URI
    2. Dalam file buildspec Anda, sertakan build perintah Docker seperti berikut ini. --build-argOpsi menetapkan variabel lingkungan yang diperlukan untuk proses pembuatan Docker Anda untuk mengakses AWS kredenSIAL.

      docker build --build-arg AWS_DEFAULT_REGION=$AWS_DEFAULT_REGION --build-arg AWS_CONTAINER_CREDENTIALS_RELATIVE_URI=$AWS_CONTAINER_CREDENTIALS_RELATIVE_URI -t your-image-tag .

RequestError kesalahan batas waktu saat berjalan CodeBuild di server proxy

Masalah: Anda menerima RequestError kesalahan yang mirip dengan salah satu dari berikut ini:

  • RequestError: send request failed caused by: Post https://logs.<your-region>.amazonaws.com/: dial tcp 52.46.158.105:443: i/o timeoutdari CloudWatch log.

  • Error uploading artifacts: RequestError: send request failed caused by: Put https://your-bucket.s3.your-aws-region.amazonaws.com/*: dial tcp 52.219.96.208:443: connect: connection refuseddari Amazon S3.

Kemungkinan penyebab:

  • ssl-bumptidak dikonfigurasi dengan benar.

  • Kebijakan keamanan organisasi Anda tidak mengizinkan Anda untuk menggunakanssl_bump.

  • File buildspec Anda tidak memiliki pengaturan proxy yang ditentukan menggunakan elemen. proxy

Solusi yang disarankan:

  • Pastikan ssl-bump dikonfigurasi dengan benar. Jika Anda menggunakan Squid untuk server proxy Anda, lihatKonfigurasikan Squid sebagai server proxy eksplisit.

  • Ikuti langkah-langkah berikut untuk menggunakan titik akhir pribadi untuk Amazon S3 dan CloudWatch Log:

    1. Di tabel perutean subnet pribadi Anda, hapus aturan yang Anda tambahkan yang merutekan lalu lintas yang ditujukan untuk internet ke server proxy Anda. Untuk selengkapnya, lihat Membuat subnet di VPC Anda di Panduan Pengguna Amazon VPC.

    2. Buat titik akhir Amazon S3 pribadi dan titik akhir CloudWatch Log dan kaitkan dengan subnet pribadi Amazon VPC Anda. Untuk informasi, lihat layanan titik akhir VPC di Panduan Pengguna Amazon VPC.

    3. Konfir masikan Aktifkan Nama DNS Pribadi di Amazon VPC Anda dipilih. Untuk informasi selengkapnya, lihat Membuat titik akhir antarmuka dalam Panduan Pengguna Amazon VPC.

  • Jika Anda tidak menggunakan ssl-bump untuk server proxy eksplisit, tambahkan konfigurasi proxy ke file buildspec Anda menggunakan elemen. proxy Untuk informasi selengkapnya, lihat Jalan CodeBuild kan di server proxy eksplisit dan Sintaks Buildspec.

    version: 0.2 proxy: upload-artifacts: yes logs: yes phases: build: commands:

Bourne shell (sh) harus ada dalam gambar build

Masalah: Anda menggunakan image build yang tidak disediakan oleh AWS CodeBuild, dan build Anda gagal dengan pesan tersebutBuild container found dead before completing the build.

Kemungkinan penyebab: Bourne shell (sh) tidak termasuk dalam image build Anda. CodeBuild shperlu menjalankan perintah dan skrip build.

Solusi yang disarankan: Jika sh tidak ada dalam image build Anda, pastikan untuk menyertakannya sebelum Anda memulai build lain yang menggunakan gambar Anda. (CodeBuild sudah termasuk sh dalam gambar build-nya.)

Peringatan: “Melewatkan instalasi runtime. pemilihan versi runtime tidak didukung oleh image build ini” saat menjalankan build

Masalah: Saat Anda menjalankan build, log build berisi peringatan ini.

Kemungkinan penyebab: Build Anda tidak menggunakan versi 1.0 atau yang lebih baru dari image standar Amazon Linux 2 (AL2), atau versi 2.0 atau yang lebih baru dari gambar standar Ubuntu, dan runtime ditentukan di runtime-versions bagian dalam file buildspec Anda.

Solusi yang disarankan: Pastikan file buildspec Anda tidak berisi bagian. runtime-versions runtime-versionsBagian ini hanya diperlukan jika Anda menggunakan gambar standar Amazon Linux 2 (AL2) atau yang lebih baru atau gambar standar Ubuntu versi 2.0 atau yang lebih baru.

Kesalahan: “Tidak dapat memverifikasi JobWorker identitas” saat membuka CodeBuild konsol

Masalah: Saat Anda membuka CodeBuild konsol, pesan kesalahan “Tidak dapat memverifikasi JobWorker identitas” ditampilkan.

Kemungkinan penyebab: Peran IAM yang digunakan untuk akses konsol memiliki tag jobId dengan kunci. Kunci tag ini dicad CodeBuild angkan untuk dan akan menyebabkan kesalahan ini jika ada.

Solusi yang disarankan: U bah tag peran IAM kustom yang memiliki kunci jobId untuk memiliki kunci yang berbeda, sepertijobIdentifier.

Pembuatan gagal memulai

Masalah: Saat memulai build, Anda menerima pesan galat Build failed to start.

Kemungkinan penyebab: Jumlah build bersamaan telah tercapai.

Solusi yang disarankan: Tun ggu sampai build lain selesai, atau tingkatkan batas build bersamaan untuk proyek, dan mulai build lagi. Untuk informasi selengkapnya, lihat Konfigurasi proyek.

Mengakses GitHub metadata dalam build yang di-cache secara lokal

Masalah: Dalam beberapa kasus, direktori.git dalam build yang di-cache adalah file teks dan bukan direktori.

Kemungkinan penyebab: Ketika caching sumber lokal diaktifkan untuk build, CodeBuild membuat gitlink untuk direktori.git. Ini berarti bahwa .git direktori sebenarnya adalah file teks yang berisi jalur ke direktori.

Solusi yang disarankan: Dalam semua kasus, gunakan perintah berikut untuk mendapatkan direktori metadata Git. Perintah ini akan bekerja tidak peduli format.git:

git rev-parse --git-dir

AccessDenied: Pemilik bucket untuk grup laporan tidak cocok dengan pemilik bucket S3...

Masalah: Saat mengunggah data pengujian ke bucket Amazon S3, CodeBuild tidak dapat menulis data pengujian ke bucket.

Kemungkinan penyebab:

  • Akun yang ditentukan untuk pemilik bucket grup laporan tidak cocok dengan pemilik bucket Amazon S3.

  • Peran layanan tidak memiliki akses tulis ke bucket.

Solusi yang disarankan:

  • Ubah pemilik bucket grup laporan agar sesuai dengan pemilik bucket Amazon S3.

  • Ubah peran layanan untuk mengizinkan akses tulis ke bucket Amazon S3.

Kesalahan: “KredenSIAL Anda tidak memiliki satu atau lebih cakupan hak istimewa yang diperlukan” saat membuat CodeBuild proyek dengan CodeConnections

Masalah: Saat membuat CodeBuild proyek dengan CodeConnections, Anda tidak memiliki izin untuk menginstal webhook Bitbucket.

Kemungkinan penyebab:

  • Cakupan izin baru mungkin tidak diterima di akun Bitbucket Anda.

Solusi yang disarankan:

  • Untuk menerima izin baru, Anda harus menerima email dengan subjek berjudul Tindakan diperlukan - C akupan untuk AWS CodeStar telah diubah dikirim oleh Bitbucket,notifications-noreply@bitbucket.org. Email berisi tautan untuk memberikan izin webhook ke instalasi aplikasi CodeConnections Bitbucket yang ada.

  • Jika Anda tidak dapat menemukan email, Anda dapat memberikan izin dengan menavigasi kehttps://bitbucket.org/site/addons/reauthorize?account=<workspace-name>&addon_key=aws-codestar, atau https://bitbucket.org/site/addons/reauthorize?addon_key=aws-codestar memilih ruang kerja yang ingin Anda berikan izin webhook.

    Berikan izin webhook ke ruang kerja Anda.

Kesalahan: “Maaf, tidak ada terminal sama sekali yang diminta - tidak bisa mendapatkan input” saat membangun dengan perintah instal Ubuntu

Masalah: Jika Anda menjalankan build istimewa kontainer GPU, Anda mungkin menginstal NVIDIA Container Toolkit mengikuti prosedur ini. Dalam rilis CodeBuild gambar terbaru, CodeBuild pra-instal dan konfigurasi docker dengan gambar terbaru amazonlinux dan nvidia-container-toolkit ubuntu yang dikuratori. Mengikuti prosedur ini akan menyebabkan build dengan perintah instal Ubuntu gagal dengan kesalahan berikut:

Running command curl -fsSL https://nvidia.github.io/libnvidia-container/gpgkey | gpg --dearmor --no-tty -o /usr/share/keyrings/nvidia-container-toolkit-keyring.gpg gpg: Sorry, no terminal at all requested - can't get input curl: (23) Failed writing body

Kemungkinan penyebab: Kunci gpg sudah ada di lokasi yang sama.

Solusi yang disarankan: Sudah diinstal pada gambar. nvidia-container-toolkit Jika Anda melihat kesalahan ini, Anda dapat melewati proses install dan restart docker di buildspec Anda.

Pembuatan Bitbucket gagal dengan kesalahan otentikasi setelah menggunakan Secrets Manager OAuth

Masalah: Pembuatan menggunakan Bitbucket sebagai penyedia sumber gagal dengan kesalahan kredensi sumber. Koneksi Bitbucket dikonfigurasi menggunakan OAuth dengan AWS Secrets Manager sebagai layanan penyimpanan.

Kemungkinan penyebab: Atlassian memberlakukan token penyegaran berputar sekali pakai untuk Bitbucket OAuth. Setiap kali Anda menggunakan token penyegaran, Bitbucket membatalkannya dan mengembalikan yang baru. Untuk informasi selengkapnya, lihat token penyegaran sekali pakai Bitbucket OAuth (CHANGE-3052) di situs web pengembang Atlassian.

Solusi yang disarankan: Tambahkan secretsmanager:PutSecretValue izin ke peran CodeBuild layanan Anda. Untuk informasi selengkapnya tentang izin IAM yang diperlukan, lihatTindakan yang diperlukan untuk Manager-stored kredenSIAL Rahasia.