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 AWS CloudFormation template berbeda yang tidak spesifik untuk AWS layanan.
Topik
- Properti yang UserData dikodekan Base64
- Properti yang dikodekan Base64 dengan UserData dan AccessKey SecretKey
- Bagian parameter dengan satu parameter string literal
- Bagian parameter dengan parameter string dengan batasan ekspresi reguler
- Bagian parameter dengan parameter angka dengan MinValue dan MaxValue kendala
- Bagian parameter dengan parameter angka dengan AllowedValues kendala
- Bagian parameter dengan satu CommaDelimitedList parameter literal
- Bagian parameter dengan nilai parameter berdasarkan parameter semu
- Bagian pemetaan dengan tiga pemetaan
- Deskripsi berdasarkan string literal
- Bagian output dengan satu output string literal
- Bagian output dengan satu referensi sumber daya dan satu output referensi semu
- Bagian output dengan output yang didasarkan pada fungsi, string literal, referensi, dan parameter semu
- Versi format templat
- AWS Tag properti
Properti yang UserData dikodekan Base64
Contoh ini menunjukkan perakitan UserData properti menggunakan fungsi Fn: :Base64 dan Fn: :Join. Referensi MyValue
dan MyName
adalah parameter yang harus ditentukan di bagian Parameter dari templat. 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
Properti yang dikodekan Base64 dengan UserData dan AccessKey SecretKey
Contoh ini menunjukkan perakitan UserData properti menggunakan fungsi Fn: :Base64 dan Fn: :Join. 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}
Bagian parameter 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
Bagian parameter dengan parameter string dengan batasan ekspresi reguler
Contoh berikut menggambarkan pernyataan bagian Parameter yang valid di mana parameter tipe String
tunggal dinyatakan. AdminUserAccount Parameter memiliki default admin. 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]*'
Bagian parameter 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
Bagian parameter 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
Bagian parameter dengan satu CommaDelimitedList parameter literal
Contoh berikut menggambarkan pernyataan bagian Parameter yang valid di mana parameter tipe CommaDelimitedList
tunggal dinyatakan. NoEcho Properti diatur keTRUE
, yang akan menutupi nilainya dengan tanda bintang (*****) dalam aws cloudformation 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. -
Bagian
Outputs
template. Untuk informasi selengkapnya, lihat Output. -
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
Bagian parameter dengan nilai parameter berdasarkan parameter semu
Contoh berikut menunjukkan perintah dalam data pengguna EC2 yang menggunakan AWS::StackName
dan AWS::Region
parameter semu. 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}
Bagian pemetaan dengan tiga pemetaan
Contoh berikut menggambarkan pernyataan bagian Pemetaan valid yang berisi tiga pemetaan. Peta tersebut, ketika dicocokkan dengan kunci pemetaan Stop
, SlowDown
, atau Go
, menyediakan nilai-nilai RGB yang ditetapkan untuk atribut RGBColor
terkait.
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"
Deskripsi berdasarkan string literal
Contoh berikut menggambarkan pernyataan bagian Deskripsi yang valid di mana nilainya 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
"
Bagian output 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
Bagian output dengan satu referensi sumber daya dan satu output referensi semu
Contoh ini menunjukkan bagian Output dengan dua tugas output. 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
Bagian output dengan output yang didasarkan pada 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
Snippet berikut menggambarkan pernyataan bagian Versi Format Templat yang valid.
JSON
"AWSTemplateFormatVersion" : "2010-09-09"
YAML
AWSTemplateFormatVersion: '2010-09-09'
AWS Tag properti
Contoh ini menunjukkan properti AWS Tag. 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"