Gunakan CodeDeploy agen untuk memvalidasi paket penerapan pada mesin lokal - AWS CodeDeploy

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

Gunakan CodeDeploy agen untuk memvalidasi paket penerapan pada mesin lokal

Dengan menggunakan CodeDeploy agen, Anda dapat menyebarkan konten pada instance yang Anda masuki. Ini memungkinkan Anda untuk menguji integritas file spesifikasi aplikasi (AppSpec file) yang ingin Anda gunakan dalam penyebaran dan konten yang ingin Anda gunakan.

Anda tidak perlu membuat grup aplikasi dan penyebaran. Jika Anda ingin menyebarkan konten yang disimpan pada instance lokal, Anda bahkan tidak memerlukan AWS akun. Untuk pengujian yang paling sederhana, Anda dapat menjalankan codedeploy-local perintah, tanpa menentukan opsi apa pun, di direktori yang berisi AppSpec file dan konten yang akan digunakan. Ada opsi untuk kasus uji lain di alat ini.

Dengan memvalidasi paket penerapan pada mesin lokal, Anda dapat:

  • Uji integritas revisi aplikasi.

  • Uji isi AppSpec file.

  • Cobalah CodeDeploy untuk pertama kalinya dengan kode aplikasi yang ada.

  • Terapkan konten dengan cepat saat Anda sudah masuk ke sebuah instans.

Anda dapat menggunakan konten deploy yang disimpan di instans lokal atau dalam jenis repositori jarak jauh yang didukung (bucket Amazon S3 atau repositori publik). GitHub

Prasyarat

Sebelum memulai penerapan lokal, selesaikan langkah-langkah berikut:

  • Buat atau gunakan jenis instance yang didukung oleh CodeDeploy agen. Untuk informasi, lihat Sistem operasi yang didukung oleh CodeDeploy agen.

  • Instal versi 1.0.1.1352 atau yang lebih baru dari agen. CodeDeploy Untuk informasi, lihat Instal CodeDeploy agen.

  • Jika Anda menerapkan konten dari bucket GitHub atau repositori Amazon S3, sediakan pengguna untuk digunakan. CodeDeploy Untuk informasi, lihat Langkah 1: Menyiapkan.

  • Jika Anda menerapkan revisi aplikasi dari bucket Amazon S3, buat bucket Amazon S3 di wilayah tempat Anda bekerja dan terapkan kebijakan bucket Amazon S3 ke bucket. Kebijakan ini memberi instans Anda izin yang diperlukan untuk mengunduh revisi aplikasi.

    Misalnya, kebijakan bucket Amazon S3 berikut mengizinkan EC2 instans Amazon apa pun dengan profil IAM instans terlampir yang berisi unduhan dari mana saja di bucket Amazon S3 bernama: ARN arn:aws:iam::444455556666:role/CodeDeployDemo amzn-s3-demo-bucket

    { "Statement": [ { "Action": [ "s3:Get*", "s3:List*" ], "Effect": "Allow", "Resource": "arn:aws:s3:::amzn-s3-demo-bucket/*", "Principal": { "AWS": [ "arn:aws:iam::444455556666:role/CodeDeployDemo" ] } } ] }

    Kebijakan bucket Amazon S3 berikut memungkinkan instans lokal dengan IAM pengguna terkait yang berisi unduhan dari mana saja di bucket Amazon S3 bernama: ARN arn:aws:iam::444455556666:user/CodeDeployUser amzn-s3-demo-bucket

    { "Statement": [ { "Action": [ "s3:Get*", "s3:List*" ], "Effect": "Allow", "Resource": "arn:aws:s3:::amzn-s3-demo-bucket/*", "Principal": { "AWS": [ "arn:aws:iam::444455556666:user/CodeDeployUser" ] } } ] }

    Untuk informasi tentang cara membuat dan melampirkan kebijakan bucket Amazon S3, lihat contoh kebijakan Bucket.

  • Jika Anda menerapkan revisi aplikasi dari bucket GitHub atau repositori Amazon S3, siapkan profil instance dan IAM lampirkan ke instance. Untuk informasi, lihatLangkah 4: Buat profil IAM instans untuk EC2 instans Amazon Anda,Membuat instans Amazon EC2 untuk CodeDeploy (AWS CLI atau konsol Amazon EC2), danBuat instans Amazon EC2 untuk CodeDeploy (template)AWS CloudFormation.

  • Jika Anda menyebarkan konten Anda dari GitHub, buat GitHub akun dan repositori publik. Untuk membuat GitHub akun, lihat Bergabung GitHub. Untuk membuat GitHub repositori, lihat Membuat repo.

    catatan

    Repositori pribadi saat ini tidak didukung. Jika konten Anda disimpan dalam GitHub repositori pribadi, Anda dapat mengunduhnya ke instance dan menggunakan --bundle-location opsi untuk menentukan jalur lokalnya.

  • Siapkan konten (termasuk AppSpec file) yang ingin Anda terapkan ke instance dan letakkan di instance lokal, di bucket Amazon S3, atau di GitHub repositori Anda. Untuk informasi, lihat Bekerja dengan revisi aplikasi untuk CodeDeploy.

  • Jika Anda ingin menggunakan nilai selain default untuk opsi konfigurasi lainnya, buat file konfigurasi dan letakkan di instance (untuk /etc/codedeploy-agent/conf/codedeployagent.yml Amazon LinuxRHEL, atau instance Server Ubuntu atau C:\ProgramData\Amazon\CodeDeploy\conf.yml untuk instance Windows Server). Untuk informasi, lihat CodeDeploy referensi konfigurasi agen.

    catatan

    Jika Anda menggunakan file konfigurasi di Amazon Linux,RHEL, atau instance Server Ubuntu, Anda harus:

    • Gunakan :log_dir: variabel :root_dir: dan untuk menentukan lokasi selain default untuk folder direktori root dan log deployment.

    • Gunakan sudo untuk menjalankan perintah CodeDeploy agen.

