Buat proyek build (AWS CLI) - AWS CodeBuild

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

Buat proyek build (AWS CLI)

Untuk informasi lebih lanjut tentang menggunakan AWS CLI with CodeBuild, lihatReferensi baris perintah.

Untuk membuat proyek CodeBuild build menggunakan AWS CLI, Anda membuat struktur Proyek berformat JSON, mengisi struktur, dan memanggil create-projectperintah untuk membuat proyek.

Buat file JSON

Buat file JSON kerangka dengan create-projectperintah, menggunakan opsi: --generate-cli-skeleton

aws codebuild create-project --generate-cli-skeleton > <json-file>

<json-file>Ini membuat file JSON dengan path dan nama file yang ditentukan oleh.

Isi file JSON

Ubah data JSON sebagai berikut dan simpan hasil Anda.

{ "name": "<project-name>", "description": "<description>", "source": { "type": "CODECOMMIT" | "CODEPIPELINE" | "GITHUB" | "GITHUB_ENTERPRISE" | "GITLAB" | "GITLAB_SELF_MANAGED" | "BITBUCKET" | "S3" | "NO_SOURCE", "location": "<source-location>", "gitCloneDepth": "<git-clone-depth>", "buildspec": "<buildspec>", "InsecureSsl": "<insecure-ssl>", "reportBuildStatus": "<report-build-status>", "buildStatusConfig": { "context": "<context>", "targetUrl": "<target-url>" }, "gitSubmodulesConfig": { "fetchSubmodules": "<fetch-submodules>" }, "auth": { "type": "<auth-type>", "resource": "<auth-resource>" }, "sourceIdentifier": "<source-identifier>" }, "secondarySources": [ { "type": "CODECOMMIT" | "CODEPIPELINE" | "GITHUB" | "GITHUB_ENTERPRISE" | "GITLAB" | "GITLAB_SELF_MANAGED" | "BITBUCKET" | "S3" | "NO_SOURCE", "location": "<source-location>", "gitCloneDepth": "<git-clone-depth>", "buildspec": "<buildspec>", "InsecureSsl": "<insecure-ssl>", "reportBuildStatus": "<report-build-status>", "auth": { "type": "<auth-type>", "resource": "<auth-resource>" }, "sourceIdentifier": "<source-identifier>" } ], "secondarySourceVersions": [ { "sourceIdentifier": "<secondary-source-identifier>", "sourceVersion": "<secondary-source-version>" } ], "sourceVersion": "<source-version>", "artifacts": { "type": "CODEPIPELINE" | "S3" | "NO_ARTIFACTS", "location": "<artifacts-location>", "path": "<artifacts-path>", "namespaceType": "<artifacts-namespacetype>", "name": "<artifacts-name>", "overrideArtifactName": "<override-artifact-name>", "packaging": "<artifacts-packaging>" }, "secondaryArtifacts": [ { "type": "CODEPIPELINE" | "S3" | "NO_ARTIFACTS", "location": "<secondary-artifact-location>", "path": "<secondary-artifact-path>", "namespaceType": "<secondary-artifact-namespaceType>", "name": "<secondary-artifact-name>", "packaging": "<secondary-artifact-packaging>", "artifactIdentifier": "<secondary-artifact-identifier>" } ], "cache": { "type": "<cache-type>", "location": "<cache-location>", "mode": [ "<cache-mode>" ] }, "environment": { "type": "LINUX_CONTAINER" | "LINUX_GPU_CONTAINER" | "ARM_CONTAINER" | "WINDOWS_SERVER_2019_CONTAINER" | "WINDOWS_SERVER_2022_CONTAINER", "image": "<image>", "computeType": "BUILD_GENERAL1_SMALL" | "BUILD_GENERAL1_MEDIUM" | "BUILD_GENERAL1_LARGE" | "BUILD_GENERAL1_2XLARGE", "certificate": "<certificate>", "environmentVariables": [ { "name": "<environmentVariable-name>", "value": "<environmentVariable-value>", "type": "<environmentVariable-type>" } ], "registryCredential": [ { "credential": "<credential-arn-or-name>", "credentialProvider": "<credential-provider>" } ], "imagePullCredentialsType": "CODEBUILD" | "SERVICE_ROLE", "privilegedMode": "<privileged-mode>" }, "serviceRole": "<service-role>", "timeoutInMinutes": <timeout>, "queuedTimeoutInMinutes": <queued-timeout>, "encryptionKey": "<encryption-key>", "tags": [ { "key": "<tag-key>", "value": "<tag-value>" } ], "vpcConfig": { "securityGroupIds": [ "<security-group-id>" ], "subnets": [ "<subnet-id>" ], "vpcId": "<vpc-id>" }, "badgeEnabled": "<badge-enabled>", "logsConfig": { "cloudWatchLogs": { "status": "<cloudwatch-logs-status>", "groupName": "<group-name>", "streamName": "<stream-name>" }, "s3Logs": { "status": "<s3-logs-status>", "location": "<s3-logs-location>", "encryptionDisabled": "<s3-logs-encryption-disabled>" } }, "fileSystemLocations": [ { "type": "EFS", "location": "<EFS-DNS-name-1>:/<directory-path>", "mountPoint": "<mount-point>", "identifier": "<efs-identifier>", "mountOptions": "<efs-mount-options>" } ], "buildBatchConfig": { "serviceRole": "<batch-service-role>", "combineArtifacts": <combine-artifacts>, "restrictions": { "maximumBuildsAllowed": <max-builds>, "computeTypesAllowed": [ "<compute-type>" ] }, "timeoutInMins": <batch-timeout>, "batchReportMode": "REPORT_AGGREGATED_BATCH" | "REPORT_INDIVIDUAL_BUILDS" }, "concurrentBuildLimit": <concurrent-build-limit> }

