Ini adalah Panduan Referensi AWS CloudFormation Template baru. Harap perbarui bookmark dan tautan Anda. Untuk bantuan memulai CloudFormation, lihat Panduan AWS CloudFormation Pengguna.
Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Tansformasi AWS::LanguageExtensions
Topik ini menjelaskan cara menggunakan AWS::LanguageExtensions transformasi untuk mengaktifkan fungsi dan kemampuan tambahan yang tidak tersedia secara default.
AWS::LanguageExtensionsIni adalah CloudFormation makro yang, ketika direferensikan dalam template tumpukan Anda, memperbarui fungsi intrinsik apa pun yang ditentukan oleh transformasi ke nilai yang diselesaikan dalam template saat Anda membuat atau memperbarui tumpukan menggunakan set perubahan.
Dengan menyertakan transformasi ini dalam CloudFormation template Anda, Anda dapat mengakses fitur tambahan, sepertiFn::ForEach, yang memungkinkan operasi yang lebih maju seperti iterasi. Anda juga dapat menggunakan fungsi intrinsik di tempat-tempat di mana mereka biasanya tidak diizinkan, seperti dalam Ref dan Fn::GetAtt fungsi.
Penggunaan
Untuk menggunakan AWS::LanguageExtensions transformasi, Anda harus mendeklarasikannya di tingkat atas template Anda CloudFormation . Anda tidak dapat menggunakan AWS::LanguageExtensions sebagai perubahan yang tertanam di bagian templat lainnya.
Deklarasi harus menggunakan string literal AWS::LanguageExtensions sebagai nilainya. Anda tidak dapat menggunakan parameter atau fungsi untuk menentukan nilai perubahan.
Sintaksis
Untuk mendeklarasikan transformasi ini di CloudFormation template Anda, gunakan sintaks berikut:
JSON
{ "Transform":"AWS::LanguageExtensions", "Resources":{...} }
YAML
Transform: AWS::LanguageExtensions Resources:...
AWS::LanguageExtensionsTransformasi adalah deklarasi mandiri tanpa parameter tambahan.
Support untuk fungsi tambahan
AWS::LanguageExtensionsTransformasi mendukung fungsi tambahan berikut:
Pertimbangan
Saat menggunakan AWS::LanguageExtensions transformasi, ingatlah pertimbangan berikut:
-
Saat Anda memperbarui tumpukan yang menggunakan
AWS::LanguageExtensionstransformasi, sebaiknya Anda tidak menggunakan opsi Gunakan templat yang ada di CloudFormation konsol, atau opsi baris perintah yang setara--use-previous-template.AWS::LanguageExtensionsTransformasi menyelesaikan parameter ke nilai literal selama pemrosesan. Saat Anda CloudFormation menggunakan--use-previous-template, gunakan templat yang diproses ini dengan nilai literal lama, mencegah nilai parameter baru dan pembaruan parameter Systems Manager diterapkan. Sebagai gantinya, berikan template asli untuk memastikan parameter diselesaikan kembali dengan nilai saat ini. -
Sintaks YAMAL bentuk pendek tidak didukung dalam template untuk fungsi intrinsik yang hanya tersedia dalam transformasi.
AWS::LanguageExtensionsGunakan referensi eksplisit untuk fungsi-fungsi ini. Misalnya, gunakanFn::Lengthsebagai ganti dari!Length. -
AWS SAM CLI saat ini tidak mendukung fungsi
Fn::ForEachintrinsik transformasi.AWS::LanguageExtensions -
Jika Anda menggunakan beberapa transformasi, gunakan format daftar. Jika Anda menggunakan makro kustom, place AWS-provided transforms setelah makro kustom Anda. Jika Anda menggunakan kedua
AWS::LanguageExtensionsdanAWS::Serverlesstransformasi,AWS::LanguageExtensionstransformasi harus datang sebelumAWS::Serverlesstransformasi dalam daftar. -
Fungsi dan atribut yang disediakan oleh
AWS::LanguageExtensionstransformasi hanya didukung diResources,Conditions, danOutputsbagian template Anda.
Contoh
Contoh berikut menunjukkan bagaimana menggunakan AWS::LanguageExtensions transformasi untuk menggunakan fungsi Fn::Length intrinsik, yang ditentukan oleh transformasi.
JSON
{ "AWSTemplateFormatVersion": "2010-09-09", "Transform": "AWS::LanguageExtensions", "Parameters": { "QueueList": { "Type": "CommaDelimitedList" }, "QueueNameParam": { "Description": "Name for your SQS queue", "Type": "String" } }, "Resources": { "Queue": { "Type": "AWS::SQS::Queue", "Properties": { "QueueName": { "Ref": "QueueNameParam" }, "DelaySeconds": { "Fn::Length": { "Ref": "QueueList" } } } } } }
YAML
AWSTemplateFormatVersion: 2010-09-09 Transform: AWS::LanguageExtensions Parameters: QueueList: Type: CommaDelimitedList QueueNameParam: Description: Name for your SQS queue Type: String Resources: Queue: Type: AWS::SQS::Queue Properties: QueueName: !Ref QueueNameParam DelaySeconds: 'Fn::Length': !Ref QueueList
Sumber daya terkait
Untuk contoh lainnya, lihat topik berikut.
Untuk informasi umum tentang penggunaan makro, lihat Melakukan pemrosesan kustom pada CloudFormation templat dengan makro templat di AWS CloudFormation Panduan Pengguna.