Panduan: Membangun alur untuk tumpukan uji dan produksi - AWS CloudFormation

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

Panduan: Membangun alur untuk tumpukan uji dan produksi

Bayangkan proses rilis di mana Anda mengirimkan AWS CloudFormation template, yang AWS CloudFormation kemudian digunakan untuk secara otomatis membangun tumpukan pengujian. Setelah Anda meninjau tumpukan uji, Anda dapat melihat pratinjau bagaimana perubahan akan memodifikasi tumpukan produksi Anda, dan kemudian memilih apakah akan menerapkannya. Untuk menyelesaikan alur kerja ini, Anda dapat menggunakan AWS CloudFormation untuk membangun tumpukan pengujian, menghapus tumpukan pengujian, membuat set perubahan, dan kemudian menjalankan set perubahan. Namun, dengan setiap tindakan, Anda perlu berinteraksi secara manual AWS CloudFormation. Dalam panduan ini, kami akan membangun CodePipeline pipeline yang mengotomatiskan banyak tindakan ini, membantu Anda mencapai alur kerja pengiriman berkelanjutan dengan tumpukan Anda. AWS CloudFormation

Prasyarat

Panduan ini mengasumsikan bahwa Anda telah menggunakan CodePipeline dan AWS CloudFormation, dan mengetahui cara kerja pipa dan AWS CloudFormation templat serta tumpukan. Untuk informasi selengkapnya CodePipeline, lihat Panduan AWS CodePipeline Pengguna. Anda juga harus memiliki bucket Amazon S3 di AWS Wilayah yang sama tempat Anda akan membuat pipeline.

penting

WordPress Template sampel membuat EC2 instance yang memerlukan koneksi ke Internet. Periksa apakah Anda memiliki default VPC dan subnet yang memungkinkan lalu lintas ke Internet.

Gambaran umum panduan

Panduan ini membangun pipeline untuk WordPress situs sampel dalam tumpukan. Alur dipisahkan menjadi tiga tahap. Setiap tahap harus berisi setidaknya satu tindakan, yang merupakan tugas alur pada artifact Anda (masukan Anda). Sebuah panggung mengatur tindakan dalam pipa. CodePipeline harus menyelesaikan semua tindakan dalam satu tahap sebelum tahap memproses artefak baru, misalnya, jika Anda mengirimkan input baru untuk menjalankan kembali pipa.

Pada akhir panduan ini, Anda akan memiliki alur yang melakukan alur kerja berikut:

  1. Tahap pertama dari pipeline mengambil artefak sumber ( AWS CloudFormation template dan file konfigurasinya) dari repositori.

    Anda akan menyiapkan artefak yang menyertakan WordPress template sampel dan mengunggahnya ke bucket S3.

  2. Pada tahap kedua, alur membuat tumpukan uji dan kemudian menunggu persetujuan Anda.

    Setelah Anda meninjau tumpukan uji, Anda dapat memilih untuk melanjutkan dengan alur asli atau membuat dan mengirimkan artifact lain untuk membuat perubahan. Jika Anda menyetujui, tahap ini menghapus tumpukan uji, dan kemudian alur berlanjut ke tahap berikutnya.

  3. Pada tahap ketiga, alur menciptakan perubahan yang ditetapkan terhadap tumpukan produksi, dan kemudian menunggu persetujuan Anda.

    Di awal, Anda tidak akan memiliki tumpukan produksi. Set perubahan menunjukkan kepada Anda semua sumber daya yang AWS CloudFormation akan dibuat. Jika Anda menyetujui, tahap ini mengeksekusi perubahan set dan membangun tumpukan produksi Anda.

catatan

AWS CloudFormation adalah layanan gratis. Namun, Anda dikenakan biaya untuk AWS sumber daya, seperti EC2 instance, yang Anda sertakan dalam tumpukan Anda dengan tarif saat ini untuk masing-masing sumber daya. Untuk informasi lebih lanjut tentang AWS harga, lihat halaman detail untuk setiap produk di http://aws.amazon.com.

Langkah 1: Edit artifact dan unggah ke Bucket S3

Sebelum membangun pipeline, Anda harus menyiapkan repositori sumber dan file. CodePipelinemenyalin file sumber ini ke penyimpanan artefak pipeline Anda, lalu menggunakannya untuk melakukan tindakan di pipeline Anda, seperti membuat AWS CloudFormation tumpukan.