Ganti yang berikut ini:

name

Wajib. Nama untuk proyek pembangunan ini. Nama ini harus unik di semua proyek build di AWS akun Anda.

deskripsi

Tidak wajib. Deskripsi untuk proyek pembangunan ini.

sumber

Wajib. ProjectSourceObjek yang berisi informasi tentang pengaturan kode sumber proyek build ini. Setelah Anda menambahkan source objek, Anda dapat menambahkan hingga 12 sumber lagi menggunakan fileSecondarySources. Pengaturan ini meliputi yang berikut:

sumber/jenis

Wajib. Jenis repositori yang berisi kode sumber untuk membangun. Nilai yang valid meliputi:

  • CODECOMMIT

  • CODEPIPELINE

  • GITHUB

  • GITHUB_ENTERPRISE

  • GITLAB

  • GITLAB_SELF_MANAGED

  • BITBUCKET

  • S3

  • NO_SOURCE

Jika Anda menggunakanNO_SOURCE, buildspec tidak dapat berupa file karena proyek tidak memiliki sumber. Sebagai gantinya, Anda harus menggunakan buildspec atribut untuk menentukan string berformat YAML untuk buildspec Anda. Untuk informasi selengkapnya, lihat Proyek tanpa sampel sumber.

sumber/lokasi

Diperlukan kecuali Anda menyetel <source-type>keCODEPIPELINE. Lokasi kode sumber untuk jenis repositori yang ditentukan.

  • Untuk CodeCommit, URL kloning HTTPS ke repositori yang berisi kode sumber dan file buildspec (misalnya,). https://git-codecommit.<region-id>.amazonaws.com/v1/repos/<repo-name>

  • Untuk Amazon S3, nama bucket input build, diikuti dengan path dan nama file ZIP yang berisi kode sumber dan buildspec. Sebagai contoh:

    • Untuk file ZIP yang terletak di root bucket input:<bucket-name>/<object-name>.zip.

    • Untuk file ZIP yang terletak di subfolder di bucket input:<bucket-name>/<subfoler-path>/<object-name>.zip.

  • Untuk GitHub, URL kloning HTTPS ke repositori yang berisi kode sumber dan file buildspec. URL harus berisi github.com. Anda harus menghubungkan AWS akun Anda ke GitHub akun Anda. Untuk melakukan ini, gunakan CodeBuild konsol untuk membuat proyek build.

    • Pilih Otorisasi aplikasi. (Setelah Anda terhubung ke GitHub akun Anda, Anda tidak perlu menyelesaikan pembuatan proyek build. Anda dapat menutup CodeBuild konsol.)

  • Untuk GitHub Enterprise Server, HTTP atau HTTPS mengkloning URL ke repositori yang berisi kode sumber dan file buildspec. Anda juga harus menghubungkan AWS akun Anda ke akun GitHub Enterprise Server Anda. Untuk melakukan ini, gunakan CodeBuild konsol untuk membuat proyek build.

    1. Buat token akses pribadi di Server GitHub Perusahaan.

    2. Salin token ini ke clipboard Anda sehingga Anda dapat menggunakannya saat membuat proyek Anda. CodeBuild Untuk informasi selengkapnya, lihat Membuat token akses pribadi untuk baris perintah di situs web GitHub Bantuan.

    3. Saat Anda menggunakan konsol untuk membuat CodeBuild proyek Anda, di Sumber, untuk penyedia Sumber, pilih GitHubEnterprise.

    4. Untuk Token Akses Pribadi, tempel token yang disalin ke clipboard Anda. Pilih Simpan Token. CodeBuild Akun Anda sekarang terhubung ke akun GitHub Enterprise Server Anda.

  • Untuk GitLab dan GitLab dikelola sendiri, HTTPS mengkloning URL ke repositori yang berisi kode sumber dan file buildspec. Perhatikan bahwa jika Anda menggunakan GitLab, URL harus berisi gitlab.com. Jika Anda menggunakan GitLab self-managed, URL tidak perlu berisi gitlab.com. Anda harus menghubungkan AWS akun Anda ke akun Anda GitLab atau yang GitLab dikelola sendiri. Untuk melakukan ini, gunakan CodeBuild konsol untuk membuat proyek build.

    • Di panel navigasi Alat Pengembang, pilih Pengaturan, Koneksi, lalu Buat koneksi. Di halaman ini, buat koneksi yang GitLab dikelola sendiri GitLab atau yang dikelola sendiri, lalu pilih Connect to GitLab.

  • Untuk Bitbucket, URL kloning HTTPS ke repositori yang berisi kode sumber dan file buildspec. URL harus berisi bitbucket.org. Anda juga harus menghubungkan AWS akun Anda ke akun Bitbucket Anda. Untuk melakukan ini, gunakan CodeBuild konsol untuk membuat proyek build.

    1. Ketika Anda menggunakan konsol untuk menghubungkan (atau menghubungkan kembali) dengan Bitbucket, pada halaman Mengonfirmasi akses ke akun Anda di Bitbucket, pilih Berikan akses. (Setelah Anda terhubung ke akun Bitbucket Anda, Anda tidak perlu menyelesaikan pembuatan proyek build. Anda dapat menutup CodeBuild konsol.)

  • Untuk AWS CodePipeline, jangan tentukan location nilai untuksource. CodePipeline mengabaikan nilai ini karena saat Anda membuat pipeline CodePipeline, Anda menentukan lokasi kode sumber di tahap Sumber pipeline.

