Tutorial: Buat pipeline yang menerbitkan aplikasi tanpa server Anda ke AWS Serverless Application Repository - 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 menerbitkan aplikasi tanpa server Anda ke AWS Serverless Application Repository

Anda dapat menggunakan AWS CodePipeline untuk terus mengirimkan aplikasi AWS SAM tanpa server Anda ke. AWS Serverless Application Repository

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.

Tutorial ini menunjukkan cara membuat dan mengkonfigurasi pipeline untuk membangun aplikasi tanpa server Anda yang di-host GitHub dan mempublikasikannya secara otomatis. AWS Serverless Application Repository Pipeline digunakan GitHub sebagai penyedia sumber dan CodeBuild sebagai penyedia build. Untuk memublikasikan aplikasi tanpa server ke AWS Serverless Application Repository, Anda menerapkan aplikasi (dari AWS Serverless Application Repository) dan mengaitkan fungsi Lambda yang dibuat oleh aplikasi tersebut sebagai penyedia tindakan Invoke di pipeline Anda. Kemudian Anda dapat terus mengirimkan pembaruan aplikasi ke AWS Serverless Application Repository, tanpa menulis kode apa pun.

penting

Banyak tindakan yang Anda tambahkan ke pipeline dalam prosedur ini melibatkan AWS sumber daya yang perlu Anda buat sebelum membuat pipeline. AWS sumber daya untuk tindakan sumber Anda harus selalu dibuat di AWS Wilayah yang sama tempat Anda membuat pipeline. Misalnya, jika Anda membuat pipeline di Wilayah AS Timur (Ohio), CodeCommit repositori Anda harus berada di Wilayah AS Timur (Ohio).

Anda dapat menambahkan tindakan lintas wilayah saat membuat pipeline. AWS sumber daya untuk tindakan lintas wilayah harus berada di AWS Wilayah yang sama di mana Anda berencana untuk menjalankan tindakan. Untuk informasi selengkapnya, lihat Menambahkan tindakan Lintas wilayah di CodePipeline.

Sebelum kamu memulai

Dalam tutorial ini, kita asumsikan sebagai berikut.

Langkah 1: Buat file buildspec.yml.

Buat buildspec.yml file dengan konten berikut, dan tambahkan ke repositori aplikasi tanpa server Anda. GitHub Ganti template.yml dengan AWS SAM template aplikasi Anda dan bucketname dengan bucket S3 tempat aplikasi paket Anda disimpan.

version: 0.2 phases: install: runtime-versions: python: 3.8 build: commands: - sam package --template-file template.yml --s3-bucket bucketname --output-template-file packaged-template.yml artifacts: files: - packaged-template.yml

Langkah 2: Buat dan konfigurasikan pipeline Anda