Saat Anda menggunakan Amazon Simple Storage Service (Amazon S3) sebagai repositori sumber CodePipeline , Anda harus mem-zip file sumber sebelum mengunggahnya ke bucket S3. File zip adalah CodePipeline artefak yang dapat berisi AWS CloudFormation template, file konfigurasi template, atau keduanya. Kami menyediakan artefak yang berisi WordPress template sampel dan dua file konfigurasi template. Kedua file konfigurasi menentukan nilai parameter untuk WordPress template. CodePipeline menggunakannya saat membuat WordPress tumpukan. Satu file berisi nilai parameter untuk tumpukan tes, dan yang lainnya untuk tumpukan produksi. Anda harus mengedit file konfigurasi, misalnya, untuk menentukan nama EC2 pasangan kunci yang ada yang Anda miliki. Untuk informasi lebih lanjut tentang artifact, lihat AWS CloudFormation artefak.

Setelah Anda membuat artifact, Anda akan mengunggahnya ke bucket S3.

Untuk mengedit dan mengunggah artifact
  1. Unduh dan buka artefak sampel: https://s3.amazonaws.com/cloudformation-examples/user- guide/continuous-deployment/wordpress -single-instance.zip.

    Artefak berisi tiga file:

    • WordPress Template sampel: wordpress-single-instance.yaml

    • File konfigurasi templat untuk tumpukan uji.: test-stack-configuration.json

    • File konfigurasi templat untuk tumpukan produksi: prod-stack-configuration.json

  2. Ekstrak semua file, dan kemudian gunakan editor teks untuk mengubah file konfigurasi templat.

    Buka file konfigurasi untuk melihat bahwa file tersebut berisi pasangan kunci-nilai yang dipetakan ke parameter WordPress template. File konfigurasi menentukan nilai parameter yang menggunakan alur saat membuat tumpukan uji dan produksi.

    Edit test-stack-configuration.json file untuk menentukan nilai parameter untuk tumpukan uji dan prod-stack-configuration.json file untuk tumpukan produksi.

    • Ubah nilai DBPassword dan DBRootPassword kunci ke kata sandi yang dapat Anda gunakan untuk masuk ke WordPress database Anda. Seperti yang didefinisikan dalam WordPress template, nilai parameter harus berisi hanya karakter alfanumerik.

    • Ubah nilai KeyName kunci ke nama EC2 pasangan kunci yang ada di wilayah tempat Anda akan membuat pipeline.

  3. Tambahkan file konfigurasi yang diubah ke artifact file (.zip) asli, mengganti file duplikat.

    Anda sekarang memiliki artifact disesuaikan dan yang dapat Anda unggah ke Bucket S3.

  4. Unggah artefak ke bucket S3 yang Anda miliki.

    Perhatikan lokasi file. Anda akan menentukan lokasi file ini saat membangun alur.

    Catatan tentang artifact dan Bucket S3:

    • Gunakan bucket yang berada di AWS Wilayah yang sama di mana Anda akan membuat pipeline Anda.

    • CodePipeline mengharuskan bucket mengaktifkan versi.

    • Anda juga dapat menggunakan layanan yang tidak mengharuskan Anda untuk zip file Anda sebelum mengunggahnya, seperti GitHub atau CodeCommit, untuk repositori sumber Anda.

    • Artifact dapat berisi informasi sensitif seperti kata sandi. Batas akses sehingga hanya pengguna yang diizinkan yang dapat melihat file. Ketika Anda melakukannya, pastikan bahwa masih CodePipeline dapat mengakses file.

Anda sekarang memiliki artefak yang CodePipeline dapat menarik ke pipa Anda. Pada langkah berikutnya, Anda akan menentukan lokasi artefak dan membangun WordPress pipa.

Langkah 2: Buat tumpukan alur

Untuk membuat WordPress pipeline, Anda akan menggunakan AWS CloudFormation template sampel. Selain membangun pipeline, template menyiapkan peran layanan AWS Identity and Access Management (IAM) untuk CodePipeline dan AWS CloudFormation, bucket S3 untuk penyimpanan CodePipeline artefak, dan topik Amazon Simple Notification Service SNS (Amazon) tempat pipeline mengirimkan notifikasi, seperti notifikasi tentang ulasan. Template sampel memudahkan penyediaan dan konfigurasi sumber daya ini dalam satu AWS CloudFormation tumpukan.

Untuk detail lebih lanjut tentang konfigurasi alur, lihat Apa yang dilakukan alur.

penting

WordPress Template sampel membuat EC2 instance yang memerlukan koneksi ke Internet. Periksa apakah default VPC dan subnet Anda memungkinkan lalu lintas ke Internet.