sumber/ gitCloneDepth

Tidak wajib. Kedalaman riwayat yang akan diunduh. Nilai minimum adalah 0. Jika nilai ini adalah 0, lebih besar dari 25, atau tidak disediakan, maka riwayat penuh diunduh dengan setiap proyek build. Jika jenis sumber Anda adalah Amazon S3, nilai ini tidak didukung.

sumber/buildspec

Tidak wajib. Definisi spesifikasi build atau file yang akan digunakan. Jika nilai ini tidak disediakan atau diatur ke string kosong, kode sumber harus berisi buildspec.yml file dalam direktori root nya. Jika nilai ini disetel, itu bisa berupa definisi buildspec sebaris, jalur ke file buildspec alternatif relatif terhadap direktori root sumber utama Anda, atau jalur ke bucket S3. Bucket harus berada di AWS Wilayah yang sama dengan proyek pembangunan. Tentukan file buildspec menggunakan ARN (misalnya,). arn:aws:s3:::<my-codebuild-sample2>/buildspec.yml Untuk informasi selengkapnya, lihat Nama file Buildspec dan lokasi penyimpanan.

sumber/autentikasi

Jangan gunakan . Objek ini hanya digunakan oleh CodeBuild konsol.

sumber/ reportBuildStatus

Menentukan apakah akan mengirim status awal dan penyelesaian build kepada penyedia sumber Anda. Jika Anda mengatur ini dengan penyedia sumber selain GitHub, GitHub Enterprise Server, atau Bitbucket, akan invalidInputException dilemparkan.

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.

sumber/ buildStatusConfig

Berisi informasi yang menentukan cara proyek CodeBuild build melaporkan status build ke penyedia sumber. Opsi ini hanya digunakan ketika jenis sumbernyaGITHUB,GITHUB_ENTERPRISE, atauBITBUCKET.

sumber//konteks buildStatusConfig

Untuk sumber Bitbucket, parameter ini digunakan untuk name parameter dalam status komit Bitbucket. Untuk GitHub sumber, parameter ini digunakan untuk context parameter dalam status GitHub komit.

Misalnya, Anda dapat memiliki context berisi nomor build dan pemicu webhook menggunakan variabel CodeBuild lingkungan:

AWS CodeBuild sample-project Build #$CODEBUILD_BUILD_NUMBER - $CODEBUILD_WEBHOOK_TRIGGER

Ini menghasilkan konteks yang muncul seperti ini untuk build #24 yang dipicu oleh peristiwa permintaan tarik webhook:

AWS CodeBuild sample-project Build #24 - pr/8
sumber//TargeTurl buildStatusConfig

Untuk sumber Bitbucket, parameter ini digunakan untuk url parameter dalam status komit Bitbucket. Untuk GitHub sumber, parameter ini digunakan untuk target_url parameter dalam status GitHub komit.

Misalnya, Anda dapat mengatur targetUrl ke https://aws.amazon.com/codebuild/<path to build> dan status komit akan ditautkan ke URL ini.

Anda juga dapat menyertakan variabel CodeBuild lingkungan targetUrl untuk menambahkan informasi tambahan ke URL. Misalnya, untuk menambahkan wilayah build ke URL, setel targetUrl ke:

"targetUrl": "https://aws.amazon.com/codebuild/<path to build>?region=$AWS_REGION"

Jika wilayah build adalahus-east-2, ini akan berkembang menjadi:

https://aws.amazon.com/codebuild/<path to build>?region=us-east-2
sumber/ gitSubmodulesConfig

Tidak wajib. Informasi tentang konfigurasi submodul Git. Digunakan dengan CodeCommit, GitHub, Server GitHub Perusahaan, dan Bitbucket saja.

sumber//fetchSubmodules gitSubmodulesConfig

Setel fetchSubmodules ke true jika Anda ingin menyertakan submodul Git dalam repositori Anda. Submodul Git yang disertakan harus dikonfigurasi sebagai HTTPS.

sumber/ InsecureSsl

Tidak wajib. Digunakan dengan GitHub Enterprise Server saja. Tetapkan nilai ini true untuk mengabaikan peringatan TLS saat menghubungkan ke repositori proyek GitHub Enterprise Server Anda. Nilai default adalah false. InsecureSsl harus digunakan hanya untuk tujuan pengujian. Ini tidak boleh digunakan di lingkungan produksi.

sumber/SourceIdentifier

Pengidentifikasi yang ditentukan pengguna untuk sumber proyek. Opsional untuk sumber utama. Diperlukan untuk sumber sekunder.

SecondarySources

Tidak wajib. Array ProjectSourceobjek yang berisi informasi tentang sumber sekunder untuk proyek build. Anda dapat menambahkan hingga 12 sumber sekunder. secondarySourcesObjek menggunakan properti yang sama yang digunakan oleh sumber objek. Dalam objek sumber sekunder, sourceIdentifier diperlukan.

secondarySourceVersions

Tidak wajib. Susunan objek ProjectSourceVersion. Jika secondarySourceVersions ditentukan pada level build, maka mereka lebih diutamakan daripada ini.

SourceVersion

Tidak wajib. Versi input build yang akan dibangun untuk proyek ini. Jika tidak ditentukan, versi terbaru digunakan. Jika ditentukan, itu harus berupa salah satu dari:

  • Untuk CodeCommit, ID komit, cabang, atau tag Git yang akan digunakan.

  • Untuk GitHub, ID komit, ID permintaan tarik, nama cabang, atau nama tag yang sesuai dengan versi kode sumber yang ingin Anda buat. Jika ID permintaan tarik ditentukan, itu harus menggunakan format pr/pull-request-ID (misalnya pr/25). Jika nama cabang ditentukan, ID melakukan HEAD cabang digunakan. Jika tidak ditentukan, ID melakukan HEAD cabang default digunakan.

  • Untuk GitLab, ID komit, ID permintaan tarik, nama cabang, nama tag, atau referensi, dan ID komit. Untuk informasi selengkapnya, lihat Contoh versi sumber dengan AWS CodeBuild.

  • Untuk Bitbucket, ID komit, nama cabang, atau nama tag yang sesuai dengan versi kode sumber yang ingin Anda buat. Jika nama cabang ditentukan, ID melakukan HEAD cabang digunakan. Jika tidak ditentukan, ID melakukan HEAD cabang default digunakan.

  • Untuk Amazon S3, ID versi objek yang mewakili file ZIP input build yang akan digunakan.

Jika sourceVersion ditentukan pada tingkat pembuatan, maka versi tersebut akan mengambil alih sourceVersion ini (di tingkat proyek). Untuk informasi selengkapnya, lihat Contoh versi sumber dengan AWS CodeBuild.

artefak

Wajib. ProjectArtifactsObjek yang berisi informasi tentang pengaturan artefak keluaran proyek build ini. Setelah Anda menambahkan artifacts objek, Anda dapat menambahkan hingga 12 artefak lagi menggunakan. secondaryArtifacts Pengaturan ini meliputi yang berikut:

artefak/jenis

Wajib. Jenis artefak output build. Nilai yang valid adalah:

  • CODEPIPELINE

  • NO_ARTIFACTS

  • S3

artefak/lokasi

Hanya digunakan dengan tipe S3 artefak. Tidak digunakan untuk jenis artefak lainnya.

Nama bucket keluaran yang Anda buat atau identifikasi dalam prasyarat.

artefak/jalur

Hanya digunakan dengan tipe S3 artefak. Tidak digunakan untuk jenis artefak lainnya.

Jalur di bucket output untuk menempatkan file ZIP atau folder. Jika Anda tidak menentukan nilai untukpath, CodeBuild gunakan namespaceType (jika ditentukan) dan name untuk menentukan jalur dan nama file atau folder ZIP keluaran build. Misalnya, jika Anda menentukan MyPath untuk path dan MyArtifact.zip untukname, jalur dan nama akan menjadiMyPath/MyArtifact.zip.

artefak/Namespacetype

Hanya digunakan dengan tipe S3 artefak. Tidak digunakan untuk jenis artefak lainnya.