Buat penerapan lokal

Pada contoh di mana Anda ingin membuat penyebaran lokal, buka sesi terminal (Amazon LinuxRHEL, atau contoh Server Ubuntu) atau prompt perintah (Windows Server) untuk menjalankan perintah alat.

catatan

codedeploy-localPerintah diinstal di lokasi berikut:

  • Di Amazon Linux,RHEL, atau Server Ubuntu:/opt/codedeploy-agent/bin.

  • Di Windows Server:C:\ProgramData\Amazon\CodeDeploy\bin.

Sintaks Perintah Dasar

codedeploy-local [options]

Sinopsis

codedeploy-local [--bundle-location <value>] [--type <value>] [--file-exists-behavior <value>] [--deployment-group <value>] [--events <comma-separated values>] [--agent-configuration-file <value>] [--appspec-filename <value>]

Pilihan

-l, --bundle-lokasi

Lokasi bundel revisi aplikasi. Jika Anda tidak menentukan lokasi, alat menggunakan direktori yang sedang Anda kerjakan secara default. Jika Anda menentukan --bundle-location, maka Anda juga harus menentukan nilai --type.

Contoh format lokasi bundel:

  • Lokal Amazon Linux,RHEL, atau contoh Server Ubuntu: /path/to/local/bundle.tgz

  • Contoh Windows Server lokal: C:/path/to/local/bundle

  • Ember Amazon S3: s3://amzn-s3-demo-bucket/bundle.tar

  • GitHub repositori: https://github.com/account-name/repository-name/

-t, --tipe

Format bundel revisi aplikasi. Jenis yang didukung meliputitgz,tar,zip, dandirectory. Jika Anda tidak menentukan jenis, alat ini menggunakan secara directory default. Jika Anda menentukan --type, maka Anda juga harus menentukan nilai --bundle-location.

-b, -- file-exists-behavior

Menunjukkan bagaimana file ditangani yang sudah ada di lokasi target penerapan tetapi bukan bagian dari penerapan yang berhasil sebelumnya. Pilihan termasukDISALLOW,OVERWRITE,RETAIN. Untuk informasi lebih lanjut, lihat fileExistsBehaviordi AWS CodeDeploy APIReferensi.

-g, --deployment-group

Jalur ke folder yang merupakan lokasi target untuk konten yang akan digunakan. Jika Anda tidak menentukan folder, alat akan membuat satu bernama default-local-deployment-groupdi dalam direktori root deployment Anda. Untuk setiap penyebaran lokal yang Anda buat, alat ini membuat subdirektori di dalam folder ini dengan nama seperti d-98761234-local.