Cara membuat tumpukan alur
  1. Unduh template sampel di https://s3.amazonaws.com/cloudformation-examples/user- guide/continuous-deployment/basic -pipeline.yml. Simpan di komputer Anda.

  2. Buka AWS CloudFormation konsol di https://console.aws.amazon.com/cloudformation/.

  3. Pilih AWS Wilayah yang mendukung CodePipeline dan AWS CloudFormation.

    Untuk informasi selengkapnya, lihat AWS Wilayah dan titik akhir di Referensi Umum AWS.

  4. Pilih Buat tumpukan.

  5. Di bagian Tentukan templat, pilih Unggah file templat, lalu pilih templat yang baru saja diunduh, basic-pipeline.yml.

  6. Pilih Berikutnya.

  7. Untuk Nama tumpukan, ketik sample-WordPress-pipeline.

  8. Di bagian Parameter, tentukan nilai parameter berikut, dan kemudian pilih Selanjutnya. Saat mengatur parameter tumpukan, jika Anda menyimpan nama yang sama untuk WordPress template dan file konfigurasinya, Anda dapat menggunakan nilai default. Jika tidak, tentukan nama file yang Anda gunakan.

    PipelineName

    Nama alur Anda, seperti WordPress-test-pipeline.

    S3Bucket

    Nama bucket S3 tempat Anda menyimpan artefak (.zip).

    Sources3key

    Nama file artefak Anda. Jika Anda menyimpan artefak dalam folder, sertakan sebagai bagian dari nama file, sepertifolder/subfolder/wordpress-single-instance.zip.

    Email

    Alamat email yang CodePipeline mengirimkan pemberitahuan pipeline, sepertimyemail@example.com.

  9. Untuk panduan ini, Anda tidak perlu menambahkan tanda atau menentukan pengaturan lanjutan, jadi pilih Selanjutnya.

  10. Pastikan bahwa nama tumpukan dan template URL sudah benar, lalu pilih Create stack.

  11. Untuk mengetahui bahwa Anda mengetahui bahwa AWS CloudFormation mungkin membuat IAM sumber daya, pilih kotak centang.

Mungkin perlu beberapa menit AWS CloudFormation untuk membuat tumpukan Anda. Untuk memantau kemajuan, tampilkan peristiwa tumpukan. Untuk informasi selengkapnya, lihat Lihat informasi tumpukan dari CloudFormation konsol.

Setelah tumpukan Anda dibuat, CodePipeline mulai pipeline baru Anda. Untuk melihat statusnya, lihat CodePipeline konsol. Dari daftar pipa, pilih WordPress-test-pipeline.

Apa yang dilakukan alur

Bagian ini menjelaskan tiga tahap pipeline, menggunakan cuplikan dari template WordPress pipeline sampel.

Tahap 1: Sumber

Tahap pertama alur adalah tahap sumber di mana Anda menentukan lokasi kode sumber Anda. Setiap kali Anda mendorong revisi ke lokasi ini, CodePipeline jalankan ulang pipa Anda.

Kode sumber terletak di bucket S3 dan diidentifikasi dengan nama filenya. Anda menetapkan nilai-nilai ini sebagai nilai parameter masukan ketika Anda membuat tumpukan alur. Untuk mengizinkan penggunaan Artifact sumber dalam tahap berikutnya, potongan menentukan OutputArtifacts properti, dengan nama TemplateSource. Untuk menggunakan Artifact ini pada tahap selanjutnya, Anda tentukan TemplateSource sebagai Artifact masukan.

- Name: S3Source Actions: - Name: TemplateSource ActionTypeId: Category: Source Owner: AWS Provider: S3 Version: '1' Configuration: S3Bucket: !Ref 'S3Bucket' S3ObjectKey: !Ref 'SourceS3Key' OutputArtifacts: - Name: TemplateSource

Tahap 2: TestStage

Di TestStage tahap, alur menciptakan tumpukan uji, menunggu persetujuan, dan kemudian menghapus tumpukan uji.

Untuk CreateStack tindakan, pipeline menggunakan file konfigurasi pengujian dan WordPress template untuk membuat tumpukan pengujian. Kedua file yang terkandung dalam TemplateSource Artifact input, yang dibawa dari tahap sumber. Potongan menggunakan REPLACE_ON_FAILURE mode tindakan. Jika pembuatan tumpukan gagal, alur menggantikannya sehingga Anda tidak perlu membersihkan atau memecahkan masalah tumpukan sebelum Anda dapat menjalankan alur kembali. Modus aksi berguna untuk iterasi cepat pada tumpukan uji. Untuk RoleArn properti, nilainya adalah peran AWS CloudFormation layanan yang dideklarasikan di tempat lain dalam template.