Namespace dari file atau folder ZIP keluaran build. Nilai yang valid mencakup BUILD_ID dan NONE. Gunakan BUILD_ID untuk menyisipkan ID build ke jalur file atau folder ZIP keluaran build. Jika tidak sesuai, gunakan NONE. Jika Anda tidak menentukan nilai untuknamespaceType, CodeBuild gunakan path (jika ditentukan) dan name untuk menentukan jalur dan nama file atau folder ZIP keluaran build. Misalnya, jika Anda menentukan MyPath untukpath, BUILD_ID untuknamespaceType, dan MyArtifact.zip untukname, jalur dan nama akan menjadiMyPath/build-ID/MyArtifact.zip.

artefak/nama

Hanya digunakan dengan tipe S3 artefak. Tidak digunakan untuk jenis artefak lainnya.

Nama file ZIP keluaran build atau folder di dalamnyalocation. Misalnya, jika Anda menentukan MyPath untuk path dan MyArtifact.zip untukname, jalur dan nama akan menjadiMyPath/MyArtifact.zip.

artefak/ overrideArtifactName

Hanya digunakan dengan tipe artefak S3. Tidak digunakan untuk jenis artefak lainnya.

Tidak wajib. Jika disetel ketrue, nama yang ditentukan dalam artifacts blok file buildspec akan diganti. name Untuk informasi selengkapnya, lihat Buat referensi spesifikasi untuk CodeBuild.

artefak/kemasan

Hanya digunakan dengan tipe S3 artefak. Tidak digunakan untuk jenis artefak lainnya.

Tidak wajib. Menentukan bagaimana untuk paket artefak. Nilai yang diizinkan adalah:

NONE

Buat folder yang berisi artefak build. Ini adalah nilai default.

ZIP

Buat file ZIP yang berisi artefak build.

secondaryArtifacts

Tidak wajib. Array ProjectArtifactsobjek yang berisi informasi tentang pengaturan artefak sekunder untuk proyek build. Anda dapat menambahkan hingga 12 artefak sekunder. secondaryArtifactsMenggunakan banyak pengaturan yang sama yang digunakan oleh artefak objek.

cache

Wajib. ProjectCacheObjek yang berisi informasi tentang pengaturan cache proyek build ini. Untuk informasi selengkapnya, lihat Membangun caching.

lingkungan

Wajib. ProjectEnvironmentObjek yang berisi informasi tentang pengaturan lingkungan build proyek ini. Pengaturan ini meliputi:

lingkungan/tipe

Wajib. Jenis lingkungan bangunan. Untuk informasi selengkapnya, lihat mengetik Referensi CodeBuild API.

lingkungan/gambar

Wajib. Pengidentifikasi gambar Docker yang digunakan oleh lingkungan build ini. Biasanya, identifier ini dinyatakan sebagai image-name: tag. Misalnya, di repositori Docker yang CodeBuild digunakan untuk mengelola gambar Docker-nya, ini bisa jadi. aws/codebuild/standard:5.0 Di Docker Hub,maven:3.3.9-jdk-8. Di Amazon ECR,account-id.dkr.ecr.region-id.amazonaws.com/your-Amazon-ECR-repo-name:tag. Untuk informasi selengkapnya, lihat Gambar Docker disediakan oleh CodeBuild.

lingkungan/ComputeType

Wajib. Menentukan sumber daya komputasi yang digunakan oleh lingkungan build ini. Untuk informasi selengkapnya, lihat ComputeType di Referensi API. CodeBuild

lingkungan/sertifikat

Tidak wajib. ARN bucket Amazon S3, awalan jalur, dan kunci objek yang berisi sertifikat yang disandikan PEM. Kunci objek dapat berupa file.pem atau file.zip yang berisi sertifikat yang dikodekan PEM. Misalnya, jika nama bucket Amazon S3 Anda, awalan jalur Anda adalah<my-bucket>, dan nama kunci objek Anda <cert><certificate.pem>, maka format yang dapat diterima untuk certificate are atau. <my-bucket/cert/certificate.pem> arn:aws:s3:::<my-bucket/cert/certificate.pem>

lingkungan/lingkunganVariabel

Tidak wajib. Array EnvironmentVariableobjek yang berisi variabel lingkungan yang ingin Anda tentukan untuk lingkungan build ini. Setiap variabel lingkungan dinyatakan sebagai objek yang berisiname,value, dan type dariname,value, dantype.

Konsol dan AWS CLI pengguna dapat melihat semua variabel lingkungan. Jika Anda tidak memiliki kekhawatiran tentang visibilitas variabel lingkungan Anda, atur name danvalue, dan atur type kePLAINTEXT.

Kami menyarankan Anda menyimpan variabel lingkungan dengan nilai sensitif, seperti ID kunci AWS akses, kunci akses AWS rahasia, atau kata sandi, sebagai parameter di Amazon EC2 Systems Manager Parameter Store AWS Secrets Manager atau. Untukname, untuk parameter yang disimpan itu, tetapkan pengenal CodeBuild untuk referensi.

