Tutorial: Membuat pipa yang mempublikasikan 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: Membuat pipa yang mempublikasikan aplikasi tanpa server Anda keAWS Serverless Application Repository

Anda dapat menggunakanAWS CodePipelineuntuk terus memberikanAWS SAMaplikasi nirserver keAWS Serverless Application Repository.

Tutorial ini menunjukkan cara membuat dan mengkonfigurasi pipeline untuk membangun aplikasi tanpa server Anda yang di-host di GitHub dan mempublikasikannya keAWS Serverless Application Repositorysecara otomatis. Pipa menggunakan GitHub sebagai penyedia sumber dan CodeBuild sebagai penyedia build. Untuk mempublikasikan aplikasi tanpa server Anda keAWS Serverless Application Repository, Anda menyebarkanpenerapan(dariAWS Serverless Application Repository) dan kaitkan fungsi Lambda yang dibuat oleh aplikasi itu sebagai penyedia tindakan Invoke di pipeline Anda. Kemudian Anda dapat terus memberikan update aplikasi keAWS Serverless Application Repository, tanpa menulis kode apapun.

penting

Banyak tindakan yang Anda tambahkan ke saluran pipa Anda dalam prosedur ini melibatkanAWSsumber daya yang perlu Anda buat sebelum membuat pipa.AWSsumber daya untuk tindakan sumber Anda harus selalu dibuat dengan cara yang samaAWSWilayah di mana Anda membuat pipa Anda. Misalnya, jika Anda membuat pipa Anda di Wilayah US East (Ohio), repositori CodeCommit Anda harus berada di Wilayah US East (Ohio).

Anda dapat menambahkan tindakan lintas wilayah saat membuat pipa Anda.AWSuntuk tindakan lintas wilayah harus berada diAWSWilayah di mana Anda berencana untuk mengeksekusi tindakan. Untuk informasi selengkapnya, lihat Tambahkan aksi lintas Wilayah di CodePipeline.

Sebelum kamu memulai

Dalam tutorial ini, kita berasumsi sebagai berikut.

Langkah 1: Membuat file buildspec.yml~

Buatbuildspec.ymlfile dengan isi berikut, dan tambahkan ke repositori GitHub aplikasi tanpa server Anda. Gantitemplate.ymldengan aplikasi AndaAWS SAMtemplat danbucketnamedengan bucket S3 tempat aplikasi dikemas 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 pipa Anda diWilayah AWSdi mana Anda ingin mempublikasikan aplikasi tanpa server Anda.

  1. Masuk keAWS Management Consoledan buka konsol CodePipeline dihttps://console.aws.amazon.com/codepipeline/.

  2. Jika perlu, beralih keWilayah AWSdi mana Anda ingin mempublikasikan aplikasi tanpa server Anda.

  3. PilihMembuat alur. PadaPilih pengaturan pipapage, diNama pipa, masukkan nama untuk pipa Anda.

  4. MasukPeran layanan, choosePeran layanan baruuntuk memungkinkan CodePipeline untuk membuat peran layanan di IAM.

  5. Biarkan pengaturan di bawahPengaturan lanjutandi default mereka, dan kemudian memilihSelanjutnya.

  6. PadaTambahkan tahap sumberpage, diPenyedia sumber, chooseGitHub.

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

  8. MasukRepositori, pilih repositori sumber GitHub Anda.

  9. MasukCabang, pilih cabang GitHub Anda.

  10. Tinggalkan default yang tersisa untuk tindakan sumber. Pilih Selanjutnya.

  11. PadaTambahkan tahap membangunhalaman, tambahkan sebuah tahap membangun:

    1. Di Penyedia pembangunan, pilih AWS CodeBuild. UntukWilayah, gunakan daerah 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. UntukWaktu pengoperasiandanVersi waktu aktif, pilih runtime dan versi yang diperlukan untuk aplikasi tanpa server Anda.

    6. Untuk Peran layanan, pilih Peran layanan baru.

    7. UntukSpesifikasi Build, chooseMenggunakan file buildspec.

    8. Pilih Lanjutkan ke CodePipeline. Hal ini membuka konsol CodePipeline dan membuat sebuah proyek CodeBuild yang menggunakanbuildspec.ymldi repositori Anda untuk konfigurasi. Proyek membangun menggunakan peran layanan untuk mengelolaAWSizin layanan. Langkah ini mungkin memakan waktu beberapa menit.

    9. Pilih Selanjutnya.

  12. PadaTambahkan tahap deployhalaman, pilihLewati tahap deploy, dan kemudian menerima pesan peringatan dengan memilihLewatilagi. Pilih Selanjutnya.

  13. PilihMembuat alur. Anda harus melihat diagram yang menunjukkan sumber dan membangun tahap.

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

    1. DiMembanguntahap pipa baru Anda, pilihCodeBuild.

    2. PilihRincian Bangunantab.

    3. MasukLingkungan, pilih peran layanan CodeBuild untuk membuka konsol IAM.

    4. Perluas seleksi untukCodeBuildBasePolicy, dan pilihKebijakan edit.

    5. PilihJSON.

    6. Tambahkan pernyataan kebijakan baru dengan konten berikut. Pernyataan ini memungkinkan CodeBuild untuk menempatkan objek ke dalam bucket S3 tempat aplikasi dikemas Anda disimpan. Gantibucketnamedengan nama bucket S3 Anda.

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

    8. Pilih Save changes (Simpan perubahan).

Langkah 3: Men-deploy aplikasi publikasi

Ikuti langkah-langkah berikut untuk menyebarkan aplikasi yang berisi fungsi Lambda yang melakukan publikasi keAWS Serverless Application Repository. Aplikasi iniaws-serverless-codepipeline-serverlessrepo-mempublikasikan.

catatan

Anda harus menyebarkan aplikasi ke yang samaWilayah AWSsebagai alur Anda.

  1. Pergi kepenerapanhalaman, dan pilihDeploy.

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

  3. Pilih Deploy.

  4. PilihLihatAWS CloudFormationTumpukanmembukaAWS CloudFormationkonsol.

  5. Perluas bagian Sumber Daya. Anda lihatServerlessRepoPublish, yang merupakan jenisFungsi AWS Lambda. Catat ID fisik sumber daya ini untuk langkah berikutnya. Anda menggunakan ID fisik ini saat membuat tindakan publikasi baru di CodePipeline.

Langkah 4: Membuat tindakan publikasi

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

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

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

  3. Pilih Edit.

  4. Setelah tahap terakhir dari pipa Anda saat ini, pilih+ Tambahkan tahap. MasukNama tahapmasukkan nama, sepertiPublish, dan pilihTambahkan tahap.

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

  6. Masukkan nama tindakan. FromPenyedia tindakan, diAktifkan, chooseAWS Lambda.

  7. Fromartefak masukan, chooseBuildArtifact.

  8. FromNama fungsi, pilih ID fisik fungsi Lambda yang Anda catat pada langkah sebelumnya.

  9. PilihSimpanuntuk tindakan.

  10. PilihSelesaiuntuk tahap.

  11. Di kanan atas, pilihSimpan.

  12. Untuk memverifikasi pipeline Anda, buat perubahan pada aplikasi Anda di GitHub. Misalnya, ubah deskripsi aplikasi diMetadatabagian AndaAWS SAMfile templat. Komit perubahan dan dorong ke cabang GitHub Anda. Hal ini memicu pipa Anda untuk menjalankan. Ketika pipa selesai, periksa apakah aplikasi Anda telah diperbarui dengan perubahan Anda diAWS Serverless Application Repository.