Ikuti langkah-langkah ini untuk membuat pipeline Anda di Wilayah AWS tempat Anda ingin mempublikasikan aplikasi tanpa server Anda.

  1. Masuk ke AWS Management Console dan buka CodePipeline konsol di https://console.aws.amazon.com/codepipeline/.

  2. Jika perlu, beralihlah ke Wilayah AWS tempat Anda ingin mempublikasikan aplikasi tanpa server Anda.

  3. Pilih Buat pipeline. Pada halaman Pilih pengaturan pipeline, dalam nama Pipeline, masukkan nama untuk pipeline Anda.

  4. Dalam tipe Pipeline, pilih V2. Untuk informasi selengkapnya, lihat Jenis pipa. Pilih Berikutnya.

  5. Di peran Layanan, pilih Peran layanan baru CodePipeline untuk memungkinkan membuat peran layananIAM.

  6. Biarkan pengaturan di bawah Pengaturan lanjutan pada defaultnya, lalu pilih Berikutnya.

  7. Pada halaman tahap Tambahkan sumber, di penyedia Sumber, pilih GitHub.

  8. Di bawah Koneksi, pilih koneksi yang ada atau buat yang baru. Untuk membuat atau mengelola koneksi untuk tindakan GitHub sumber Anda, lihatGitHub koneksi.

  9. Di Repositori, pilih repositori GitHub sumber Anda.

  10. Di Cabang, pilih GitHub cabang Anda.

  11. Biarkan default yang tersisa untuk tindakan sumber. Pilih Berikutnya.

  12. Pada halaman Add build stage, tambahkan tahapan build:

    1. Di Penyedia pembangunan, pilih AWS CodeBuild. Untuk Wilayah, gunakan Wilayah pipa.

    2. Pilih Buat proyek.

    3. Di Nama proyek, masukkan nama untuk proyek pembangunan ini.

    4. Di Citra lingkungan, pilih Citra terkelola. Untuk Sistem operasi, pilih Ubuntu.

    5. Untuk versi Runtime dan Runtime, pilih runtime dan versi yang diperlukan untuk aplikasi tanpa server Anda.

    6. Untuk Peran layanan, pilih Peran layanan baru.

    7. Untuk spesifikasi Build, pilih Gunakan file buildspec.

    8. Pilih Lanjutkan ke CodePipeline. Ini membuka CodePipeline konsol dan membuat CodeBuild proyek yang menggunakan buildspec.yml di repositori Anda untuk konfigurasi. Proyek build menggunakan peran layanan untuk mengelola Layanan AWS izin. Langkah ini mungkin memakan waktu beberapa menit.

    9. Pilih Berikutnya.

  13. Pada halaman Tambahkan tahap penerapan, pilih Lewati tahap penerapan, lalu terima pesan peringatan dengan memilih Lewati lagi. Pilih Berikutnya.

  14. Pilih Buat pipeline. Anda akan melihat diagram yang menunjukkan sumber dan tahap build.

  15. Berikan izin peran CodeBuild layanan untuk mengakses bucket S3 tempat aplikasi paket Anda disimpan.

    1. Pada tahap Build pipeline baru Anda, pilih CodeBuild.

    2. Pilih tab Build details.

    3. Di Lingkungan, pilih peran CodeBuild layanan untuk membuka IAM konsol.

    4. Perluas pilihan untukCodeBuildBasePolicy, dan pilih Edit kebijakan.

    5. Pilih JSON.

    6. Tambahkan pernyataan kebijakan baru dengan konten berikut. Pernyataan ini memungkinkan CodeBuild untuk memasukkan objek ke dalam bucket S3 tempat aplikasi paket Anda disimpan. Ganti bucketname dengan nama ember S3 Anda.

      { "Effect": "Allow", "Resource": [ "arn:aws:s3:::bucketname/*" ], "Action": [ "s3:PutObject" ] }
    7. Pilih Tinjau kebijakan.

    8. Pilih Simpan perubahan.

Langkah 3: Menyebarkan aplikasi publikasi

Ikuti langkah-langkah ini untuk menyebarkan aplikasi yang berisi fungsi Lambda yang melakukan publikasi ke. AWS Serverless Application Repository Aplikasi ini adalah aws-serverless-codepipeline-serverlessrepo-publish.

catatan

Anda harus menerapkan aplikasi yang Wilayah AWS sama dengan pipeline Anda.

  1. Buka halaman aplikasi, dan pilih Deploy.

  2. Pilih Saya mengakui bahwa aplikasi ini membuat IAM peran khusus.

  3. Pilih Deploy.

  4. Pilih View AWS CloudFormation Stack untuk membuka AWS CloudFormation konsol.

  5. Perluas bagian Sumber Daya. Anda lihat ServerlessRepoPublish, yang merupakan tipe AWS: :Lambda: :Function. Catat ID fisik sumber daya ini untuk langkah selanjutnya. Anda menggunakan ID fisik ini saat membuat tindakan publikasi baru di CodePipeline.

Langkah 4: Buat tindakan publikasi

Ikuti langkah-langkah ini untuk membuat tindakan publikasi di pipeline Anda.

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

  2. Di bagian navigasi kiri, pilih pipeline yang ingin Anda edit.

  3. Pilih Edit.

  4. Setelah tahap terakhir dari pipeline Anda saat ini, pilih + Tambah tahap. Di Nama panggung masukkan nama, sepertiPublish, dan pilih Tambah tahap.

  5. Di tahap baru, pilih + Tambahkan grup tindakan.

  6. Masukkan nama tindakan. Dari penyedia Action, di Invoke, pilih AWS Lambda.

  7. Dari artefak Input, pilih BuildArtifact.

  8. Dari nama Fungsi, pilih ID fisik dari fungsi Lambda yang Anda catat di langkah sebelumnya.

  9. Pilih Simpan untuk tindakan.

  10. Pilih Selesai untuk panggung.

  11. Di kanan atas, pilih Simpan.

  12. Untuk memverifikasi pipeline Anda, buat perubahan pada aplikasi Anda di GitHub. Misalnya, ubah deskripsi aplikasi di Metadata bagian file AWS SAM template Anda. Lakukan perubahan dan dorong ke GitHub cabang Anda. Ini memicu pipeline Anda untuk berjalan. Ketika pipeline selesai, periksa apakah aplikasi Anda telah diperbarui dengan perubahan Anda di file AWS Serverless Application Repository.