Tutorial: Buat pipeline yang menggunakan variabel dariAWS CloudFormationtindakan deployment - AWS CodePipeline

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

Tutorial: Buat pipeline yang menggunakan variabel dariAWS CloudFormationtindakan deployment

Dalam tutorial ini, Anda menggunakanAWS CodePipelinekonsol untuk membuat pipeline dengan tindakan penyebaran. Ketika pipeline berjalan, template membuat tumpukan dan juga menciptakanoutputsberkas. Output yang dihasilkan oleh template stack adalah variabel yang dihasilkan olehAWS CloudFormationtindakan CodePipeline.

Dalam tindakan di mana Anda membuat tumpukan dari template, Anda menunjuk namespace variabel. Variabel yang dihasilkan olehoutputsfile kemudian dapat dikonsumsi oleh tindakan selanjutnya. Dalam contoh ini, Anda membuat set perubahan berdasarkanStackNamevariabel yang dihasilkan olehAWS CloudFormationtindakan. Setelah persetujuan manual, Anda menjalankan set perubahan dan kemudian membuat tindakan delete stack yang menghapus tumpukan berdasarkanStackNameVariabel.

Prasyarat: MembuatAWS CloudFormationperan layanan dan CodeCommit repositori

Anda harus memiliki yang berikut ini:

  • SEBUAH CodeCommit repositori. Anda dapat menggunakanAWS CodeCommitrepositori yang Anda buatTutorial: Buat pipeline sederhana (CodeCommitrepositori).

  • Contoh ini membuat tumpukan Amazon DocumentDB dari templat. Anda harus menggunakanAWS Identity and Access Management(IAM) untuk membuatAWS CloudFormationperan layanan dengan izin berikut untuk Amazon DocumentDB.

    "rds:DescribeDBClusters", "rds:CreateDBCluster", "rds:DeleteDBCluster", "rds:CreateDBInstance"

Langkah 1: Unduh, edit, dan unggah sampelAWS CloudFormationtemplat

Unduh SampelAWS CloudFormationfile template dan unggah ke CodeCommit repositori.

  1. Arahkan ke halaman template contoh untuk Wilayah Anda. Misalnya, halaman untuk us-west-2https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/sample-templates-services-us-west-2.html. Di bawahAmazon DocumentDB, unduh templat untuk Klaster Amazon DocumentDB. Nama filedocumentdb_full_stack.yaml.

  2. Unzipdocumentdb_full_stack.yamlfile, dan membukanya di editor teks. Lakukan perubahan berikut.

    1. Untuk contoh ini, tambahkan berikutPurpose:parameter untuk AndaParametersbagian dalam template.

      Purpose: Type: String Default: testing AllowedValues: - testing - production Description: The purpose of this instance.
    2. Untuk contoh ini, tambahkan berikutStackNameoutput keOutputs:bagian dalam template.

      StackName: Value: !Ref AWS::StackName
  3. Unggah file template ke fileAWS CodeCommitrepositori. Anda harus mengunggah file templat yang dibuka ritsleting dan diedit ke direktori root dari repositori Anda.

    Untuk menggunakan CodeCommit konsol untuk mengunggah file Anda:

    1. Buka CodeCommit konsol, dan pilih repositori Anda dariRepositoriDaftar.

    2. PilihTambahkan file, dan kemudian pilihMeng-unggah File.

    3. PilihPilih file, lalu telusuri file Anda. Lakukan perubahan dengan memasukkan nama pengguna dan alamat email Anda. Pilih Perubahan commit.

    File Anda akan terlihat seperti ini di tingkat root di repositori Anda:

    documentdb_full_stack.yaml

Langkah 2: Membuat Alur Anda

Dalam bagian ini, Anda membuat alur dengan tindakan berikut:

  • Tahap sumber dengan CodeCommit tindakan di mana artefak sumber adalah file template Anda.

  • Tahap penyebaran denganAWS CloudFormationaksi deployment.

Setiap tindakan dalam tahap sumber dan penyebaran yang dibuat oleh wizard diberi namespace variabel,SourceVariablesdanDeployVariables, masing-masing. Karena tindakan memiliki namespace yang ditetapkan, variabel yang dikonfigurasi dalam contoh ini tersedia untuk tindakan hilir. Untuk informasi selengkapnya, lihat Variabel.

