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 AWS CloudFormation template berbeda yang tidak spesifik untuk AWS layanan.

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 di Metadata bagian ini. Untuk informasi selengkapnya, lihat Metadata.

  • Bagian Outputs template. Untuk informasi selengkapnya, lihat Output.

  • MetadataAtribut 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"