-e, --event

Satu set kait peristiwa siklus hidup timpa yang ingin Anda jalankan, secara berurutan, bukan peristiwa yang Anda cantumkan dalam file. AppSpec Beberapa kait dapat ditentukan, dipisahkan dengan koma. Anda dapat menggunakan opsi ini jika:

  • Anda ingin menjalankan serangkaian acara yang berbeda tanpa harus memperbarui AppSpec file.

  • Anda ingin menjalankan satu event hook sebagai pengecualian untuk apa yang ada di AppSpec file, sepertiApplicationStop.

Jika Anda tidak menentukan DownloadBundledan Menginstal peristiwa dalam daftar penggantian, mereka akan berjalan sebelum semua kait acara yang Anda tentukan. Jika Anda menyertakan DownloadBundledan Menginstal dalam daftar --events opsi, mereka harus didahului hanya oleh peristiwa yang biasanya berjalan sebelum mereka dalam CodeDeploy penerapan. Untuk informasi, lihat AppSpec Bagian 'kait'.

-c, -- agent-configuration-file

Lokasi file konfigurasi yang akan digunakan untuk penyebaran, jika Anda menyimpannya di lokasi selain default. File konfigurasi menentukan alternatif untuk nilai dan perilaku default lainnya untuk penerapan.

Secara default, file konfigurasi disimpan di /etc/codedeploy-agent/conf/codedeployagent.yml (Amazon Linux,RHEL, atau instance Server Ubuntu) atau C:/ProgramData/Amazon/CodeDeploy/conf.yml (Windows Server). Untuk informasi selengkapnya, lihat CodeDeploy referensi konfigurasi agen.

-A, --appspec-nama file

Nama AppSpec file. Untuk penerapan lokal, nilai yang diterima adalah appspec.yml dan. appspec.yaml Secara default, AppSpec file tersebut dipanggilappspec.yml.

-h, --membantu

Menampilkan ringkasan konten bantuan.

-v, --versi

Menampilkan nomor versi alat.

Contoh

Berikut ini adalah contoh format perintah yang valid.

codedeploy-local
codedeploy-local --bundle-location /path/to/local/bundle/directory
codedeploy-local --bundle-location C:/path/to/local/bundle.zip --type zip --deployment-group my-deployment-group
codedeploy-local --bundle-location /path/to/local/directory --type directory --deployment-group my-deployment-group

Terapkan bundel dari Amazon S3:

codedeploy-local --bundle-location s3://amzn-s3-demo-bucket/bundle.tgz --type tgz
codedeploy-local --bundle-location s3://amzn-s3-demo-bucket/bundle.zip?versionId=1234&etag=47e8 --type zip --deployment-group my-deployment-group

Menyebarkan bundel dari GitHub repositori publik:

codedeploy-local --bundle-location https://github.com/awslabs/aws-codedeploy-sample-tomcat --type zip
codedeploy-local --bundle-location https://api.github.com/repos/awslabs/aws-codedeploy-sample-tomcat/zipball/master --type zip
codedeploy-local --bundle-location https://api.github.com/repos/awslabs/aws-codedeploy-sample-tomcat/zipball/HEAD --type zip
codedeploy-local --bundle-location https://api.github.com/repos/awslabs/aws-codedeploy-sample-tomcat/zipball/1a2b3c4d --type zip

Terapkan bundel yang menentukan beberapa peristiwa siklus hidup:

codedeploy-local --bundle-location /path/to/local/bundle.tar --type tar --application-folder my-deployment --events DownloadBundle,Install,ApplicationStart,HealthCheck

Menghentikan aplikasi yang digunakan sebelumnya menggunakan peristiwa ApplicationStop siklus hidup:

codedeploy-local --bundle-location /path/to/local/bundle.tgz --type tgz --deployment-group --events ApplicationStop

Terapkan menggunakan ID grup penerapan tertentu:

codedeploy-local --bundle-location C:/path/to/local/bundle/directory --deployment-group 1234abcd-5dd1-4774-89c6-30b107ac5dca
codedeploy-local --bundle-location C:/path/to/local/bundle.zip --type zip --deployment-group 1234abcd-5dd1-4774-89c6-30b107ac5dca