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
Build mungkin gagal ketika nama file memiliki non-U.S. Karakter bahasa Inggris
Build mungkin gagal saat mendapatkan parameter dari Amazon EC2 Parameter Store
Tidak dapat menemukan dan memilih gambar dasar platform Windows Server Core 2019
Perintah sebelumnya dalam file buildspec tidak dikenali oleh perintah selanjutnya
Kesalahan: “BUILD_CONTAINER_UNABLE_TO_PULL_IMAGE” saat menggunakan gambar build khusus
Kesalahan: “Tidak dapat terhubung ke daemon Docker” saat menjalankan build
Kesalahan: “Gagal mengunggah artefak: arn tidak valid” saat menjalankan build
Kesalahan: “Gambar build ini memerlukan pemilihan setidaknya satu versi runtime.”
Kesalahan: “QUEUED: INSUFFICIENT_SUBNET” saat build dalam antrian build gagal
Kesalahan: “Tidak dapat mengunduh sertifikat dari S3. AccessDenied”
RequestError kesalahan batas waktu saat berjalan CodeBuild di server proxy
Kesalahan: “Tidak dapat memverifikasi JobWorker identitas” saat membuka CodeBuild konsol
Mengakses GitHub metadata dalam build yang di-cache secara lokal
AccessDenied: Pemilik bucket untuk grup laporan tidak cocok dengan pemilik bucket S3...
Pembuatan Bitbucket gagal dengan kesalahan otentikasi setelah menggunakan Secrets Manager OAuth
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 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:
-
Tambahkan
settings.xmlfile ke kode sumber Anda. -
Dalam
settings.xmlfile ini, gunakansettings.xmlformat sebelumnya sebagai panduan untuk mendeklarasikan repositori yang Anda inginkan untuk Maven menarik dependensi build dan plugin sebagai gantinya. -
Pada
installfase proyek build Anda, instruksikan CodeBuild untuk menyalinsettings.xmlfile Anda ke/root/.m2direktori lingkungan build. Misalnya, pertimbangkan cuplikan berikut daribuildspec.ymlfile 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:GetParameterstindakan. Misalnya, pernyataan kebijakan berikut memungkinkan pemanggilanssm:GetParameterstindakan untuk mendapatkan parameter dengan nama yang dimulai dengan/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 memanggilssm:GetParameterstindakan untuk mendapatkan parameter dengan nama yang ditentukan:
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/ Misalnya, jika ekspresi reguler filter cabang Anda adalahbranchName$^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
InvalidateProjectCacheAPI. -
Peran layanan yang digunakan oleh CodeBuild tidak memiliki
s3:GetObjects3:PutObjectizin 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 imagesperintah. Untuk daftar ruang disk yang tersedia berdasarkan jenis komputasi, lihatMembangun mode dan tipe komputasi lingkungan.REPOSITORY:TAG -
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_PROXYpengaturanHTTP_PROXYdan 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:
-
Buka CodeBuild konsol di https://console.aws.amazon.com/codebuild/
. -
Di panel navigasi, pilih Bangun proyek, lalu pilih proyek build Anda.
-
Dari Edit, pilih Lingkungan.
-
Pilih Konfigurasi tambahan.
-
Dari Privileged, pilih Aktifkan tanda ini jika Anda ingin membuat gambar Docker atau ingin build Anda mendapatkan hak istimewa yang ditingkatkan. .
-
Pilih Perbarui lingkungan.
-
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
runperintah Docker seperti berikut ini. Contoh ini menggunakanaws s3 lsperintah 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_URIyour-image-tagaws 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.
-
Di Dockerfile kode sumber Anda untuk gambar Docker, tentukan instruksi berikut.
ARGARG AWS_DEFAULT_REGION ARG AWS_CONTAINER_CREDENTIALS_RELATIVE_URI -
Dalam file buildspec Anda, sertakan
buildperintah 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 -tyour-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://dari Amazon S3.your-bucket.s3.your-aws-region.amazonaws.com/*: dial tcp 52.219.96.208:443: connect: connection refused
Kemungkinan penyebab:
-
ssl-bumptidak dikonfigurasi dengan benar. -
Kebijakan keamanan organisasi Anda tidak mengizinkan Anda untuk menggunakan
ssl_bump. -
File buildspec Anda tidak memiliki pengaturan proxy yang ditentukan menggunakan elemen.
proxy
Solusi yang disarankan:
-
Pastikan
ssl-bumpdikonfigurasi 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:
-
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.
-
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.
-
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-bumpuntuk server proxy eksplisit, tambahkan konfigurasi proxy ke file buildspec Anda menggunakan elemen.proxyUntuk 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 ke
https://bitbucket.org/site/addons/reauthorize?account=, atau<workspace-name>&addon_key=aws-codestarhttps://bitbucket.org/site/addons/reauthorize?addon_key=aws-codestarmemilih ruang kerja yang ingin Anda berikan izin webhook.
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 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)
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.