Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
AWS SAM template anatomi
File AWS SAM templat mengikuti format file AWS CloudFormation templat, yang dijelaskan dalam Anatomi templat di Panduan AWS CloudFormation Pengguna. Perbedaan utama antara file AWS SAM template dan file AWS CloudFormation template adalah sebagai berikut:
-
Transformasi deklarasi. Deklarasi
Transform: AWS::Serverless-2016-10-31
diperlukan untuk file templat AWS SAM . Deklarasi ini mengidentifikasi file AWS CloudFormation template sebagai file AWS SAM template. Untuk informasi selengkapnya tentang transformasi, lihat Transformasi di Panduan Pengguna AWS CloudFormation . -
Bagian global.
Globals
Bagian ini unik untuk AWS SAM. Bagian ini mendefinisikan properti yang umum untuk semua fungsi nirserver dan API Anda. Semua sumber dayaAWS::Serverless::Function
,AWS::Serverless::Api
, danAWS::Serverless::SimpleTable
mewarisi properti yang didefinisikan dalam bagianGlobals
. Untuk informasi lebih lanjut tentang bagian ini, lihat Bagian global dari templat AWS SAM. -
Bagian sumber daya. Dalam AWS SAM template
Resources
bagian ini dapat berisi kombinasi AWS CloudFormation sumber daya dan sumber AWS SAM daya. Untuk informasi selengkapnya tentang AWS CloudFormation sumber daya, lihat referensi jenis AWS sumber daya dan properti di Panduan AWS CloudFormation Pengguna. Untuk informasi selengkapnya tentang AWS SAM sumber daya, lihatAWS SAM sumber daya dan properti.
Semua bagian lain dari file AWS SAM template sesuai dengan bagian file AWS CloudFormation template dengan nama yang sama.
YAML
Contoh berikut menunjukkan fragmen templat dalam format YMAL.
Transform: AWS::Serverless-2016-10-31 Globals:
set of globals
Description:String
Metadata:template metadata
Parameters:set of parameters
Mappings:set of mappings
Conditions:set of conditions
Resources:set of resources
Outputs:set of outputs
Bagian templat
AWS SAM template dapat mencakup beberapa bagian utama. Hanya bagian Transform
dan Resources
yang wajib diisi.
Anda dapat menyertakan bagian templat dengan urutan apa pun. Namun, jika menggunakan ekstensi bahasa, Anda harus menambahkan AWS::LanguageExtensions
sebelum transformasi tanpa server (yaitu, sebelumnyaAWS::Serverless-2016-10-31
) seperti yang ditunjukkan pada contoh berikut:
Transform: - AWS::LanguageExtensions - AWS::Serverless-2016-10-31
Saat Anda membangun template Anda, akan sangat membantu untuk menggunakan urutan logis yang ditampilkan dalam daftar berikut. Hal ini karena nilai-nilai dalam satu bagian mungkin merujuk ke nilai-nilai dari bagian sebelumnya.
- Transformasi (wajib)
-
Untuk AWS SAM template, Anda harus menyertakan bagian ini dengan nilai
AWS::Serverless-2016-10-31
.Transformasi tambahan termasuk hal opsional. Untuk informasi selengkapnya tentang transformasi, lihat Transformasi di Panduan Pengguna AWS CloudFormation .
- Globals (opsional)
-
Properti yang umum untuk semua fungsi nirserver, API, dan tabel sederhana. Semua sumber daya
AWS::Serverless::Function
,AWS::Serverless::Api
, danAWS::Serverless::SimpleTable
mewarisi properti yang didefinisikan dalam bagianGlobals
.Bagian ini unik untuk AWS SAM. Tidak ada bagian yang sesuai di templat AWS CloudFormation .
- Deskripsi (opsional)
-
Sebuah string teks yang menggambarkan templat.
Bagian ini sesuai langsung dengan
Description
bagian AWS CloudFormation templat. - Metadata (opsional)
-
Objek yang memberikan informasi tambahan tentang templat.
Bagian ini sesuai langsung dengan
Metadata
bagian AWS CloudFormation templat. - Parameter (opsional)
-
Nilai-nilai untuk diteruskan ke templat Anda pada saat waktu aktif (ketika Anda membuat atau memperbarui tumpukan). Anda dapat merujuk ke parameter dari bagian
Resources
danOutputs
dari templat. Objek yang dinyatakan dalam bagianParameters
menyebabkan perintah sam deploy --guided untuk memberikan petunjuk tambahan kepada pengguna.Nilai-nilai yang diteruskan dalam menggunakan parameter
--parameter-overrides
dari perintahsam deploy
—dan entri dalam file konfigurasi—mengutamakan mengambil entri pada file templat AWS SAM . Untuk informasi selengkapnya tentangsam deploy
perintah, lihat sam deploy di referensi AWS SAMCLI perintah. Untuk informasi selengkapnya tentang file konfigurasi, lihat AWS SAM CLI berkas konfigurasi. - Pemetaan (opsional)
-
Pemetaan dari kunci dan nilai-nilai terkait yang dapat Anda gunakan untuk menentukan nilai parameter bersyarat, mirip dengan tabel pencarian. Anda dapat mencocokkan kunci ke nilai yang sesuai dengan menggunakan fungsi intrinsik
Fn::FindInMap
dalam bagianResources
danOutputs
.Bagian ini sesuai langsung dengan
Mappings
bagian AWS CloudFormation templat. - Kondisi (opsional)
-
Kondisi yang mengendalikan apakah sumber daya tertentu dibuat atau apakah properti sumber daya tertentu ditetapkan nilai selama pembuatan atau pembaruan tumpukan. Sebagai contoh, Anda dapat secara bersyarat membuat sumber daya yang bergantung pada apakah tumpukan untuk lingkungan produksi atau pengujian.
Bagian ini sesuai langsung dengan
Conditions
bagian AWS CloudFormation templat. - Sumber daya (wajib)
-
Sumber daya tumpukan dan properti mereka, seperti Instans Amazon Elastic Compute Cloud (Amazon EC2) atau bucket Amazon Simple Storage Service (Amazon S3). Anda dapat merujuk ke sumber daya dalam bagian
Resources
danOutputs
dari templat.Bagian ini mirip dengan bagian
Resources
dari templat AWS CloudFormation . Dalam AWS SAM template, bagian ini dapat berisi AWS SAM sumber daya selain AWS CloudFormation sumber daya. - Output (opsional)
-
Nilai-nilai yang dikembalikan setiap kali Anda melihat properti tumpukan Anda. Misalnya, Anda dapat mendeklarasikan output untuk nama bucket S3, lalu memanggil perintah
aws cloudformation describe-stacks
AWS Command Line Interface (AWS CLI) untuk melihat nama.Bagian ini berhubungan langsung dengan bagian
Outputs
dari templat AWS CloudFormation .
Langkah selanjutnya
Untuk mengunduh dan menyebarkan contoh aplikasi tanpa server yang berisi file AWS SAM templat, lihat Memulai dengan AWS SAM dan ikuti instruksi di. Tutorial: Menyebarkan aplikasi Hello World dengan AWS SAM