Untuk membuat alur dengan wizard

  1. Masuk keAWS Management Consoledan membuka CodePipeline konsolhttp://console.aws.amazon.com/codesuite/codepipeline/home.

  2. Pada halaman Selamat Datang, halaman Memulai, atau halaman Alur, pilih Buat alur.

  3. Di Langkah 1: Pilih pengaturan pipa, diNama Alur, ENTERMyCFNDeployPipeline.

  4. MasukPeran layanan, lakukan salah satu hal berikut:

    • PilihPeran layanan baruuntuk mengizinkan CodePipeline untuk membuat peran layanan di IAM.

    • PilihPeran layanan yang ada. MasukNama peran, pilih peran layanan Anda dari daftar.

  5. MasukToko artifact:

    1. PilihLokasi defaultuntuk menggunakan penyimpanan artifact default, seperti bucket artifact artifact Amazon S3, seperti bucket artifact artifact default, untuk alur Anda di Wilayah yang Anda pilih untuk alur Anda.

    2. PilihLokasi khususjika Anda sudah memiliki toko artefak, seperti bucket artefak Amazon S3, di Wilayah yang sama dengan pipeline Anda.

    catatan

    Ini bukan bucket sumber untuk kode sumber Anda. Ini adalah penyimpanan artifact untuk alur Anda. Penyimpanan artifact terpisah, seperti bucket S3, diperlukan untuk setiap alur. Saat Anda membuat atau mengedit pipeline, Anda harus memiliki bucket artefak di Wilayah pipeline dan satu bucket artefak perAWSWilayah di mana Anda menjalankan tindakan.

    Untuk informasi selengkapnya, lihat Artefak input dan output dan Referensi struktur pipa CodePipeline.

    Pilih Selanjutnya.

  6. Di Langkah 2: Tambahkan tahap:

    1. MasukPenyedia sumberPilihAWS CodeCommit.

    2. MasukNama repositori, pilih nama CodeCommit repositori yang Anda buatLangkah 1: Buat CodeCommit repositori.

    3. MasukNama cabang, pilih nama cabang yang berisi pembaruan kode terbaru Anda.

    Setelah Anda memilih nama repositori dan cabang, Amazon CloudWatch Aturan peristiwa yang akan dibuat untuk pipeline ini ditampilkan.

    Pilih Selanjutnya.

  7. Di Langkah 3: Tambahkan tahapPilihLewati tahap, dan kemudian menerima pesan peringatan dengan memilihLewatilagi.

    Pilih Selanjutnya.

  8. Di Langkah 4: Tambahkan tahap:

    1. MasukNama tindakanPilihDeploy. MasukDeploy penyediaPilihCloudFormation.

    2. MasukMode tindakanPilihMembuat atau memperbarui tumpukan.

    3. MasukNama tumpukan, masukkan nama untuk tumpukan. Ini adalah nama tumpukan yang akan dibuat template.

    4. MasukNama file output, masukkan nama untuk file output, sepertioutputs. Ini adalah nama file yang akan dibuat oleh tindakan setelah tumpukan dibuat.

    5. PerluasLanjutan. Di bawahPenimpaan parameter, masukkan menimpa templat Anda menimpa sebagai pasangan nilai kunci. Misalnya, template ini memerlukan penggantian berikut.

      { "DBClusterName": "MyDBCluster", "DBInstanceName": "MyDBInstance", "MasterUser": "UserName", "MasterPassword": "Password", "DBInstanceClass": "db.r4.large", "Purpose": "testing"}

      Jika Anda tidak memasukkan penggantian, template akan membuat tumpukan dengan nilai default.

    6. Pilih Selanjutnya.

    7. PilihMembuat Alur. Izinkan saluran pipa Anda berjalan. Pipa dua tahap Anda selesai dan siap untuk tahapan tambahan yang akan ditambahkan.

Langkah 3: TambahkanAWS CloudFormationtindakan penyebaran untuk membuat set perubahan

