Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Referensi tindakan perintah
Tindakan Perintah memungkinkan Anda menjalankan perintah shell dalam instance komputasi virtual. Saat Anda menjalankan tindakan, perintah yang ditentukan dalam konfigurasi tindakan dijalankan dalam wadah terpisah. Semua artefak yang ditentukan sebagai artefak input untuk suatu CodeBuild tindakan tersedia di dalam wadah yang menjalankan perintah. Tindakan ini memungkinkan Anda untuk menentukan perintah tanpa terlebih dahulu membuat CodeBuild proyek. Untuk informasi selengkapnya, lihat ActionDeclaration dan OutputArtifact di Refer AWS CodePipeline ensi API.
penting
Tindakan ini menggunakan CodePipeline CodeBuild komputasi terkelola untuk menjalankan perintah di lingkungan build. Menjalankan tindakan perintah akan dikenakan biaya terpisah. AWS CodeBuild
catatan
Tindakan Perintah hanya tersedia untuk pipeline tipe V2.
Topik
Pertimbangan untuk tindakan Perintah
Pertimbangan berikut berlaku untuk tindakan Perintah.
-
Tindakan perintah menggunakan CodeBuild sumber daya yang mirip dengan CodeBuild tindakan, sementara mengizinkan perintah lingkungan shell dalam instance komputasi virtual tanpa perlu mengaitkan atau membuat proyek build.
catatan
Menjalankan tindakan perintah akan dikenakan biaya terpisah. AWS CodeBuild
-
Karena tindakan Perintah di CodePipeline menggunakan CodeBuild sumber daya, build yang dijalankan oleh tindakan akan dikaitkan dengan batas build untuk akun Anda di CodeBuild. Build yang dijalankan oleh tindakan Perintah akan dihitung terhadap batas build bersamaan seperti yang dikonfigurasi untuk akun tersebut.
-
Waktu tunggu untuk build dengan tindakan Perintah adalah 55 menit, seperti berdasarkan CodeBuild build.
-
Instance komputasi menggunakan lingkungan build terisolasi di CodeBuild.
catatan
Karena lingkungan build terisolasi digunakan di tingkat akun, instance dapat digunakan kembali untuk eksekusi pipeline lain.
-
Semua format didukung kecuali format multi-baris. Anda harus menggunakan format baris tunggal saat memasukkan perintah.
-
Tindakan perintah didukung untuk tindakan lintas akun. Untuk menambahkan tindakan perintah lintas akun, tambahkan
actionRoleArndari akun target Anda dalam deklarasi tindakan. -
Untuk tindakan ini, CodePipeline akan mengambil peran layanan pipeline dan menggunakan peran itu untuk memungkinkan akses ke sumber daya saat runtime. Disarankan untuk mengonfigurasi peran layanan sehingga izin dicakup hingga ke tingkat tindakan.
-
Izin yang ditambahkan ke peran CodePipeline layanan dirinci diMenambahkan izin ke peran CodePipeline layanan.
-
Izin yang diperlukan untuk melihat log di konsol dirinci diIzin diperlukan untuk melihat log komputasi di konsol.
-
Tidak seperti tindakan lain di CodePipeline, Anda tidak menetapkan bidang dalam konfigurasi tindakan; Anda mengatur bidang konfigurasi tindakan di luar konfigurasi tindakan.
Izin kebijakan peran layanan
Saat CodePipeline menjalankan tindakan CodePipeline , membuat grup log menggunakan nama pipeline sebagai berikut. Ini memungkinkan Anda untuk mengurangi izin untuk mencatat sumber daya menggunakan nama pipeline.
/aws/codepipeline/MyPipelineName
Jika Anda menggunakan peran layanan yang ada, untuk menggunakan tindakan Perintah, Anda perlu menambahkan izin berikut untuk peran layanan.
-
log: CreateLogGroup
-
log: CreateLogStream
-
log: PutLogEvents
Dalam pernyataan kebijakan peran layanan, turunkan izin ke tingkat pipeline seperti yang ditunjukkan pada contoh berikut.
{ "Effect": "Allow", "Action": [ "logs:CreateLogGroup", "logs:CreateLogStream", "logs:PutLogEvents" ], "Resource": [ "arn:aws:logs:*:YOUR_AWS_ACCOUNT_ID:log-group:/aws/codepipeline/YOUR_PIPELINE_NAME", "arn:aws:logs:*:YOUR_AWS_ACCOUNT_ID:log-group:/aws/codepipeline/YOUR_PIPELINE_NAME:*" ] }
Untuk melihat log di konsol menggunakan halaman dialog detail tindakan, izin untuk melihat log harus ditambahkan ke peran konsol. Untuk informasi selengkapnya, lihat contoh kebijakan izin konsol diIzin diperlukan untuk melihat log komputasi di konsol.
Tipe tindakan
-
Kategori:
Compute -
Pemilik:
AWS -
Penyedia:
Commands -
Versi:
1
Parameter konfigurasi
- Commands
-
Wajib: Ya
Anda dapat memberikan perintah shell untuk
Commandstindakan yang akan dijalankan. Di konsol, perintah dimasukkan pada baris terpisah. Di CLI, perintah dimasukkan sebagai string terpisah.catatan
Multi-line format tidak didukung dan akan menghasilkan pesan kesalahan. Single-line format harus digunakan untuk memasukkan perintah di bidang Perintah.
penting
ComputeType Nilai EnvironmentType dan cocok dengan yang ada di CodeBuild. Kami mendukung subset dari jenis yang tersedia. Untuk informasi selengkapnya, lihat Mem bangun Jenis Komputasi Lingkungan.
- EnvironmentType
-
Wajib: Tidak
Gambar OS untuk lingkungan build yang mendukung tindakan Perintah. Berikut ini adalah nilai yang valid untuk lingkungan build:
-
LINUX_KONTAINER
-
WINDOWS_SERVER_2022_KONTAINER
Pemilihan untuk kemudian EnvironmentType akan memungkinkan tipe komputasi untuk OS itu di ComputeType lapangan. Untuk informasi selengkapnya tentang jenis CodeBuild komputasi yang tersedia untuk tindakan ini, lihat referensi mode komputasi dan tipe lingkungan build di Panduan CodeBuild Pengguna.
catatan
Jika tidak ditentukan, komputasi default ke berikut untuk lingkungan build:
-
Jenis komputasi: BUILD_GENERAL1_SMALL
-
Jenis lingkungan: LINUX_CONTAINER
-
- ComputeType
-
Wajib: Tidak
Berdasarkan pemilihan untuk EnvironmentType, jenis komputasi dapat disediakan. Berikut ini adalah nilai yang tersedia untuk komputasi; Namun, perhatikan bahwa opsi yang tersedia dapat bervariasi menurut OS.
-
BUILD_GENERAL1_KECIL
-
BUILD_GENERAL1_MEDIUM
-
BUILD_GENERAL1_BESAR
penting
Beberapa tipe komputasi tidak kompatibel dengan jenis lingkungan tertentu. Misalnya, WINDOWS_SERVER_2022_CONTAINER tidak kompatibel dengan BUILD_GENERAL1_SMALL. Menggunakan kombinasi yang tidak kompatibel menyebabkan tindakan gagal dan menghasilkan kesalahan runtime.
-
- Variabel keluaran
-
Wajib: Tidak
Tentukan nama variabel di lingkungan Anda yang ingin Anda ekspor. Untuk referensi variabel CodeBuild lingkungan, lihat Vari abel lingkungan di lingkungan build di Panduan CodeBuild Pengguna.
- Berkas
-
Wajib: Tidak
Anda dapat menyediakan file yang ingin Anda ekspor sebagai artefak keluaran untuk tindakan tersebut.
Format yang didukung untuk file sama dengan pola CodeBuild file. Misalnya, masukkan
**/untuk semua file. Untuk informasi selengkapnya, lihat Referensi spesifikasi build untuk CodeBuild di Panduan CodeBuild Pengguna.
- VpcId
-
Wajib: Tidak
ID VPC untuk sumber daya Anda.
- Subnet
-
Wajib: Tidak
Subnet untuk VPC. Bidang ini diperlukan ketika perintah Anda perlu terhubung ke sumber daya di VPC.
- SecurityGroupIds
-
Wajib: Tidak
Grup keamanan untuk VPC. Bidang ini diperlukan ketika perintah Anda perlu terhubung ke sumber daya di VPC.
Berikut ini adalah contoh JSON dari tindakan dengan bidang konfigurasi yang ditampilkan untuk lingkungan dan tipe komputasi, bersama dengan contoh variabel lingkungan.
{ "name": "Commands1", "actionTypeId": { "category": "Compute", "owner": "AWS", "provider": "Commands", "version": "1" }, "inputArtifacts": [ { "name": "SourceArtifact" } ], "commands": [ "ls", "echo hello", "echo $BEDROCK_TOKEN", ], "configuration": { "EnvironmentType": "LINUX_CONTAINER", "ComputeType": "BUILD_GENERAL1_MEDIUM" }, "environmentVariables": [ { "name": "BEDROCK_TOKEN", "value": "apiTokens:bedrockToken", "type": "SECRETS_MANAGER" } ], "runOrder": 1 }
Artefak masukan
-
Jumlah artefak:
1 to 10
Artefak keluaran
-
Jumlah artefak:
0 to 1
Variabel lingkungan
- Key
-
Kunci dalam pasangan variabel lingkungan kunci-nilai, seperti.
BEDROCK_TOKEN - Nilai
-
Nilai untuk pasangan kunci-nilai, seperti.
apiTokens:bedrockTokenNilai dapat diparameterisasi dengan variabel keluaran dari tindakan pipeline atau variabel pipeline.Saat menggunakan
SECRETS_MANAGERtipe, nilai ini harus berupa nama rahasia yang telah Anda simpan di Manajer AWS Rahasia. - Tipe
-
Menentukan jenis penggunaan untuk nilai variabel lingkungan. Nilai dapat berupa
PLAINTEXTatauSECRETS_MANAGER, salah satu. Jika nilainyaSECRETS_MANAGER, berikan referensi Rahasia dalamEnvironmentVariablenilai. Jika tidak ditentukan, ini default kePLAINTEXT.catatan
Kami sangat tidak menyarankan penggunaan variabel lingkungan plaintext untuk menyimpan nilai sensitif, terutama AWS kredenSIAL. Saat Anda menggunakan CodeBuild konsol atau AWS CLI, variabel lingkungan plaintext ditampilkan dalam teks biasa. Untuk nilai sensitif, sebaiknya gunakan
SECRETS_MANAGERtipe sebagai gantinya.
catatan
Saat Anda memasukkanname,value, dan type untuk konfigurasi variabel lingkungan Anda, terutama jika variabel lingkungan berisi sintaks variabel CodePipeline keluaran, jangan melebihi batas 1000 karakter untuk bidang nilai konfigurasi. Kesalahan validasi dikembalikan ketika batas ini terlampaui.
Untuk contoh deklarasi tindakan yang menunjukkan variabel lingkungan, lihatParameter konfigurasi.
catatan
-
SECRETS_MANAGERJenis ini hanya didukung untuk tindakan Perintah. -
Rahasia yang dirujuk dalam tindakan Perintah akan disunting di log build yang mirip CodeBuild dengan. Tetapi pengguna pipeline yang memiliki akses Edit ke pipeline masih berpotensi mengakses nilai-nilai rahasia ini dengan memodifikasi perintah.
-
Untuk menggunakan SecretsManager, Anda harus menambahkan izin berikut ke peran layanan pipeline Anda:
{ "Effect": "Allow", "Action": [ "secretsmanager:GetSecretValue" ], "Resource": [ "SECRET_ARN" ] }
Izin peran layanan: Tindakan perintah
Untuk dukungan Perintah, tambahkan berikut ini ke pernyataan kebijakan Anda:
Deklarasi tindakan (contoh)
Lihat juga
Sumber daya terkait berikut dapat membantu Anda saat Anda mengerjakan tindakan ini.
-
Tutorial: Membuat pipeline yang menjalankan perintah dengan compute (tipe V2)- Tutorial ini menyediakan saluran sampel dengan tindakan Perintah.