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:
-
Inisialisasi. Download contoh aplikasi dari template menggunakan
sam init
. -
Uji Lokal. Uji aplikasi secara lokal menggunakan
sam 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. -
Package. Ketika Anda puas dengan fungsi Lambda Anda, bundel fungsi Lambda,AWS SAM template, dan dependensi apa pun ke dalam paketAWS CloudFormation deployment menggunakan
sam package
. Pada langkah ini Anda juga akan memasukkan informasi tentang aplikasi yang akan diunggah keAWS Serverless Application Repository. -
Publikasikan. Publikasikan aplikasi keAWS Serverless Application Repository penggunaan
sam 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:
-
Anda harus memilikiAWS akun dengan pengguna IAM yang memiliki izin administrator. Lihat MengaturAWS Akun.
-
Anda harus memilikiAWS SAM CLI (antarmuka baris perintah) yang terinstal. Lihat MemasangAWS SAM CLI.
-
Anda harus memiliki versi 1.16.77 atau yang lebih baru yangAWS CLI terinstal. Lihat MemasangAWS Command Line Interface.
Langkah 1: Inisialisasikan Aplikasi
Dalam bagian ini, Anda mengunduh aplikasi contoh, yang terdiri dari templat AWS SAM dan kode aplikasi.
Untuk menginisialisasi aplikasi
-
Jalankan perintah berikut pada prompt perintah CLI AWS SAM.
sam init --runtime python3.6
-
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 dalam
init
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
-
Mulai endpoint API Gateway secara lokal. Anda harus menjalankan perintah berikut dari direktori yang berisi
template.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.
-
Uji aplikasi. Salin URL endpoint API Gateway, tempelkan di browser, dan pilih Enter. Contoh URL endpoint API Gateway adalah
http://127.0.0.1:3000/hello
.API Gateway secara lokal memanggil fungsi Lambda tempat endpoint dipetakan. Fungsi Lambda dijalankan dalam kontainer Docker lokal dan kembali
hello 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.
-
Edit
/hello_world/app.py
file untuk mengubah string pesan dari'hello world'
ke'Hello World!'
. -
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
-
Tambahkan
Metadata
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 adalah
Metadata
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
ReadmeUrl
PropertiLicenseUrl
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. -
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
-
Buat paket deployment fungsi Lambda dengan menjalankan perintah
package
AWS 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 konten
aws-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 disebut
packaged.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 templatpackaged.yaml
menunjukkan propertiCodeUri
: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 dari
sam 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.