Tansformasi AWS::LanguageExtensions - AWS CloudFormation

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

Tansformasi AWS::LanguageExtensions

AWS::LanguageExtensionsTransformasi adalah makro yang dihosting oleh AWS CloudFormation yang memungkinkan Anda menggunakan fungsi intrinsik dan fungsionalitas lain yang tidak disertakan secara default di. AWS CloudFormation Saat templat mereferensikanAWS::LanguageExtensions, dan Anda membuat atau memperbarui tumpukan menggunakan set perubahan, AWS CloudFormation memperbarui fungsi intrinsik apa pun yang ditentukan oleh transformasi ke nilai yang diselesaikan dalam templat. Ketika Anda menambahkan AWS::LanguageExtensions transformasi dalam AWS CloudFormation template, Anda dapat menggunakan fungsi intrinsik sebagai parameter untuk Ref dan. Fn::GetAtt

AWS::LanguageExtensionsTransformasi mendukung fungsi dan atribut berikut:

Penggunaan

Nilai untuk pernyataan perubahan harus berupa string literal. Anda tidak dapat menggunakan parameter atau fungsi untuk menentukan nilai perubahan. Lihat cuplikan ini untuk contoh deklarasi transformasi:

Sintaksis pada tingkat puncak templat

Gunakan AWS::LanguageExtensions transformasi di tingkat atas template. Anda tidak dapat menggunakan AWS::LanguageExtensions transformasi sebagai transformasi tertanam di bagian template lainnya.

JSON

"Transform": "AWS::LanguageExtensions"

YAML

Transform: AWS::LanguageExtensions

Parameter

AWS::LanguageExtensionsTransformasi tidak menerima parameter.

Keterangan

Saat menggunakan AWS::LanguageExtensions transformasi, ingatlah pertimbangan berikut:

  • Jika Anda memperbarui tumpukan menggunakan nilai parameter yang berbeda, jangan gunakan --use-previous-template opsi di mana template asli berisi transformasi. Gunakan template asli, sebelum transformasi, dalam UpdateStack panggilan. Tumpukan akan diperbarui dengan nilai parameter baru.

  • Sintaks YAMAL bentuk pendek tidak didukung dalam template untuk fungsi intrinsik yang hanya tersedia dalam transformasi. AWS::LanguageExtensions Contoh fungsi intrinsik yang hanya tersedia dalam AWS::LanguageExtensions transformasi adalah Fn::Length dan. Fn::ToJsonString Gunakan referensi eksplisit untuk fungsi-fungsi ini. Misalnya, gunakan Fn::Length sebagai ganti dari !Length.

  • 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::LanguageExtensions dan AWS::Serverless transformasi, AWS::LanguageExtensions transformasi harus datang sebelum AWS::Serverless transformasi dalam daftar.

  • Fungsi dan atribut yang disediakan oleh AWS::LanguageExtensions transformasi hanya didukung di ResourcesConditions,, dan Outputs bagian template.

Untuk informasi selengkapnya tentang penggunaan makro, lihatMembuat definisi CloudFormation makro.

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