Jika Anda menggunakan Amazon EC2 Systems Manager Parameter Store, value untuk, tetapkan nama parameter sebagai disimpan di Parameter Store. Atur type ke PARAMETER_STORE. Menggunakan parameter bernama /CodeBuild/dockerLoginPassword sebagai contoh, atur name keLOGIN_PASSWORD. Atur value ke /CodeBuild/dockerLoginPassword. Atur type ke PARAMETER_STORE.

penting

Jika Anda menggunakan Amazon EC2 Systems Manager Parameter Store, sebaiknya Anda menyimpan parameter dengan nama parameter yang dimulai /CodeBuild/ dengan (misalnya/CodeBuild/dockerLoginPassword,). Anda dapat menggunakan CodeBuild konsol untuk membuat parameter di Amazon EC2 Systems Manager. Pilih Buat parameter, lalu ikuti instruksi di kotak dialog. (Di kotak dialog itu, untuk kunci KMS, Anda dapat menentukan ARN kunci di AWS KMS akun Anda. Amazon EC2 Systems Manager menggunakan kunci ini untuk mengenkripsi nilai parameter selama penyimpanan dan mendekripsi selama pengambilan.) Jika Anda menggunakan CodeBuild konsol untuk membuat parameter, konsol memulai nama parameter dengan /CodeBuild/ saat sedang disimpan. Untuk informasi selengkapnya, lihat Systems Manager Parameter Store dan Systems Manager Parameter Store Console Walkthrough di Panduan Pengguna Amazon EC2 Systems Manager.

Jika project build Anda mengacu pada parameter yang disimpan di Amazon EC2 Systems Manager Parameter Store, peran layanan project build harus mengizinkan tindakan ssm:GetParameters tersebut. Jika Anda memilih Peran layanan baru lebih awal, CodeBuild sertakan tindakan ini dalam peran layanan default untuk proyek build Anda. Namun, jika Anda memilih Peran layanan yang ada, Anda harus menyertakan tindakan ini ke peran layanan Anda secara terpisah.

Jika project build Anda merujuk ke parameter yang disimpan di Amazon EC2 Systems Manager Parameter Store dengan nama parameter yang tidak dimulai/CodeBuild/, dan Anda memilih Peran layanan baru, Anda harus memperbarui peran layanan tersebut untuk mengizinkan akses ke nama parameter yang tidak dimulai/CodeBuild/. Ini karena peran layanan itu memungkinkan akses hanya ke nama parameter yang dimulai dengan/CodeBuild/.

Jika Anda memilih Peran layanan baru, peran layanan menyertakan izin untuk mendekripsi semua parameter di bawah /CodeBuild/ namespace di Amazon EC2 Systems Manager Parameter Store.

Variabel lingkungan yang Anda tetapkan menggantikan variabel lingkungan yang ada. Misalnya, jika image Docker sudah berisi variabel lingkungan bernama MY_VAR dengan nilaimy_value, dan Anda menetapkan variabel lingkungan bernama MY_VAR dengan nilaiother_value, my_value maka diganti denganother_value. Demikian pula, jika image Docker sudah berisi variabel lingkungan bernama PATH dengan nilai/usr/local/sbin:/usr/local/bin, dan Anda menetapkan variabel lingkungan bernama PATH dengan nilai$PATH:/usr/share/ant/bin, /usr/local/sbin:/usr/local/bin maka digantikan oleh nilai $PATH:/usr/share/ant/bin literal.

Jangan mengatur variabel lingkungan apa pun dengan nama yang dimulai denganCODEBUILD_. Awalan ini dicadangkan untuk penggunaan internal .

Jika variabel lingkungan dengan nama yang sama didefinisikan di beberapa tempat, nilainya ditentukan sebagai berikut:

  • Nilai dalam panggilan operasi start build lebih diutamakan.

  • Nilai dalam definisi proyek build akan diutamakan berikutnya.

  • Nilai dalam deklarasi buildspec diutamakan paling rendah.

Jika Anda menggunakan Secrets Manager, untukvalue, tetapkan nama parameter sebagai disimpan di Secrets Manager. Atur type ke SECRETS_MANAGER. Menggunakan rahasia bernama /CodeBuild/dockerLoginPassword sebagai contoh, atur name keLOGIN_PASSWORD. Atur value ke /CodeBuild/dockerLoginPassword. Atur type ke SECRETS_MANAGER.

penting

Jika Anda menggunakan Secrets Manager, kami sarankan Anda menyimpan rahasia dengan nama yang dimulai dengan /CodeBuild/ (misalnya,/CodeBuild/dockerLoginPassword). Untuk informasi lebih lanjut, lihat Apa itu AWS Secrets Manager? di Panduan Pengguna AWS Secrets Manager .

