Tutorial: Buat pipeline yang menggunakan variabel dari AWS CloudFormation tindakan penerapan - 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 dari AWS CloudFormation tindakan penerapan

Dalam tutorial ini, Anda menggunakan AWS CodePipeline konsol untuk membuat pipeline dengan tindakan penerapan. Saat pipeline berjalan, template membuat tumpukan dan juga membuat outputs file. Output yang dihasilkan oleh template tumpukan adalah variabel yang dihasilkan oleh AWS CloudFormation tindakan di CodePipeline.

Dalam tindakan di mana Anda membuat tumpukan dari template, Anda menunjuk namespace variabel. Variabel yang dihasilkan oleh outputs file kemudian dapat dikonsumsi oleh tindakan selanjutnya. Dalam contoh ini, Anda membuat set perubahan berdasarkan StackName variabel yang dihasilkan oleh AWS CloudFormation tindakan. Setelah persetujuan manual, Anda menjalankan set perubahan dan kemudian membuat tindakan menghapus tumpukan yang menghapus tumpukan berdasarkan StackName variabel.

penting

Sebagai bagian dari pembuatan pipa, ember artefak S3 yang disediakan oleh pelanggan akan digunakan CodePipeline untuk artefak. (Ini berbeda dari bucket yang digunakan untuk aksi sumber S3.) Jika bucket artefak S3 berada di akun yang berbeda dari akun untuk pipeline Anda, pastikan bucket artefak S3 dimiliki oleh Akun AWS yang aman dan dapat diandalkan.

Prasyarat: Buat peran AWS CloudFormation layanan dan repositori CodeCommit

Anda harus sudah memiliki yang berikut:

  • Sebuah CodeCommit repositori. Anda dapat menggunakan AWS CodeCommit repositori yang Anda buat. Tutorial: Buat pipeline sederhana (CodeCommitrepositori)

  • Contoh ini membuat tumpukan Amazon DocumentDB dari template. Anda harus menggunakan AWS Identity and Access Management (IAM) untuk membuat peran AWS CloudFormation layanan dengan izin berikut untuk Amazon DocumentDB.

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

Langkah 1: Unduh, edit, dan unggah AWS CloudFormation templat sampel

Unduh file AWS CloudFormation template sampel dan unggah ke CodeCommit repositori Anda.

  1. Arahkan ke halaman templat sampel untuk Wilayah Anda. Misalnya, halaman untuk us-west-2 ada di. https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/sample-templates-services-us-west-2.html Di bawah Amazon DocumentDB, unduh template untuk Cluster Amazon DocumentDB. Nama filenya adalahdocumentdb_full_stack.yaml.

  2. Buka zip documentdb_full_stack.yaml file, dan buka di editor teks. Buat perubahan berikut.

    1. Untuk contoh ini, tambahkan Purpose: parameter berikut ke Parameters bagian Anda di template.

      Purpose: Type: String Default: testing AllowedValues: - testing - production Description: The purpose of this instance.
    2. Untuk contoh ini, tambahkan StackName output berikut ke Outputs: bagian Anda di template.

      StackName: Value: !Ref AWS::StackName
  3. Unggah file template ke AWS CodeCommit repositori Anda. Anda harus mengunggah file template yang tidak di-zip dan diedit ke direktori root repositori Anda.

    Untuk menggunakan CodeCommit konsol untuk mengunggah file Anda:

    1. Buka CodeCommit konsol, dan pilih repositori Anda dari daftar Repositori.

    2. Pilih Tambahkan file, lalu pilih Unggah file.

    3. Pilih Pilih 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: Buat 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 dengan tindakan AWS CloudFormation penerapan.

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

Untuk membuat alur dengan wizard
  1. Masuk ke AWS Management Console dan buka CodePipeline konsol di http://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 alur, di Nama alur, masukkan MyCFNDeployPipeline.

  4. Dalam tipe Pipeline, pilih V1 untuk keperluan tutorial ini. Anda juga dapat memilih V2; Namun, perhatikan bahwa jenis pipa berbeda dalam karakteristik dan harga. Untuk informasi selengkapnya, lihat Jenis pipa.

  5. Dalam peran Layanan, lakukan salah satu hal berikut:

    • Pilih Peran layanan baru CodePipeline untuk memungkinkan membuat peran layananIAM.

    • Pilih Peran layanan yang ada. Di Nama peran, pilih peran layanan Anda dari daftar.

  6. Di toko Artifact:

    1. Pilih Lokasi default untuk menggunakan penyimpanan artefak default, seperti bucket artefak Amazon S3 yang ditetapkan sebagai default, untuk pipeline Anda di Wilayah yang dipilih untuk pipeline.

    2. Pilih Lokasi khusus jika 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 membuat atau mengedit pipeline, Anda harus memiliki bucket artefak di Wilayah pipeline dan satu bucket artefak per AWS Wilayah tempat Anda menjalankan tindakan.

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

    Pilih Berikutnya.

  7. Pada Langkah 2: Tambahkan tahap sumber:

    1. Di penyedia Sumber, pilih AWS CodeCommit.

    2. Dalam nama Repositori, pilih nama CodeCommit repositori yang Anda buat. Langkah 1: Buat CodeCommit repositori

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

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

    Pilih Berikutnya.

  8. Pada Langkah 3: Tambahkan tahap build, pilih Lewati tahap build, lalu terima pesan peringatan dengan memilih Lewati lagi.

    Pilih Berikutnya.

  9. Pada Langkah 4: Tambahkan tahap penerapan:

    1. Di Nama tindakan, pilih Deploy. Di Penyedia Deploy, pilih CloudFormation.

    2. Dalam mode Tindakan, pilih Buat atau perbarui tumpukan.

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

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

    5. Perluas Lanjutan. Di bawah penggantian Parameter, masukkan penggantian template Anda 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 Berikutnya.

    7. Pilih Buat pipeline. Izinkan pipeline Anda berjalan. Pipa dua tahap Anda selesai dan siap untuk tahapan tambahan yang akan ditambahkan.

