Mulai Cepat: Penerbitan Aplikasi - AWS Serverless Application Repository

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Mulai Cepat: Penerbitan Aplikasi

Panduan ini memandu Anda melalui langkah-langkah untuk men-download, membangun, menguji dan mempublikasikan contoh aplikasi tanpa server untukAWS Serverless Application Repository menggunakanAWS SAM CLI. Anda dapat menggunakan contoh aplikasi ini sebagai titik awal untuk mengembangkan dan memublikasikan aplikasi tanpa server Anda sendiri.

Gambaran Umum

Langkah-langkah berikut menguraikan cara mengunduh, membangun, dan mempublikasikan contoh aplikasi tanpa server:

  1. Inisialisasi. Download contoh aplikasi dari template menggunakansam init.

  2. Uji Lokal. Uji aplikasi secara lokal menggunakansam local invoke dan/atausam local start-api. Perhatikan bahwa dengan perintah ini, meskipun fungsi Lambda Anda dipanggil secara lokal, ia membaca dari dan menulis keAWS sumber daya diAWS Cloud.

  3. Package. Ketika Anda puas dengan fungsi Lambda Anda, bundel fungsi Lambda,AWS SAM template, dan dependensi apa pun ke dalam paketAWS CloudFormation deployment menggunakansam package. Pada langkah ini Anda juga akan memasukkan informasi tentang aplikasi yang akan diunggah keAWS Serverless Application Repository.

  4. Publikasikan. Publikasikan aplikasi keAWS Serverless Application Repository penggunaansam publish. Pada akhir langkah ini, Anda dapat melihat aplikasi AndaAWS Serverless Application Repository dan menerapkannya keAWS Cloud menggunakanAWS Serverless Application Repository.

ContohAplikasi Hello World di bagian berikutnya memandu Anda melalui langkah-langkah ini dalam membangun dan menerbitkan aplikasi tanpa server.

Aplikasi Hello World

Dalam latihan ini, Anda mengunduh dan menguji aplikasi tanpa server Hello World yang mewakili backend API sederhana. Ini memiliki titik akhir Amazon API Gateway yang mendukung operasi GET dan fungsi Lambda. Ketika permintaan GET dikirim ke titik akhir, API Gateway akan memanggil fungsi Lambda tersebut. Kemudian,AWS Lambda mengeksekusi fungsi, yang hanya mengembalikanhello world pesan.

Aplikasi ini memiliki komponen berikut:

  • AWS SAMTemplate yang mendefinisikan duaAWS sumber daya untuk aplikasi Hello World: layanan API Gateway dengan operasi GET, dan fungsi Lambda. Template juga mendefinisikan pemetaan antara operasi GET API Gateway dan fungsi Lambda.

  • Kode aplikasi yang ditulis dengan Python.

Sebelum Anda Memulai

Pastikan bahwa Anda memiliki pengaturan yang diperlukan untuk latihan ini:

Langkah 1: Inisialisasikan Aplikasi

Dalam bagian ini, Anda mengunduh aplikasi contoh, yang terdiri dari templat AWS SAM dan kode aplikasi.

Untuk menginisialisasi aplikasi
  1. Jalankan perintah berikut pada prompt perintah CLI AWS SAM.

    sam init --runtime python3.6
  2. Tinjau isi direktori yang dibuat oleh perintah (sam-app/):

    • template.yaml— Mendefinisikan duaAWS sumber daya yang dibutuhkan aplikasi Hello World: fungsi Lambda dan titik akhir API Gateway yang mendukung operasi GET. Templat juga menentukan pemetaan antara dua sumber daya.

    • Konten yang terkait dengan kode aplikasi Hello World:

      • hello_world/direktori - Berisi kode aplikasi, yang kembalihello world ketika Anda menjalankannya.

    catatan

    Untuk latihan ini, kode aplikasi ditulis dengan Python, dan Anda menentukan runtime dalaminit perintah. AWS Lambdamendukung bahasa tambahan untuk membuat kode aplikasi. Jika Anda menentukan runtime lain yang didukung,init perintah tersebut menyediakan kode Hello World dalam bahasa yang ditentukan, danREADME.md file yang dapat Anda ikuti untuk bahasa tersebut. Untuk informasi tentang runtime yang didukung, lihat Lingkungan Eksekusi Lambda dan Pustaka yang Tersedia.

Langkah 2: Uji Aplikasi secara Lokal

Sekarang setelah Anda memilikiAWS SAM aplikasi di mesin lokal Anda, ikuti langkah-langkah di bawah ini untuk mengujinya secara lokal.

Untuk menguji aplikasi secara lokal
  1. Mulai endpoint API Gateway secara lokal. Anda harus menjalankan perintah berikut dari direktori yang berisitemplate.yaml file tersebut.

    sam-app> sam local start-api --region us-east-1

    Perintah mengembalikan endpoint API Gateway, yang dapat Anda kirimkan permintaan untuk pengujian lokal.

  2. Uji aplikasi. Salin URL endpoint API Gateway, tempelkan di browser, dan pilih Enter. Contoh URL endpoint API Gateway adalahhttp://127.0.0.1:3000/hello.

    API Gateway secara lokal memanggil fungsi Lambda tempat endpoint dipetakan. Fungsi Lambda dijalankan dalam kontainer Docker lokal dan kembalihello world. API Gateway mengembalikan respons ke browser yang berisi teks.

Latihan: Ubah string pesan

Setelah berhasil menguji aplikasi sampel, Anda dapat bereksperimen dengan membuat modifikasi sederhana: ubah string pesan yang dikembalikan.

  1. Edit/hello_world/app.py file untuk mengubah string pesan dari'hello world' ke'Hello World!'.

  2. Muat ulang URL pengujian di browser Anda dan amati string baru.