Jika proyek build Anda mengacu pada rahasia yang disimpan di Secrets Manager, peran layanan proyek build harus mengizinkan secretsmanager:GetSecretValue tindakan tersebut. Jika Anda memilih Peran layanan baru lebih awal, CodeBuild sertakan tindakan ini dalam peran layanan default untuk proyek build Anda. Namun, jika Anda memilih Peran layanan yang ada, Anda harus menyertakan tindakan ini ke peran layanan Anda secara terpisah.

Jika proyek build mengacu pada rahasia yang disimpan di Secrets Manager dengan nama rahasia yang tidak dimulai/CodeBuild/, dan Anda memilih Peran layanan baru, Anda harus memperbarui peran layanan untuk mengizinkan akses ke nama rahasia yang tidak dimulai/CodeBuild/. Ini karena peran layanan memungkinkan akses hanya ke nama rahasia yang dimulai dengan/CodeBuild/.

Jika Anda memilih Peran layanan baru, peran layanan menyertakan izin untuk mendekripsi semua rahasia di bawah /CodeBuild/ namespace di Secrets Manager.

lingkungan/registryCredential

Tidak wajib. RegistryCredentialObjek yang menentukan kredensyal yang menyediakan akses ke registri Docker pribadi.

Lingkungan/RegistryCredential/kredensi

Menentukan ARN atau nama kredensional yang dibuat menggunakan. AWS Managed Services Anda dapat menggunakan nama kredensialnya hanya jika ada di Wilayah Anda saat ini.

Lingkungan/RegistryCredential/CredentialProvider

Satu-satunya nilai yang valid adalah SECRETS_MANAGER.

Ketika ini diatur:

  • imagePullCredentials harus diatur ke SERVICE_ROLE.

  • Gambar tidak dapat berupa gambar yang dikuratori atau gambar Amazon ECR.

lingkungan/Jenis imagePullCredentials

Tidak wajib. Jenis kredenal yang CodeBuild digunakan untuk menarik gambar di build Anda. Ada dua nilai yang valid:

CODEBUILD

CODEBUILDmenentukan yang CodeBuild menggunakan kredensialnya sendiri. Anda harus mengedit kebijakan repositori Amazon ECR Anda untuk mempercayai prinsip layanan. CodeBuild

SERVICE_ROLE

Menentukan yang CodeBuild menggunakan peran layanan proyek build Anda.

Saat Anda menggunakan gambar registri lintas akun atau pribadi, Anda harus menggunakan SERVICE_ROLE kredensional. Saat Anda menggunakan gambar yang CodeBuild dikuratori, Anda harus menggunakan CODEBUILD kredensional.

lingkungan/PrivilegedMode

Setel ke true hanya jika Anda berencana menggunakan proyek build ini untuk membangun image Docker. Jika tidak, semua build terkait yang mencoba berinteraksi dengan daemon Docker gagal. Anda juga harus memulai daemon Docker sehingga build Anda dapat berinteraksi dengannya. Salah satu cara untuk melakukannya adalah dengan menginisialisasi daemon Docker di install fase file buildspec Anda dengan menjalankan perintah build berikut. Jangan jalankan perintah ini jika Anda menentukan image lingkungan build yang disediakan oleh CodeBuild dengan dukungan Docker.

catatan

Secara default, daemon Docker diaktifkan untuk build non-VPC. Jika Anda ingin menggunakan kontainer Docker untuk build VPC, lihat Runtime Privilege dan Kemampuan Linux di situs web Docker Docs dan aktifkan mode istimewa. Juga, Windows tidak mendukung mode istimewa.

- 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"

serviceRole

Wajib. ARN dari peran layanan CodeBuild digunakan untuk berinteraksi dengan layanan atas nama pengguna (misalnya,arn:aws:iam::account-id:role/role-name).

timeoutInMinutes

Tidak wajib. Jumlah menit, antara 5 hingga 480 (8 jam), setelah itu CodeBuild menghentikan build jika tidak selesai. Jika tidak ditentukan, default 60 digunakan. Untuk menentukan apakah dan kapan CodeBuild menghentikan build karena batas waktu, jalankan batch-get-builds perintah. Untuk menentukan apakah build telah berhenti, lihat di output untuk buildStatus nilaiFAILED. Untuk menentukan kapan waktu build habis, lihat di output untuk endTime nilai yang terkait dengan phaseStatus nilai. TIMED_OUT

queuedTimeoutInMenit

Tidak wajib. Jumlah menit, antara 5 hingga 480 (8 jam), setelah itu CodeBuild menghentikan build jika masih antri. Jika tidak ditentukan, default 60 digunakan.

encryptionKey

Tidak wajib. Alias atau ARN yang digunakan CodeBuild oleh untuk mengenkripsi output build. AWS KMS key Jika Anda menentukan alias, gunakan format arn:aws:kms:region-ID:account-ID:key/key-ID atau, jika ada alias, gunakan formatnya. alias/key-alias Jika tidak ditentukan, kunci KMS yang AWS dikelola untuk Amazon S3 digunakan.