Langkah 3: Tambahkan tindakan AWS CloudFormation penerapan untuk membuat set perubahan

Buat tindakan selanjutnya di pipeline Anda yang AWS CloudFormation memungkinkan Anda membuat set perubahan sebelum tindakan persetujuan manual.

  1. Buka CodePipeline konsol di https://console.aws.amazon.com/codepipeline/.

    Di bawah Pipelines, pilih pipeline Anda dan pilih View. Diagram menunjukkan sumber pipa dan tahapan penerapan Anda.

  2. Pilih untuk mengedit pipeline, atau terus menampilkan pipeline dalam mode Edit.

  3. Pilih untuk mengedit tahap Deploy.

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

    1. Dalam nama Action, masukkan Change_Set. Di penyedia Action, pilih AWS CloudFormation .

    2. Di artefak Input, pilih SourceArtifact.

    3. Dalam mode Tindakan, pilih Buat atau ganti set perubahan.

    4. Dalam nama Stack, masukkan sintaks variabel seperti yang ditunjukkan. Ini adalah nama tumpukan tempat set perubahan dibuat untuk, di mana namespace default DeployVariables ditetapkan untuk tindakan.

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

      my-changeset
    6. Di Parameter Overrides, ubah Purpose parameter dari testing ke. production

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

Langkah 4: Tambahkan tindakan persetujuan manual

Buat tindakan persetujuan manual di pipeline Anda.

  1. Pilih untuk mengedit pipeline, atau terus menampilkan pipeline dalam mode Edit.

  2. Pilih untuk mengedit tahap Deploy.

  3. Tambahkan tindakan persetujuan manual setelah tindakan penerapan yang membuat set perubahan. Tindakan ini memungkinkan Anda memverifikasi perubahan sumber daya yang dibuat AWS CloudFormation sebelum pipeline mengeksekusi set perubahan.

Langkah 5: Tambahkan tindakan CloudFormation penerapan untuk menjalankan set perubahan

Buat tindakan berikutnya di pipeline Anda yang memungkinkan AWS CloudFormation untuk menjalankan set perubahan setelah tindakan persetujuan manual.

  1. Buka CodePipeline konsol di https://console.aws.amazon.com/codepipeline/.

    Di bawah Pipelines, pilih pipeline Anda dan pilih View. Diagram menunjukkan sumber pipa dan tahapan penerapan Anda.

  2. Pilih untuk mengedit pipeline, atau terus menampilkan pipeline dalam mode Edit.

  3. Pilih untuk mengedit tahap Deploy.

  4. Tambahkan tindakan penerapan yang akan menjalankan set perubahan yang disetujui dalam tindakan manual sebelumnya:

    1. Dalam nama Action, masukkan Execute_Change_Set. Di penyedia Action, pilih AWS CloudFormation.

    2. Di artefak Input, pilih SourceArtifact.

    3. Dalam mode Tindakan, pilih Jalankan set perubahan.

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

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

      my-changeset
    6. Pilih Selesai untuk menyimpan tindakan.

    7. Lanjutkan proses pipa.

Langkah 6: Tambahkan tindakan CloudFormation penerapan untuk menghapus tumpukan

Buat tindakan akhir di pipeline Anda yang memungkinkan AWS CloudFormation untuk mendapatkan nama tumpukan dari variabel dalam file output dan menghapus tumpukan.

  1. Buka CodePipeline konsol di https://console.aws.amazon.com/codepipeline/.

    Di bawah Pipelines, pilih pipeline Anda dan pilih View. Diagram menunjukkan sumber pipa dan tahapan penerapan Anda.

  2. Pilih untuk mengedit pipeline.

  3. Pilih untuk mengedit tahap Deploy.

  4. Tambahkan tindakan penerapan yang akan menghapus tumpukan:

    1. Dalam nama Action, pilih DeleteStack. Di Penyedia Deploy, pilih CloudFormation.

    2. Dalam mode Tindakan, pilih Hapus tumpukan.

    3. Dalam nama Stack, masukkan sintaks variabel seperti yang ditunjukkan. Ini adalah nama tumpukan yang akan dihapus oleh tindakan.

    4. Pilih Selesai untuk menyimpan tindakan.

    5. Pilih Simpan untuk menyimpan pipa.

    Pipa berjalan saat disimpan.