View a markdown version of this page

Referensi tindakan perintah - AWS CodePipeline

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.

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 actionRoleArn dari 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 Commands tindakan 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.

Halaman tindakan Edit untuk pipeline baru dengan tindakan Perintah
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:bedrockToken Nilai dapat diparameterisasi dengan variabel keluaran dari tindakan pipeline atau variabel pipeline.

Saat menggunakan SECRETS_MANAGER tipe, 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 PLAINTEXT atau SECRETS_MANAGER, salah satu. Jika nilainyaSECRETS_MANAGER, berikan referensi Rahasia dalam EnvironmentVariable nilai. 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_MANAGER tipe 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:

JSON
{ "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "logs:CreateLogGroup", "logs:CreateLogStream", "logs:PutLogEvents" ], "Resource": [ "arn:aws:iam::*:role/Service*", "arn:aws:iam::*:role/Service*" ] } ] }

Deklarasi tindakan (contoh)

YAML
name: Commands_action actionTypeId: category: Compute owner: AWS provider: Commands version: '1' runOrder: 1 configuration: {} commands: - ls - echo hello - 'echo pipeline Execution Id is #{codepipeline.PipelineExecutionId}' outputArtifacts: - name: BuildArtifact files: - **/ inputArtifacts: - name: SourceArtifact outputVariables: - AWS_DEFAULT_REGION region: us-east-1 namespace: compute
JSON
{ "name": "Commands_action", "actionTypeId": { "category": "Compute", "owner": "AWS", "provider": "Commands", "version": "1" }, "runOrder": 1, "configuration": {}, "commands": [ "ls", "echo hello", "echo pipeline Execution Id is #{codepipeline.PipelineExecutionId}" ], "outputArtifacts": [ { "name": "BuildArtifact", "files": [ "**/" ] } ], "inputArtifacts": [ { "name": "SourceArtifact" } ], "outputVariables": [ "AWS_DEFAULT_REGION" ], "region": "us-east-1", "namespace": "compute" }

Sumber daya terkait berikut dapat membantu Anda saat Anda mengerjakan tindakan ini.