tag

Tidak wajib. Array objek Tag yang menyediakan tag yang ingin Anda kaitkan dengan proyek build ini. Anda dapat menentukan hingga 50 tag. Tag ini dapat digunakan oleh AWS layanan apa pun yang mendukung tag proyek CodeBuild build. Setiap tag dinyatakan sebagai objek dengan a key dan avalue.

vpcConfig

Tidak wajib. VpcConfigObjek yang berisi informasi informasi tentang konfigurasi VPC untuk proyek Anda. Untuk informasi selengkapnya, lihat Gunakan AWS CodeBuild dengan Amazon Virtual Private Cloud.

Properti ini meliputi:

vpcId

Wajib. ID VPC yang CodeBuild menggunakan. Jalankan perintah ini untuk mendapatkan daftar semua ID VPC di Wilayah Anda:

aws ec2 describe-vpcs --region <region-ID>
subnet

Wajib. Array ID subnet yang menyertakan sumber daya yang digunakan oleh CodeBuild. Jalankan perintah ini untuk mendapatkan ID ini:

aws ec2 describe-subnets --filters "Name=vpc-id,Values=<vpc-id>" --region <region-ID>
securityGroupIds

Wajib. Array ID grup keamanan yang digunakan oleh CodeBuild untuk memungkinkan akses ke sumber daya di VPC. Jalankan perintah ini untuk mendapatkan ID ini:

aws ec2 describe-security-groups --filters "Name=vpc-id,Values=<vpc-id>" --<region-ID>

badgeEnabled

Tidak wajib. Menentukan apakah akan menyertakan lencana build dengan proyek Anda CodeBuild . Setel true untuk mengaktifkan lencana build, atau false lainnya. Untuk informasi selengkapnya, lihat Buat sampel lencana dengan CodeBuild.

LogsConfig

LogsConfigObjek yang berisi informasi tentang lokasi log build ini.

LogsConfig/ cloudWatchLogs

CloudWatchLogsConfigObjek yang berisi informasi tentang mendorong log ke CloudWatch Log.

LogsConfig/ S3logs

LogsConfigObjek S3 yang berisi informasi tentang mendorong log ke Amazon S3.

fileSystemLocations

Tidak wajib. Array ProjectFileSystemsLocationobjek yang berisi informasi tentang konfigurasi Amazon EFS Anda.

buildBatchConfig

Tidak wajib. buildBatchConfigObjek adalah ProjectBuildBatchConfigstruktur yang berisi informasi konfigurasi build batch untuk proyek.

buildBatchConfig/ServiceRole

Peran layanan ARN untuk proyek pembuatan batch.

buildBatchConfig/Combineartifacts

Nilai Boolean yang menentukan apakah akan menggabungkan artefak build untuk batch build menjadi satu lokasi artefak.

buildBatchConfig/batasan/ maximumBuildsAllowed

Jumlah maksimum build yang diizinkan.

buildBatchConfig/batasan/ computeTypesAllowed

Array string yang menentukan jenis komputasi yang diizinkan untuk pembangunan batch. Lihat Membangun tipe komputasi lingkungan untuk nilai ini.

buildBatchConfig/timeoutInMinutes

Jumlah waktu maksimum, dalam hitungan menit, pembuatan batch harus diselesaikan.

buildBatchConfig/batchReportMode

Menentukan cara laporan status build dikirim ke penyedia sumber untuk build batch. Nilai yang valid meliputi:

REPORT_AGGREGATED_BATCH

(Default) Gabungkan semua status build ke dalam satu laporan status.

REPORT_INDIVIDUAL_BUILDS

Kirim laporan status terpisah untuk setiap build individu.

concurrentBuildLimit

Jumlah maksimum membangun bersamaan yang diizinkan untuk proyek ini.

Pembuatan baru hanya dimulai jika jumlah pembuatan saat ini kurang dari atau sama dengan batas ini. Jika jumlah pembuatan saat ini memenuhi batas ini, pembuatan baru ditutup dan tidak dijalankan.

Buat proyek

Untuk membuat proyek, jalankan create-project perintah lagi, meneruskan file JSON Anda:

aws codebuild create-project --cli-input-json file://<json-file>

Jika berhasil, representasi JSON dari objek Project muncul di output konsol. Lihat Sintaks CreateProject Respons untuk contoh data ini.

Kecuali untuk nama proyek build, Anda dapat mengubah pengaturan proyek build apa pun nanti. Untuk informasi selengkapnya, lihat Mengubah setelan proyek pembangunan (AWS CLI).

Untuk mulai menjalankan build, lihatJalankan build (AWS CLI).

Jika kode sumber Anda disimpan dalam GitHub repositori, dan Anda CodeBuild ingin membangun kembali kode sumber setiap kali perubahan kode didorong ke repositori, lihat. Mulai menjalankan build secara otomatis (AWS CLI)