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
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.
-
Anda sudah familiar denganAWS Serverless Application Model(AWS SAM)danAWS Serverless Application Repository.
-
Anda memiliki aplikasi tanpa server yang di-host di GitHub yang telah Anda publikasikan keAWS Serverless Application RepositorymenggunakanAWS SAMKLI. Untuk mempublikasikan contoh aplikasi keAWS Serverless Application Repository, lihatMulai Cepat: Aplikasi PublikasidiAWS Serverless Application RepositoryPanduan Pengembang. Untuk mempublikasikan aplikasi Anda sendiri keAWS Serverless Application Repository, lihatPenerbitan Aplikasi MenggunakanAWS SAMCLIdiAWS Serverless Application ModelPanduan Pengembang.
Langkah 1: Membuat file buildspec.yml~
Buatbuildspec.yml
file dengan isi berikut, dan tambahkan ke repositori GitHub aplikasi tanpa server Anda. Gantitemplate.yml
dengan aplikasi AndaAWS SAMtemplat danbucketname
dengan 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-bucketbucketname
--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.
Masuk keAWS Management Consoledan buka konsol CodePipeline dihttps://console.aws.amazon.com/codepipeline/
. -
Jika perlu, beralih keWilayah AWSdi mana Anda ingin mempublikasikan aplikasi tanpa server Anda.
-
PilihMembuat alur. PadaPilih pengaturan pipapage, diNama pipa, masukkan nama untuk pipa Anda.
-
MasukPeran layanan, choosePeran layanan baruuntuk memungkinkan CodePipeline untuk membuat peran layanan di IAM.
-
Biarkan pengaturan di bawahPengaturan lanjutandi default mereka, dan kemudian memilihSelanjutnya.
-
PadaTambahkan tahap sumberpage, diPenyedia sumber, chooseGitHub.
-
Di bawahKoneksi, pilih koneksi yang sudah ada atau buat yang baru. Untuk membuat atau mengelola koneksi untuk tindakan sumber GitHub Anda, lihatKoneksi GitHub.
-
MasukRepositori, pilih repositori sumber GitHub Anda.
-
MasukCabang, pilih cabang GitHub Anda.
-
Tinggalkan default yang tersisa untuk tindakan sumber. Pilih Selanjutnya.
-
PadaTambahkan tahap membangunhalaman, tambahkan sebuah tahap membangun:
-
Di Penyedia pembangunan, pilih AWS CodeBuild. UntukWilayah, gunakan daerah pipa.
-
Pilih Buat proyek.
-
Di Nama proyek, masukkan nama untuk proyek pembangunan ini.
-
Di Citra lingkungan, pilih Citra terkelola. Untuk Sistem operasi, pilih Ubuntu.
-
UntukWaktu pengoperasiandanVersi waktu aktif, pilih runtime dan versi yang diperlukan untuk aplikasi tanpa server Anda.
-
Untuk Peran layanan, pilih Peran layanan baru.
-
UntukSpesifikasi Build, chooseMenggunakan file buildspec.
-
Pilih Lanjutkan ke CodePipeline. Hal ini membuka konsol CodePipeline dan membuat sebuah proyek CodeBuild yang menggunakan
buildspec.yml
di repositori Anda untuk konfigurasi. Proyek membangun menggunakan peran layanan untuk mengelolaAWSizin layanan. Langkah ini mungkin memakan waktu beberapa menit. -
Pilih Selanjutnya.
-
-
PadaTambahkan tahap deployhalaman, pilihLewati tahap deploy, dan kemudian menerima pesan peringatan dengan memilihLewatilagi. Pilih Selanjutnya.
-
PilihMembuat alur. Anda harus melihat diagram yang menunjukkan sumber dan membangun tahap.
-
Berikan izin peran layanan CodeBuild untuk mengakses bucket S3 tempat aplikasi dikemas Anda disimpan.
-
DiMembanguntahap pipa baru Anda, pilihCodeBuild.
-
PilihRincian Bangunantab.
-
MasukLingkungan, pilih peran layanan CodeBuild untuk membuka konsol IAM.
-
Perluas seleksi untuk
CodeBuildBasePolicy
, dan pilihKebijakan edit. -
PilihJSON.
-
Tambahkan pernyataan kebijakan baru dengan konten berikut. Pernyataan ini memungkinkan CodeBuild untuk menempatkan objek ke dalam bucket S3 tempat aplikasi dikemas Anda disimpan. Ganti
bucketname
dengan nama bucket S3 Anda.{ "Effect": "Allow", "Resource": [ "arn:aws:s3:::
bucketname
/*" ], "Action": [ "s3:PutObject" ] } -
Pilih Tinjau kebijakan.
-
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.
Anda harus menyebarkan aplikasi ke yang samaWilayah AWSsebagai alur Anda.
-
Pergi kepenerapan
halaman, dan pilihDeploy. -
PilihSaya mengakui bahwa aplikasi ini menciptakan IAM role kustom.
-
Pilih Deploy.
-
PilihLihatAWS CloudFormationTumpukanmembukaAWS CloudFormationkonsol.
-
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.
-
Buka konsol CodePipeline di https://console.aws.amazon.com/codepipeline/
. -
Di bagian navigasi kiri, pilih pipa yang ingin Anda edit.
-
Pilih Edit.
-
Setelah tahap terakhir dari pipa Anda saat ini, pilih+ Tambahkan tahap. MasukNama tahapmasukkan nama, seperti
Publish
, dan pilihTambahkan tahap. -
Di tahap baru, pilih+ Tambahkan grup aksi.
-
Masukkan nama tindakan. FromPenyedia tindakan, diAktifkan, chooseAWS Lambda.
-
Fromartefak masukan, chooseBuildArtifact.
-
FromNama fungsi, pilih ID fisik fungsi Lambda yang Anda catat pada langkah sebelumnya.
-
PilihSimpanuntuk tindakan.
-
PilihSelesaiuntuk tahap.
-
Di kanan atas, pilihSimpan.
-
Untuk memverifikasi pipeline Anda, buat perubahan pada aplikasi Anda di GitHub. Misalnya, ubah deskripsi aplikasi di
Metadata
bagian 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.