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

Anda dapat menggunakanAWS CodePipeline untuk terus mengirimkan aplikasiAWS SAM tanpa server Anda keAWS Serverless Application Repository.

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

penting

Banyak tindakan yang Anda tambahkan ke pipeline dalam prosedur ini melibatkanAWS sumber daya yang perlu Anda buat sebelum membuat pipeline. AWSsumber daya untuk tindakan sumber Anda membuat alur yang sama dengan tempat Anda membuat alur Anda membuat alur Anda membuat alur Anda membuat alur Anda membuat alurAWS Anda membuat alur Anda membuat alur Anda membuat alur Anda membuat alur Anda membuat Misalnya, jika Anda membuat alur Anda di Wilayah US East (Ohio), CodeCommit repositori Anda harus berada di Wilayah US East (Ohio).

Anda dapat menambahkan tindakan lintas wilayah saat membuat pipeline. AWSsumber daya untuk tindakan lintas wilayah harus berada diAWS Wilayah yang sama di mana Anda berencana untuk melakukan tindakan. Untuk informasi selengkapnya, lihat Menambahkan tindakan Lintas wilayah diCodePipeline.

Sebelum kamu memulai

Dalam tutorial ini, kami menganggap hal berikut ini.

Langkah 1: Buat file buildspec.yl

Buatbuildspec.yml file dengan konten berikut, dan tambahkan ke GitHub repositori aplikasi tanpa server Anda. Ganti template.ymldenganAWS SAM template dan bucketname aplikasi Anda 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 mengonfigurasi alur Anda

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

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

  2. Jika perlu, beralih keWilayah AWS tempat Anda ingin mempublikasikan aplikasi tanpa server Anda.

  3. Pilih Buat pipeline. Pada halaman Pilih pengaturan pipeline, di Nama pipa, masukkan nama untuk pipeline Anda.

  4. Dalam peran Layanan, pilih Peran layanan baru untuk memungkinkan CodePipeline untuk membuat peran layanan dalam IAM.

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

  6. Pada halaman Tambahkan tahap sumber, di Penyedia sumber, pilih GitHub.

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

  8. Di Repository, pilih repositori GitHub sumber Anda.

  9. Di Branch, pilih GitHub cabang Anda.

  10. Biarkan default yang tersisa untuk aksi sumber. Pilih Selanjutnya.

  11. Pada halaman Tambahkan tahap build, tambahkan sebuah tahap build:

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

    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 menciptakan CodeBuild proyek yang menggunakanbuildspec.yml dalam repositori Anda untuk konfigurasi. Proyek build menggunakan peran layanan untuk mengelolaLayanan AWS izin. Langkah ini mungkin memakan waktu beberapa menit.

    9. Pilih Selanjutnya.

  12. Di halaman Tambahkan tahap men-deploy, pilih Lewati tahap men-deploy, dan terima pesan peringatan dengan memilih Lewati lagi. Pilih Selanjutnya.

  13. Pilih Buat pipeline. Anda akan melihat diagram yang menunjukkan sumber dan membangun tahap.

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

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

    2. Pilih tab Rincian Build.

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

    4. Perluas pilihan untukCodeBuildBasePolicy, dan pilih Edit kebijakan.

    5. PilihJSON.

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

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

    8. Pilih Save changes (Simpan perubahan).

Langkah 3: Deploy aplikasi publikasi

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

catatan

Anda harus menerapkan aplikasi yangWilayah AWS sama dengan pipeline Anda.

  1. Buka halaman aplikasi, dan pilih Deploy.

  2. PilihSaya mengakui bahwa aplikasi ini menciptakan IAM role kustom.

  3. Pilih Deploy.

  4. Pilih ViewAWS CloudFormation Stack untuk membukaAWS CloudFormation konsol.

  5. Perluas bagian Sumber Daya. Anda lihat ServerlessRepoPublish, yang merupakan jenis AWS::Lambda::Function. Catat ID fisik sumber ini untuk langkah berikutnya. Anda menggunakan ID fisik ini saat membuat aksi publikasi baru CodePipeline.

Langkah 4: Buat tindakan publikasi

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

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

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

  3. Pilih Edit.

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

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

  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 GitHub. Misalnya, ubah deskripsi aplikasi diMetadata bagian fileAWS SAM template Anda. Komit perubahan dan dorong ke GitHub cabang Anda. Ini memicu pipa Anda untuk berjalan. Ketika pipeline selesai, periksa apakah aplikasi Anda telah diperbarui dengan perubahan Anda di AWS Serverless Application Repository.