Snippet templat umum - AWS CloudFormation

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.

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. AdminUserAccountParameter 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. WebServerPortParameter 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. WebServerPortParameter 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. NoEchoProperti 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:

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 SlowDownGo, 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"