Tindakan ApproveTestStack menjeda alur dan mengirimkan notifikasi ke alamat email yang telah Anda tentukan saat membuat tumpukan pipa. Saat pipeline dijeda, Anda dapat memeriksa tumpukan WordPress pengujian dan sumber dayanya. Gunakan CodePipeline untuk menyetujui atau menolak tindakan ini. Properti CustomData berisi deskripsi tindakan yang Anda setujui, yang ditambahkan alur ke email pemberitahuan.

Setelah Anda menyetujui tindakan ini, CodePipeline pindah ke DeleteTestStack tindakan dan menghapus WordPress tumpukan pengujian dan sumber dayanya.

- Name: TestStage Actions: - Name: CreateStack ActionTypeId: Category: Deploy Owner: AWS Provider: CloudFormation Version: '1' InputArtifacts: - Name: TemplateSource Configuration: ActionMode: REPLACE_ON_FAILURE RoleArn: !GetAtt [CFNRole, Arn] StackName: !Ref TestStackName TemplateConfiguration: !Sub "TemplateSource::${TestStackConfig}" TemplatePath: !Sub "TemplateSource::${TemplateFileName}" RunOrder: '1' - Name: ApproveTestStack ActionTypeId: Category: Approval Owner: AWS Provider: Manual Version: '1' Configuration: NotificationArn: !Ref CodePipelineSNSTopic CustomData: !Sub 'Do you want to create a change set against the production stack and delete the ${TestStackName} stack?' RunOrder: '2' - Name: DeleteTestStack ActionTypeId: Category: Deploy Owner: AWS Provider: CloudFormation Version: '1' Configuration: ActionMode: DELETE_ONLY RoleArn: !GetAtt [CFNRole, Arn] StackName: !Ref TestStackName RunOrder: '3'

Tahap 3: ProdStage

Tahap ProdStage alur menciptakan perubahan yang ditetapkan terhadap tumpukan produksi yang ada, menunggu persetujuan, dan kemudian mengeksekusi set perubahan.

Set perubahan menyediakan pratinjau semua modifikasi yang AWS CloudFormation akan dilakukan pada tumpukan produksi Anda sebelum menerapkannya. Saat menjalankan alur pertama Anda, Anda tidak akan memiliki tumpukan produksi yang berjalan. Set perubahan menunjukkan tindakan yang AWS CloudFormation dilakukan saat membuat tumpukan pengujian. Untuk membuat set perubahan, CreateChangeSet tindakan menggunakan template WordPress sampel dan konfigurasi template produksi dari artefak TemplateSource input.

Mirip dengan tahap sebelumnya, tindakanApproveChangeSet menjeda alur dan mengirimkan pemberitahuan email. Saat pipeline dijeda, Anda dapat melihat set perubahan untuk memeriksa semua modifikasi yang diusulkan pada tumpukan produksi WordPress . Gunakan CodePipeline untuk menyetujui atau menolak tindakan ini untuk melanjutkan atau menghentikan pipeline, masing-masing.

Setelah Anda menyetujui tindakan ini, ExecuteChangeSet tindakan akan mengeksekusi set perubahan, sehingga AWS CloudFormation melakukan semua tindakan yang dijelaskan dalam set perubahan. Untuk proses awal, AWS CloudFormation buat tumpukan WordPress produksi. Saat menjalankan berikutnya, AWS CloudFormation memperbarui tumpukan.

- Name: ProdStage Actions: - Name: CreateChangeSet ActionTypeId: Category: Deploy Owner: AWS Provider: CloudFormation Version: '1' InputArtifacts: - Name: TemplateSource Configuration: ActionMode: CHANGE_SET_REPLACE RoleArn: !GetAtt [CFNRole, Arn] StackName: !Ref ProdStackName ChangeSetName: !Ref ChangeSetName TemplateConfiguration: !Sub "TemplateSource::${ProdStackConfig}" TemplatePath: !Sub "TemplateSource::${TemplateFileName}" RunOrder: '1' - Name: ApproveChangeSet ActionTypeId: Category: Approval Owner: AWS Provider: Manual Version: '1' Configuration: NotificationArn: !Ref CodePipelineSNSTopic CustomData: !Sub 'A new change set was created for the ${ProdStackName} stack. Do you want to implement the changes?' RunOrder: '2' - Name: ExecuteChangeSet ActionTypeId: Category: Deploy Owner: AWS Provider: CloudFormation Version: '1' Configuration: ActionMode: CHANGE_SET_EXECUTE ChangeSetName: !Ref ChangeSetName RoleArn: !GetAtt [CFNRole, Arn] StackName: !Ref ProdStackName RunOrder: '3'

Langkah 3: Lihat WordPress tumpukan

