Melihat build yang sedang berjalan di Session Manager - AWS CodeBuild

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

Melihat build yang sedang berjalan di Session Manager

Di AWS CodeBuild, Anda dapat menjeda build yang sedang berjalan dan kemudian menggunakan AWS Systems Manager Session Manager untuk menyambung ke container build dan melihat status container.

catatan

Fitur ini tidak tersedia di lingkungan Windows.

Prasyarat

Untuk mengizinkan Session Manager digunakan dengan sesi build, Anda harus mengaktifkan koneksi sesi untuk build. Ada dua prasyarat:

  • CodeBuild Gambar kurasi standar Linux sudah menginstal agen SSM dan agen SSM diaktifkan. ContainerMode

    Jika Anda menggunakan gambar kustom untuk build Anda, lakukan hal berikut:

    1. Instal SSM Agent. Untuk informasi selengkapnya, lihat Instal Agen SSM secara manual pada instans EC2 untuk Linux di Panduan Pengguna. AWS Systems Manager Versi Agen SSM harus 3.0.1295.0 atau yang lebih baru.

    2. Salin file https://github.com/aws/ aws-codebuild-docker-images /blob/master/ubuntu/standard/5.0/ .json ke direktori di gambar amazon-ssm-agent Anda. /etc/amazon/ssm/ Ini memungkinkan Mode Kontainer di agen SSM.

    catatan

    Gambar khusus akan membutuhkan agen SSM terbaru agar fitur ini berfungsi seperti yang diharapkan.

  • Peran CodeBuild layanan harus memiliki kebijakan SSM berikut:

    { "Effect": "Allow", "Action": [ "ssmmessages:CreateControlChannel", "ssmmessages:CreateDataChannel", "ssmmessages:OpenControlChannel", "ssmmessages:OpenDataChannel" ], "Resource": "*" }

    CodeBuild Konsol dapat melampirkan kebijakan ini secara otomatis ke peran layanan saat memulai pembuatan. Atau, Anda dapat melampirkan kebijakan ini ke peran layanan Anda secara manual.

  • Jika aktivitas sesi Audit dan logging diaktifkan di preferensi Systems Manager, peran CodeBuild layanan juga harus memiliki izin tambahan. Izin berbeda, tergantung di mana log disimpan.

    CloudWatch Log

    Jika menggunakan CloudWatch Log untuk menyimpan log Anda, tambahkan izin berikut ke peran CodeBuild layanan:

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "logs:DescribeLogGroups", "Resource": "arn:aws:logs:<region-id>:<account-id>:log-group:*:*" }, { "Effect": "Allow", "Action": [ "logs:CreateLogStream", "logs:PutLogEvents" ], "Resource": "arn:aws:logs:<region-id>:<account-id>:log-group:<log-group-name>:*" } ] }
    Amazon S3

    Jika menggunakan Amazon S3 untuk menyimpan log Anda, tambahkan izin berikut ke peran CodeBuild layanan:

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:GetEncryptionConfiguration", "s3:PutObject" ], "Resource": [ "arn:aws:s3:::<bucket-name>", "arn:aws:s3:::<bucket-name>/*" ] } ] }

    Untuk informasi selengkapnya, lihat Aktivitas sesi audit dan pencatatan di Panduan AWS Systems Manager Pengguna.

Jeda build

Untuk menjeda build, masukkan codebuild-breakpoint perintah di salah satu fase build di file buildspec Anda. Build akan dijeda pada titik ini, yang memungkinkan Anda terhubung ke container build dan melihat container dalam statusnya saat ini.

Misalnya, tambahkan yang berikut ini ke fase build di file buildspec Anda.

phases: pre_build: commands: - echo Entered the pre_build phase... - echo "Hello World" > /tmp/hello-world - codebuild-breakpoint

Kode ini membuat /tmp/hello-world file dan kemudian menjeda build pada saat ini.

Mulai membangun

Agar Session Manager dapat digunakan dengan sesi build, Anda harus mengaktifkan koneksi sesi untuk build. Untuk melakukan ini, saat memulai build, ikuti langkah-langkah berikut:

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

  2. Di panel navigasi, pilih Membangun proyek. Pilih proyek build, lalu pilih Start build with overrides.

  3. Pilih Penggantian build lanjutan.

  4. Di bagian Lingkungan, pilih opsi Aktifkan koneksi sesi. Jika opsi ini tidak dipilih, semua codebuild-resume perintah codebuild-breakpoint dan diabaikan.

  5. Buat perubahan lain yang diinginkan, dan pilih Mulai membangun.

  6. Pantau status build di konsol. Saat sesi tersedia, tautan Pengelola AWS Sesi akan muncul di bagian Status build.

Connect ke container build

Anda dapat terhubung ke kontainer build dengan salah satu dari dua cara:

CodeBuild konsol

Di browser web, buka tautan AWS Session Manager untuk terhubung ke container build. Sesi terminal terbuka yang memungkinkan Anda menelusuri dan mengontrol container build.

AWS CLI
catatan

Mesin lokal Anda harus menginstal plugin Session Manager untuk prosedur ini. Untuk informasi selengkapnya, lihat Menginstal Plugin Session Manager untuk AWS CLI di AWS Systems Manager Panduan Pengguna.

  1. Panggil batch-get-builds api dengan ID build untuk mendapatkan informasi tentang build, termasuk pengenal target sesi. Nama properti pengidentifikasi target sesi bervariasi tergantung pada jenis output aws perintah. Inilah --output json sebabnya mengapa ditambahkan ke perintah.

    aws codebuild batch-get-builds --ids <buildID> --region <region> --output json
  2. Salin nilai sessionTarget properti. Nama sessionTarget properti dapat bervariasi tergantung pada jenis output aws perintah. Inilah --output json sebabnya mengapa ditambahkan ke perintah di langkah sebelumnya.

  3. Gunakan perintah berikut untuk menyambung ke container build.

    aws ssm start-session --target <sessionTarget> --region <region>

Untuk contoh ini, verifikasi bahwa /tmp/hello-world file itu ada dan berisi teksHello World.

Lanjutkan build

Setelah Anda selesai memeriksa container build, keluarkan codebuild-resume perintah dari shell container.

$ codebuild-resume