Buat tindakan berikutnya di pipeline Anda yang akan memungkinkanAWS CloudFormationuntuk membuat set perubahan sebelum tindakan persetujuan manual.

  1. Buka CodePipeline konsolhttps://console.aws.amazon.com/codepipeline/.

    Di bawahAlur, pilih pipa Anda dan pilihLihat. Diagram menunjukkan sumber pipa dan tahap penyebaran Anda.

  2. Pilih untuk mengedit pipeline, atau lanjutkan untuk menampilkan pipeline diDieditmodus.

  3. Pilih untuk mengeditDeploytahap.

  4. Tambahkan tindakan penyebaran yang akan membuat set perubahan untuk tumpukan yang dibuat dalam tindakan sebelumnya. Anda menambahkan tindakan ini setelah tindakan yang ada di panggung.

    1. MasukNama tindakan, ENTERPerubahan_Set. MasukPenyedia tindakanPilihAWS CloudFormation.

    2. MasukArtefak inputPilihSourceArtifact.

    3. MasukMode tindakanPilihMembuat atau mengganti set perubahan.

    4. MasukNama tumpukan, masukkan sintaks variabel seperti yang ditunjukkan. Ini adalah nama stack yang set perubahan dibuat untuk, di mana namespace defaultDeployVariablesditugaskan untuk tindakan.

      #{DeployVariables.StackName}
    5. MasukMengubah nama set, masukkan nama set perubahan.

      my-changeset
    6. MasukPenimpaan parameter, ubahPurposeparameter daritestingkepadaproduction.

      { "DBClusterName": "MyDBCluster", "DBInstanceName": "MyDBInstance", "MasterUser": "UserName", "MasterPassword": "Password", "DBInstanceClass": "db.r4.large", "Purpose": "production"}
    7. PilihSelesaiuntuk menyimpan tindakan.

Langkah 4: Menambahkan tindakan persetujuan manual

Buat tindakan persetujuan manual di pipeline Anda.

  1. Pilih untuk mengedit pipeline, atau lanjutkan untuk menampilkan pipeline diDieditmodus.

  2. Pilih untuk mengeditDeploytahap.

  3. Tambahkan tindakan persetujuan manual setelah tindakan penyebaran yang membuat set perubahan. Tindakan ini memungkinkan Anda memverifikasi perubahan sumber daya yang dibuatAWS CloudFormationsebelum pipeline mengeksekusi set perubahan.

Langkah 5: Tambahkan CloudFormationtindakan penyebaran untuk mengeksekusi set perubahan

Buat tindakan berikutnya di pipeline Anda yang memungkinkanAWS CloudFormationuntuk mengeksekusi perubahan yang ditetapkan setelah tindakan persetujuan manual.

  1. Buka CodePipeline konsolhttps://console.aws.amazon.com/codepipeline/.

    Di bawahAlur, pilih pipa Anda dan pilihLihat. Diagram menunjukkan sumber pipa dan tahap penyebaran Anda.

  2. Pilih untuk mengedit pipeline, atau lanjutkan untuk menampilkan pipeline diDieditmodus.

  3. Pilih untuk mengeditDeploytahap.

  4. Tambahkan tindakan penyebaran yang akan mengeksekusi set perubahan yang telah disetujui dalam tindakan manual sebelumnya:

    1. MasukNama tindakan, ENTERExecute_Change_Set. MasukPenyedia tindakanPilihAWS CloudFormation.

    2. MasukArtefak inputPilihSourceArtifact.

    3. MasukMode tindakanPilihMenjalankan set perubahan.

    4. MasukNama tumpukan, masukkan sintaks variabel seperti yang ditunjukkan. Ini adalah nama tumpukan yang set perubahan dibuat untuk.

      #{DeployVariables.StackName}
    5. MasukMengubah nama set, masukkan nama set perubahan yang Anda buat dalam tindakan sebelumnya.

      my-changeset
    6. PilihSelesaiuntuk menyimpan tindakan.

    7. Lanjutkan jalur pipa.

Langkah 6: Tambahkan CloudFormationaksi deployment

Buat tindakan akhir di pipeline Anda yang memungkinkanAWS CloudFormationuntuk mendapatkan nama stack dari variabel dalam file output dan menghapus stack.

  1. Buka CodePipeline konsolhttps://console.aws.amazon.com/codepipeline/.

    Di bawahAlur, pilih pipa Anda dan pilihLihat. Diagram menunjukkan sumber pipa dan tahap penyebaran Anda.

  2. Pilih untuk mengedit pipeline.

  3. Pilih untuk mengeditDeploytahap.

  4. Tambahkan tindakan penyebaran yang akan menghapus tumpukan:

    1. MasukNama tindakanPilihDeleteStack. MasukDeploy penyediaPilihCloudFormation.

    2. MasukMode tindakanPilihHapus tumpukan.

    3. MasukNama tumpukan, masukkan sintaks variabel seperti yang ditunjukkan. Ini adalah nama tumpukan yang akan dihapus.

    4. PilihSelesaiuntuk menyimpan tindakan.

    5. PilihSimpanuntuk menyimpan Alur.

    Pipa berjalan saat disimpan.