Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Snippet templat umum
Contoh berikut menunjukkan fitur CloudFormation template berbeda yang tidak spesifik untuk AWS layanan.
Topik
- Base64properti dikodekan UserData
- Base64UserDataproperti yang dikodekan dengan dan AccessKeySecretKey
- Parametersbagian dengan satu parameter string literal
- Parametersbagian dengan parameter string dengan kendala ekspresi reguler
- Parametersbagian dengan parameter angka dengan MinValue dan MaxValue kendala
- Parametersbagian dengan parameter angka dengan AllowedValues kendala
- Parametersbagian dengan satu CommaDelimitedList parameter literal
- Parametersbagian dengan nilai parameter berdasarkan parameter semu
- Mappingbagian dengan tiga pemetaan
- Descriptionberdasarkan string literal
- Outputsbagian dengan satu output string literal
- Outputsbagian dengan satu referensi sumber daya dan satu output referensi semu
- Outputsbagian dengan output berdasarkan fungsi, string literal, referensi, dan parameter semu
- Versi format templat
- AWSTagsproperti
Base64properti dikodekan UserData
Contoh ini menunjukkan perakitan UserData
properti menggunakan Fn::Base64
dan Fn::Join
fungsi. Referensi MyValue
dan MyName
merupakan parameter yang harus ditentukan di Parameters
bagian template. String literal Hello World
hanyalah nilai lain yang diberikan contoh ini sebagai bagian dari UserData
.
JSON
"UserData" : { "Fn::Base64" : { "Fn::Join" : [ ",", [ { "Ref" : "MyValue" }, { "Ref" : "MyName" }, "Hello World" ] ] } }
YAML
UserData: Fn::Base64: !Sub | Ref: MyValue Ref: MyName Hello World
Base64UserDataproperti yang dikodekan dengan dan AccessKeySecretKey
Contoh ini menunjukkan perakitan UserData
properti menggunakan Fn::Base64
dan Fn::Join
fungsi. Ini menyertakan informasi AccessKey
dan SecretKey
. Referensi AccessKey
dan SecretKey
adalah parameter yang harus ditentukan di bagian Parameter dari templat.
JSON
"UserData" : { "Fn::Base64" : { "Fn::Join" : [ "", [ "ACCESS_KEY=", { "Ref" : "AccessKey" }, "SECRET_KEY=", { "Ref" : "SecretKey" } ] ] } }
YAML
UserData: Fn::Base64: !Sub | ACCESS_KEY=${AccessKey} SECRET_KEY=${SecretKey}
Parametersbagian dengan satu parameter string literal
Contoh berikut menggambarkan pernyataan bagian Parameter yang valid di mana parameter tipe String
tunggal dinyatakan.
JSON
"Parameters" : { "UserName" : { "Type" : "String", "Default" : "nonadmin", "Description" : "Assume a vanilla user if no command-line spec provided" } }
YAML
Parameters: UserName: Type: String Default: nonadmin Description: Assume a vanilla user if no command-line spec provided
Parametersbagian dengan parameter string dengan kendala ekspresi reguler
Contoh berikut menggambarkan pernyataan bagian Parameter yang valid di mana parameter tipe String
tunggal dinyatakan. AdminUserAccount
Parameter memiliki default dariadmin
. Nilai parameter harus memiliki panjang minimum 1, panjang maksimum 16, dan berisi karakter abjad dan angka tetapi harus dimulai dengan karakter abjad.
JSON
"Parameters" : { "AdminUserAccount": { "Default": "admin", "NoEcho": "true", "Description" : "The admin account user name", "Type": "String", "MinLength": "1", "MaxLength": "16", "AllowedPattern" : "[a-zA-Z][a-zA-Z0-9]*" } }
YAML
Parameters: AdminUserAccount: Default: admin NoEcho: true Description: The admin account user name Type: String MinLength: 1 MaxLength: 16 AllowedPattern: '[a-zA-Z][a-zA-Z0-9]*'
Parametersbagian dengan parameter angka dengan MinValue dan MaxValue kendala
Contoh berikut menggambarkan pernyataan bagian Parameter yang valid di mana parameter tipe Number
tunggal dinyatakan. WebServerPort
Parameter memiliki default 80 dan nilai minimum 1 dan nilai maksimum 65535.
JSON
"Parameters" : { "WebServerPort": { "Default": "80", "Description" : "TCP/IP port for the web server", "Type": "Number", "MinValue": "1", "MaxValue": "65535" } }
YAML
Parameters: WebServerPort: Default: 80 Description: TCP/IP port for the web server Type: Number MinValue: 1 MaxValue: 65535
Parametersbagian dengan parameter angka dengan AllowedValues kendala
Contoh berikut menggambarkan pernyataan bagian Parameter yang valid di mana parameter tipe Number
tunggal dinyatakan. WebServerPort
Parameter memiliki default 80 dan hanya memungkinkan nilai 80 dan 8888.
JSON
"Parameters" : { "WebServerPortLimited": { "Default": "80", "Description" : "TCP/IP port for the web server", "Type": "Number", "AllowedValues" : ["80", "8888"] } }
YAML
Parameters: WebServerPortLimited: Default: 80 Description: TCP/IP port for the web server Type: Number AllowedValues: - 80 - 8888
Parametersbagian dengan satu CommaDelimitedList parameter literal
Contoh berikut menggambarkan deklarasi Parameters
bagian yang valid di mana parameter CommaDelimitedList
tipe tunggal dideklarasikan. NoEcho
Properti diatur keTRUE
, yang akan menutupi nilainya dengan tanda bintang (*****) dalam describe-stacks output, kecuali untuk informasi yang disimpan di lokasi yang ditentukan di bawah ini.
penting
Menggunakan NoEcho
atribut tidak menutupi informasi apa pun yang disimpan sebagai berikut:
-
Bagian
Metadata
template. CloudFormation tidak mengubah, memodifikasi, atau menyunting informasi apa pun yang Anda sertakan diMetadata
bagian ini. Untuk informasi selengkapnya, lihat Metadata referensi sintaks bagian untuk template CloudFormation . -
Bagian
Outputs
template. Untuk informasi selengkapnya, lihat Outputs referensi sintaks bagian untuk template CloudFormation . -
Metadata
Atribut definisi sumber daya. Untuk informasi selengkapnya, lihat Metadataatribut.
Kami sangat menyarankan Anda untuk tidak menggunakan mekanisme ini untuk memasukkan informasi sensitif, seperti kata sandi atau rahasia.
penting
Daripada menyematkan informasi sensitif secara langsung di CloudFormation template Anda, kami sarankan Anda menggunakan parameter dinamis dalam template tumpukan untuk mereferensikan informasi sensitif yang disimpan dan dikelola di luar CloudFormation, seperti di AWS Systems Manager Parameter Store atau AWS Secrets Manager.
Untuk informasi lebih lanjut, lihat praktik Jangan menanamkan kredensial dalam templat Anda terbaik.
JSON
"Parameters" : { "UserRoles" : { "Type" : "CommaDelimitedList", "Default" : "guest,newhire", "NoEcho" : "TRUE" } }
YAML
Parameters: UserRoles: Type: CommaDelimitedList Default: "guest,newhire" NoEcho: true
Parametersbagian dengan nilai parameter berdasarkan parameter semu
Contoh berikut menunjukkan perintah dalam data EC2 pengguna yang menggunakan parameter pseudo AWS::StackName
danAWS::Region
. Untuk informasi selengkapnya tentang parameter semu, lihatReferensi parameter semu.
JSON
"UserData" : { "Fn::Base64" : { "Fn::Join" : ["", [ "#!/bin/bash -xe\n", "yum install -y aws-cfn-bootstrap\n", "/opt/aws/bin/cfn-init -v ", " --stack ", { "Ref" : "AWS::StackName" }, " --resource LaunchConfig ", " --region ", { "Ref" : "AWS::Region" }, "\n", "/opt/aws/bin/cfn-signal -e $? ", " --stack ", { "Ref" : "AWS::StackName" }, " --resource WebServerGroup ", " --region ", { "Ref" : "AWS::Region" }, "\n" ]]}} }
YAML
UserData: Fn::Base64: !Sub | #!/bin/bash -xe yum update -y aws-cfn-bootstrap /opt/aws/bin/cfn-init -v --stack ${AWS::StackName} --resource LaunchConfig --region ${AWS::Region} /opt/aws/bin/cfn-signal -e $? --stack ${AWS::StackName} --resource WebServerGroup --region ${AWS::Region}
Mappingbagian dengan tiga pemetaan
Contoh berikut menggambarkan deklarasi Mapping
bagian yang valid yang berisi tiga pemetaan. Peta, bila dicocokkan dengan kunci pemetaanStop
,, atau SlowDown
Go
, memberikan RGB nilai yang ditetapkan ke atribut yang sesuaiRGBColor
.
JSON
"Mappings" : { "LightColor" : { "Stop" : { "Description" : "red", "RGBColor" : "RED 255 GREEN 0 BLUE 0" }, "SlowDown" : { "Description" : "yellow", "RGBColor" : "RED 255 GREEN 255 BLUE 0" }, "Go" : { "Description" : "green", "RGBColor" : "RED 0 GREEN 128 BLUE 0" } } }
YAML
Mappings: LightColor: Stop: Description: red RGBColor: "RED 255 GREEN 0 BLUE 0" SlowDown: Description: yellow RGBColor: "RED 255 GREEN 255 BLUE 0" Go: Description: green RGBColor: "RED 0 GREEN 128 BLUE 0"
Descriptionberdasarkan string literal
Contoh berikut menggambarkan deklarasi Description
bagian yang valid di mana nilai didasarkan pada string literal. Snippet ini bisa untuk templat, parameter, sumber daya, properti, atau output.
JSON
"Description" : "
Replace this value
"
YAML
Description: "
Replace this value
"
Outputsbagian dengan satu output string literal
Contoh ini menunjukkan tugas output berdasarkan string literal.
JSON
"Outputs" : { "MyPhone" : { "Value" : "Please call 555-5555", "Description" : "A random message for aws cloudformation describe-stacks" } }
YAML
Outputs: MyPhone: Value: Please call 555-5555 Description: A random message for aws cloudformation describe-stacks
Outputsbagian dengan satu referensi sumber daya dan satu output referensi semu
Contoh ini menunjukkan Outputs
bagian dengan dua tugas keluaran. Salah satunya didasarkan pada sumber daya, dan yang lainnya didasarkan pada referensi semu.
JSON
"Outputs" : { "SNSTopic" : { "Value" : { "Ref" : "MyNotificationTopic" } }, "StackName" : { "Value" : { "Ref" : "AWS::StackName" } } }
YAML
Outputs: SNSTopic: Value: !Ref MyNotificationTopic StackName: Value: !Ref AWS::StackName
Outputsbagian dengan output berdasarkan fungsi, string literal, referensi, dan parameter semu
Contoh ini menunjukkan bagian Output dengan satu tugas output. Fungsi Join digunakan untuk menggabungkan nilai, menggunakan tanda persen sebagai pembatas.
JSON
"Outputs" : { "MyOutput" : { "Value" : { "Fn::Join" : [ "%", [ "A-string", {"Ref" : "AWS::StackName" } ] ] } } }
YAML
Outputs: MyOutput: Value: !Join [ %, [ 'A-string', !Ref 'AWS::StackName' ]]
Versi format templat
Cuplikan berikut menggambarkan deklarasi bagian yang validAWSTemplateFormatVersion
.
JSON
"AWSTemplateFormatVersion" : "2010-09-09"
YAML
AWSTemplateFormatVersion: '2010-09-09'
AWSTagsproperti
Contoh ini menunjukkan AWS Tags
properti. Anda akan menentukan properti ini di dalam bagian Properti dari sumber daya. Ketika sumber daya dibuat, sumber daya tersebut akan ditandai dengan tanda yang Anda nyatakan.
JSON
"Tags" : [ { "Key" : "keyname1", "Value" : "value1" }, { "Key" : "keyname2", "Value" : "value2" } ]
YAML
Tags: - Key: "keyname1" Value: "value1" - Key: "keyname2" Value: "value2"