Saat CodePipeline berjalan melalui pipa, ia digunakan AWS CloudFormation untuk membuat tumpukan pengujian dan produksi. Untuk melihat status tumpukan ini dan outputnya, gunakan AWS CloudFormation konsol.

Untuk melihat tumpukan
  1. Buka AWS CloudFormation konsol di https://console.aws.amazon.com/cloudformation/.

  2. Tergantung pada apakah alur sedang dalam tahap pengujian atau produksi, pilih Test-MyWordPressSite atau Prod-MyWordPressSite tumpukan.

  3. Untuk memeriksa status tumpukan Anda, lihat tumpukan peristiwa.

Jika tumpukan dalam keadaan gagal, lihat alasan status untuk menemukan kesalahan tumpukan. Perbaiki kesalahan, dan kemudian jalankan kembali alur. Jika tumpukan dalam CREATE_COMPLETE keadaan, lihat outputnya untuk mendapatkan WordPress situs Anda. URL

Anda telah berhasil digunakan CodePipeline untuk membangun alur kerja pengiriman berkelanjutan untuk WordPress situs sampel. Jika Anda mengirimkan perubahan ke bucket S3, CodePipeline secara otomatis mendeteksi versi baru, lalu menjalankan ulang pipeline Anda. Alur kerja ini memudahkan untuk mengirimkan dan menguji perubahan sebelum membuat perubahan pada situs produksi Anda.

Langkah 4: Bersihkan Sumber Daya

Untuk memastikan bahwa Anda tidak dikenakan biaya untuk layanan yang tidak diinginkan, hapus sumber daya Anda.

penting

Hapus WordPress tumpukan pengujian dan produksi sebelum menghapus tumpukan pipa. Tumpukan pipeline berisi peran layanan yang diperlukan untuk menghapus WordPress tumpukan. Jika Anda menghapus tumpukan pipeline terlebih dahulu, Anda dapat mengaitkan peran layanan lain Amazon Resource Name (ARN) dengan WordPress tumpukan, lalu menghapusnya.

Untuk menghapus objek di penyimpanan Artifact
  1. Buka konsol Amazon S3 di. https://console.aws.amazon.com/s3/

  2. Pilih bucket S3 yang CodePipeline digunakan sebagai toko artefak pipa Anda.

    Nama bucket mengikuti format: stackname-artifactstorebucket-id. Jika Anda mengikuti panduan ini, nama bucket mungkin terlihat mirip dengan contoh berikut: sample-WordPress-pipeline-artifactstorebucket-12345abcd12345.

  3. Hapus semua objek di penyimpanan Artifact Bucket S3.

    Bila Anda menghapus tumpukan alur pada langkah berikutnya, bucket ini harus kosong. Jika AWS CloudFormation tidak, tidak akan dapat menghapus ember.

Untuk menghapus tumpukan Anda
  1. Dari AWS CloudFormation konsol, pilih tumpukan yang ingin Anda hapus.

    Jika WordPress tumpukan yang dibuat oleh pipa masih berjalan, pilih terlebih dahulu. Secara default, nama tumpukan Test-MyWordPressSite dan Prod-MyWordPressSite.

    Jika Anda sudah menghapus WordPress tumpukan, pilih sample-WordPress-pipeline tumpukan.

  2. Pilih Tindakan, dan kemudian pilih Hapus Tumpukan.

  3. Pada pesan konfirmasi, pilih Ya, Hapus.

AWS CloudFormation menghapus tumpukan semua sumber daya tumpukan, seperti EC2 instance, topik notifikasi, peran layanan, dan pipeline.

Sekarang setelah Anda memahami cara membangun AWS CloudFormation alur kerja dasar CodePipeline, Anda dapat menggunakan contoh template dan artefak sebagai titik awal untuk membangun sendiri.

Lihat juga

Sumber daya terkait berikut dapat membantu Anda saat menggunakan parameter ini.

  • Untuk informasi selengkapnya tentang parameter AWS CloudFormation tindakan CodePipeline, lihat referensi konfigurasi AWS CloudFormationtindakan di Panduan AWS CodePipeline Pengguna.

  • Misalnya nilai templat menurut penyedia tindakan, seperti untuk Owner bidang atau configuration bidang, lihat referensi struktur tindakan di Panduan AWS CodePipeline Pengguna.

  • Untuk mengunduh contoh templat tumpukan pipeline dalam YAML atau JSON format, lihat tutorial di bawah Membuat pipeline dengan AWS CloudFormation di Panduan AWS CodePipeline Pengguna.

  • Untuk file konfigurasi templat contoh, lihat AWS CloudFormation Artefak .