Anda akan melihat bahwa kode baru Anda dimuat secara dinamis, tanpa Anda harus me-restartsam local proses.

Langkah 3: Buat Package aplikasi

Setelah menguji aplikasi Anda secara lokal, Anda gunakanAWS SAM CLI untuk membuat paket deployment danAWS SAM templat yang dikemas.

catatan

Pada langkah-langkah berikut, Anda membuat file.zip untuk isihello_world/ direktori, yang berisi kode aplikasi. File.zip ini adalah paket penyebaran untuk aplikasi tanpa server Anda. Untuk informasi selengkapnya, lihat Membuat Package Deployment (Python) di PanduanAWS Lambda Pengembang.

Untuk membuat paket deployment Lambda
  1. TambahkanMetadata bagian ke fileAWS SAM template Anda yang menyediakan informasi aplikasi yang diperlukan. Untuk informasi selengkapnya tentangMetadata bagianAWS SAM template, lihat Properti Bagian MetdataAWS SAM Template di PanduanAWS Serverless Application Model Pengembang.

    Berikut adalahMetadata bagian contoh:

    Metadata: AWS::ServerlessRepo::Application: Name: my-app Description: hello world Author: user1 SpdxLicenseId: Apache-2.0 LicenseUrl: LICENSE.txt ReadmeUrl: README.md Labels: ['tests'] HomePageUrl: https://github.com/user1/my-app-project SemanticVersion: 0.0.1 SourceCodeUrl: https://github.com/user1/my-app-project

    ReadmeUrlPropertiLicenseUrl dan properti dapat berupa referensi ke file lokal (seperti pada contoh di atas), atau dapat berupa tautan ke bucket Amazon S3 yang sudah menampung artefak ini.

  2. Buat bucket S3 di lokasi tempat Anda ingin menyimpan kode yang dipaketkan. Jika Anda ingin menggunakan bucket S3 yang sudah ada, lewati langkah ini.

    sam-app> aws s3 mb s3://bucketname
  3. Buat paket deployment fungsi Lambda dengan menjalankan perintahpackageAWS SAM CLI berikut ini.

    sam-app> sam package \ --template-file template.yaml \ --output-template-file packaged.yaml \ --s3-bucket bucketname

    Perintah ini melakukan hal berikut:

    • Menitsleting kontenaws-sam/hello_world/ direktori dan mengunggahnya ke Amazon S3.

    • Mengunggah paket penerapan, file README, dan file LICENSE ke bucket Amazon S3 yang ditentukan oleh--s3-bucket opsi.

    • Menampilkan file templat baru, yang disebutpackaged.yaml, yang Anda gunakan di langkah berikutnya untuk memublikasikan aplikasi tersebutAWS Serverless Application Repository. Filepackaged.yaml templat mirip dengan file templat asli (template.yaml), tetapi memiliki perbedaan kunci—ReadmeUrl properti intiCodeUri,LicenseUrl, dan menunjuk pada bucket Amazon S3 dan objek yang mencakup artefaknya masing-masing. Sinppet berikut dari contoh file templat packaged.yaml menunjukkan properti CodeUri:

      HelloWorldFunction: Type: AWS::Serverless::Function # For more information about function resources, see https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#awsserverlessfunction Properties: CodeUri: s3://bucketname/fbd77a3647a4f47a352fcObjectGUID ...

Langkah 4: Publikasikan Aplikasi

Setelah Anda membuat paket deployment tersebut, Anda menggunakannya untuk memublikasikan aplikasi keAWS Serverless Application Repository.

Untuk memublikasikan aplikasi tanpa server keAWS Serverless Application Repository
  • Jalankan perintah berikut untuk mempublikasikan aplikasi baruAWS Serverless Application Repository dengan versi pertama yang dibuat sebagai 0.0.1.

    sam-app> sam publish \ --template packaged.yaml \ --region us-east-1
catatan

Aplikasi akan dibuat sebagai pribadi secara default. Anda harus berbagi aplikasi sebelumAWS Akun lain akan diizinkan untuk melihat dan men-deploy aplikasi Anda. Lihat Langkah Berikutnya di bawah ini untuk detail selengkapnya tentang berbagi aplikasi Anda.

Langkah Selanjutnya

Sekarang bahwa Anda telah menerbitkan aplikasi sampel Anda, berikut adalah beberapa hal yang mungkin ingin Anda lakukan dengan itu.

  • Lihat Aplikasi Anda diAWS Serverless Application Repository - Output darisam publish perintah akan menyertakan tautan keAWS Serverless Application Repository langsung ke halaman detail aplikasi Anda. Anda juga dapat membuka halamanAWS Serverless Application Repository arahan dan mencari aplikasi Anda.

  • Bagikan Aplikasi Anda — Karena aplikasi Anda diatur ke pribadi secara default, aplikasi tersebut tidak terlihat olehAWS Akun lain. Untuk berbagi aplikasi Anda dengan orang lain, Anda harus membuatnya publik atau memberikan izin untuk daftarAWS Akun tertentu. Untuk informasi tentang berbagi aplikasi Anda menggunakanAWS CLI lihatAWS Serverless Application RepositoryContoh Kebijakan Aplikasi. Untuk informasi tentang berbagi aplikasi Anda menggunakan konsol, lihatBerbagi Aplikasi.

Informasi Selengkapnya

Untuk informasi selengkapnya tentangMetadata bagianAWS SAM template,sam package dansam publish perintahAWS SAM CLI, lihat Menerbitkan Aplikasi MenggunakanAWS SAM CLI di PanduanAWS Serverless Application Model Pengembang.