

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

# Snippet templat umum
<a name="quickref-general"></a>

Contoh berikut menunjukkan fitur CloudFormation template berbeda yang tidak spesifik untuk AWS layanan.

**Topics**
+ [

## Base64properti dikodekan UserData
](#scenario-userdata-base64)
+ [

## Base64UserDataproperti yang dikodekan dengan dan AccessKey SecretKey
](#scenario-userdata-base64-with-keys)
+ [

## Parametersbagian dengan satu parameter string literal
](#scenario-one-string-parameter)
+ [

## Parametersbagian dengan parameter string dengan kendala ekspresi reguler
](#scenario-constraint-string-parameter)
+ [

## Parametersbagian dengan parameter angka dengan MinValue dan MaxValue kendala
](#scenario-one-number-min-parameter)
+ [

## Parametersbagian dengan parameter angka dengan AllowedValues kendala
](#scenario-one-number-parameter)
+ [

## Parametersbagian dengan satu CommaDelimitedList parameter literal
](#scenario-one-list-parameter)
+ [

## Parametersbagian dengan nilai parameter berdasarkan parameter semu
](#scenario-one-pseudo-parameter)
+ [

## Mappingbagian dengan tiga pemetaan
](#scenario-mapping-with-four-maps)
+ [

## Descriptionberdasarkan string literal
](#scenario-description-from-literal-string)
+ [

## Outputsbagian dengan satu output string literal
](#scenario-output-with-literal-string)
+ [

## Outputsbagian dengan satu referensi sumber daya dan satu output referensi semu
](#scenario-output-with-ref-and-pseudo-ref)
+ [

## Outputsbagian dengan output berdasarkan fungsi, string literal, referensi, dan parameter semu
](#scenario-output-with-complex-spec)
+ [

## Versi format templat
](#scenario-format-version)
+ [

## AWS Tagsproperti
](#scenario-format-aws-tag)

## Base64properti dikodekan UserData
<a name="scenario-userdata-base64"></a>

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
<a name="quickref-general-example-1.json"></a>

```
1. "UserData" : {
2.     "Fn::Base64" : {
3.         "Fn::Join" : [ ",", [
4.             { "Ref" : "MyValue" },
5.             { "Ref" : "MyName" },
6.             "Hello World" ] ]
7.     }
8. }
```

### YAML
<a name="quickref-general-example-1.yaml"></a>

```
1. UserData:
2.   Fn::Base64: !Sub |
3.      Ref: MyValue
4.      Ref: MyName
5.      Hello World
```

## Base64UserDataproperti yang dikodekan dengan dan AccessKey SecretKey
<a name="scenario-userdata-base64-with-keys"></a>

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
<a name="quickref-general-example-2.json"></a>

```
1. "UserData" : {
2.     "Fn::Base64" : {
3.         "Fn::Join" : [ "", [
4.             "ACCESS_KEY=", { "Ref" : "AccessKey" },
5.             "SECRET_KEY=", { "Ref" : "SecretKey" } ]
6.         ]
7.     }
8. }
```

### YAML
<a name="quickref-general-example-2.yaml"></a>

```
1. UserData:
2.   Fn::Base64: !Sub |
3.      ACCESS_KEY=${AccessKey}
4.      SECRET_KEY=${SecretKey}
```

## Parametersbagian dengan satu parameter string literal
<a name="scenario-one-string-parameter"></a>

Contoh berikut menggambarkan pernyataan bagian Parameter yang valid di mana parameter tipe `String` tunggal dinyatakan.

### JSON
<a name="quickref-general-example-3.json"></a>

```
1. "Parameters" : {
2.     "UserName" : {
3.         "Type" : "String",
4.         "Default" : "nonadmin",
5.         "Description" : "Assume a vanilla user if no command-line spec provided"
6.     }
7. }
```

### YAML
<a name="quickref-general-example-3.yaml"></a>

```
1. Parameters:
2.   UserName:
3.     Type: String
4.     Default: nonadmin
5.     Description: Assume a vanilla user if no command-line spec provided
```

## Parametersbagian dengan parameter string dengan kendala ekspresi reguler
<a name="scenario-constraint-string-parameter"></a>

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
<a name="quickref-general-example-4.json"></a>

```
 1. "Parameters" : {
 2.     "AdminUserAccount": {
 3.       "Default": "admin",
 4.       "NoEcho": "true",
 5.       "Description" : "The admin account user name",
 6.       "Type": "String",
 7.       "MinLength": "1",
 8.       "MaxLength": "16",
 9.       "AllowedPattern" : "[a-zA-Z][a-zA-Z0-9]*"
10.     }
11. }
```

### YAML
<a name="quickref-general-example-4.yaml"></a>

```
1. Parameters:
2.   AdminUserAccount:
3.     Default: admin
4.     NoEcho: true
5.     Description: The admin account user name
6.     Type: String
7.     MinLength: 1
8.     MaxLength: 16
9.     AllowedPattern: '[a-zA-Z][a-zA-Z0-9]*'
```

## Parametersbagian dengan parameter angka dengan MinValue dan MaxValue kendala
<a name="scenario-one-number-min-parameter"></a>

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
<a name="quickref-general-example-5.json"></a>

```
1. "Parameters" : {
2.     "WebServerPort": {
3.       "Default": "80",
4.       "Description" : "TCP/IP port for the web server",
5.       "Type": "Number",
6.       "MinValue": "1",
7.       "MaxValue": "65535"
8.     }
9. }
```

### YAML
<a name="quickref-general-example-5.yaml"></a>

```
1. Parameters:
2.   WebServerPort:
3.     Default: 80
4.     Description: TCP/IP port for the web server
5.     Type: Number
6.     MinValue: 1
7.     MaxValue: 65535
```

## Parametersbagian dengan parameter angka dengan AllowedValues kendala
<a name="scenario-one-number-parameter"></a>

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
<a name="quickref-general-example-6.json"></a>

```
1. "Parameters" : {
2.     "WebServerPortLimited": {
3.       "Default": "80",
4.       "Description" : "TCP/IP port for the web server",
5.       "Type": "Number",
6.       "AllowedValues" : ["80", "8888"]
7.     }
8. }
```

### YAML
<a name="quickref-general-example-6.yaml"></a>

```
1. Parameters:
2.   WebServerPortLimited:
3.     Default: 80
4.     Description: TCP/IP port for the web server
5.     Type: Number
6.     AllowedValues:
7.     - 80
8.     - 8888
```

## Parametersbagian dengan satu CommaDelimitedList parameter literal
<a name="scenario-one-list-parameter"></a>

Contoh berikut menggambarkan deklarasi `Parameters` bagian yang valid di mana parameter `CommaDelimitedList` tipe tunggal dideklarasikan. `NoEcho`Properti diatur ke`TRUE`, yang akan menutupi nilainya dengan tanda bintang (\$1\$1\$1\$1\$1) 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 di `Metadata` bagian ini. Untuk informasi selengkapnya, lihat [Metadata](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/metadata-section-structure.html).
Bagian `Outputs` template. Untuk informasi lebih lanjut, lihat [Output](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/outputs-section-structure.html).
`Metadata`Atribut definisi sumber daya. Untuk informasi lebih lanjut, lihat [Atribut `Metadata`](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-attribute-metadata.html).
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 selengkapnya, lihat Do [not embed credentials dalam praktik terbaik template Anda](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/security-best-practices.html#creds).

### JSON
<a name="quickref-general-example-7.json"></a>

```
1. "Parameters" : {
2.     "UserRoles" : {
3.         "Type" : "CommaDelimitedList",
4.         "Default" : "guest,newhire",
5.         "NoEcho" : "TRUE"
6.     }
7. }
```

### YAML
<a name="quickref-general-example-7.yaml"></a>

```
1. Parameters:
2.   UserRoles:
3.     Type: CommaDelimitedList
4.     Default: "guest,newhire"
5.     NoEcho: true
```

## Parametersbagian dengan nilai parameter berdasarkan parameter semu
<a name="scenario-one-pseudo-parameter"></a>

Contoh berikut menunjukkan perintah dalam data pengguna EC2 yang menggunakan `AWS::StackName` dan `AWS::Region` parameter semu. Untuk informasi selengkapnya tentang parameter semu, lihat[Dapatkan AWS nilai menggunakan parameter semu](pseudo-parameter-reference.md).

### JSON
<a name="quickref-general-example-10.json"></a>

```
 1.           "UserData"       : { "Fn::Base64" : { "Fn::Join" : ["", [
 2.              "#!/bin/bash -xe\n",
 3.              "yum install -y aws-cfn-bootstrap\n",
 4. 
 5.              "/opt/aws/bin/cfn-init -v ",
 6.              "         --stack ", { "Ref" : "AWS::StackName" },
 7.              "         --resource LaunchConfig ",
 8.              "         --region ", { "Ref" : "AWS::Region" }, "\n",
 9. 
10.              "/opt/aws/bin/cfn-signal -e $? ",
11.              "         --stack ", { "Ref" : "AWS::StackName" },
12.              "         --resource WebServerGroup ",
13.              "         --region ", { "Ref" : "AWS::Region" }, "\n"
14.         ]]}}
15.       }
```

### YAML
<a name="quickref-general-example-10.yaml"></a>

```
1. UserData:
2.   Fn::Base64: !Sub |
3.      #!/bin/bash -xe
4.      yum update -y aws-cfn-bootstrap
5.      /opt/aws/bin/cfn-init -v --stack ${AWS::StackName} --resource LaunchConfig --region ${AWS::Region}
6.      /opt/aws/bin/cfn-signal -e $? --stack ${AWS::StackName} --resource WebServerGroup --region ${AWS::Region}
```

## Mappingbagian dengan tiga pemetaan
<a name="scenario-mapping-with-four-maps"></a>

Contoh berikut menggambarkan deklarasi `Mapping` bagian yang 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
<a name="quickref-general-example-11.json"></a>

```
 1. "Mappings" : {
 2.     "LightColor" : {
 3.         "Stop" : {
 4.             "Description" : "red",
 5.             "RGBColor" : "RED 255 GREEN 0 BLUE 0"
 6.         },
 7.         "SlowDown" : {
 8.             "Description" : "yellow",
 9.             "RGBColor" : "RED 255 GREEN 255 BLUE 0"
10.         },
11.         "Go" : {
12.             "Description" : "green",
13.             "RGBColor" : "RED 0 GREEN 128 BLUE 0"
14.         }
15.     }
16. }
```

### YAML
<a name="quickref-general-example-11.yaml"></a>

```
 1. Mappings:
 2.   LightColor:
 3.     Stop:
 4.       Description: red
 5.       RGBColor: "RED 255 GREEN 0 BLUE 0"
 6.     SlowDown:
 7.       Description: yellow
 8.       RGBColor: "RED 255 GREEN 255 BLUE 0"
 9.     Go:
10.       Description: green
11.       RGBColor: "RED 0 GREEN 128 BLUE 0"
```

## Descriptionberdasarkan string literal
<a name="scenario-description-from-literal-string"></a>

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
<a name="quickref-general-example-8.json"></a>

```
1. "Description" : "Replace this value"
```

### YAML
<a name="quickref-general-example-8.yaml"></a>

```
1. Description: "Replace this value"
```

## Outputsbagian dengan satu output string literal
<a name="scenario-output-with-literal-string"></a>

Contoh ini menunjukkan tugas output berdasarkan string literal.

### JSON
<a name="quickref-general-example-12.json"></a>

```
1. "Outputs" : {
2.     "MyPhone" : {
3.         "Value" : "Please call 555-5555",
4.         "Description" : "A random message for aws cloudformation describe-stacks"
5.     }
6. }
```

### YAML
<a name="quickref-general-example-12.yaml"></a>

```
1. Outputs:
2.   MyPhone:
3.     Value: Please call 555-5555
4.     Description: A random message for aws cloudformation describe-stacks
```

## Outputsbagian dengan satu referensi sumber daya dan satu output referensi semu
<a name="scenario-output-with-ref-and-pseudo-ref"></a>

Contoh ini menunjukkan `Outputs` bagian dengan dua tugas keluaran. Salah satunya didasarkan pada sumber daya, dan yang lainnya didasarkan pada referensi semu.

### JSON
<a name="quickref-general-example-13.json"></a>

```
1. "Outputs" : {
2.    "SNSTopic" : { "Value" : { "Ref" : "MyNotificationTopic" } },
3.    "StackName" : { "Value" : { "Ref" : "AWS::StackName" } }
4. }
```

### YAML
<a name="quickref-general-example-13.yaml"></a>

```
1. Outputs:
2.   SNSTopic:
3.     Value: !Ref MyNotificationTopic
4.   StackName:
5.     Value: !Ref AWS::StackName
```

## Outputsbagian dengan output berdasarkan fungsi, string literal, referensi, dan parameter semu
<a name="scenario-output-with-complex-spec"></a>

Contoh ini menunjukkan bagian Output dengan satu tugas output. Fungsi Join digunakan untuk menggabungkan nilai, menggunakan tanda persen sebagai pembatas.

### JSON
<a name="quickref-general-example-14.json"></a>

```
1. "Outputs" : {
2.     "MyOutput" : {
3.         "Value" : { "Fn::Join" :
4.             [ "%", [ "A-string", {"Ref" : "AWS::StackName" } ] ]
5.         }
6.     }
7. }
```

### YAML
<a name="quickref-general-example-14.yaml"></a>

```
1. Outputs:
2.   MyOutput:
3.     Value: !Join [ %, [ 'A-string', !Ref 'AWS::StackName' ]]
```

## Versi format templat
<a name="scenario-format-version"></a>

Cuplikan berikut menggambarkan deklarasi bagian yang valid`AWSTemplateFormatVersion`.

### JSON
<a name="quickref-general-example-9.json"></a>

```
1. "AWSTemplateFormatVersion" : "2010-09-09"
```

### YAML
<a name="quickref-general-example-9.yaml"></a>

```
1. AWSTemplateFormatVersion: '2010-09-09'
```

## AWS Tagsproperti
<a name="scenario-format-aws-tag"></a>

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
<a name="quickref-general-example-15.json"></a>

```
 1. "Tags" : [
 2.       {
 3.         "Key" : "keyname1",
 4.         "Value" : "value1"
 5.       },
 6.       {
 7.         "Key" : "keyname2",
 8.         "Value" : "value2"
 9.       }
10.     ]
```

### YAML
<a name="quickref-general-example-15.yaml"></a>

```
1. Tags: 
2.   - 
3.     Key: "keyname1"
4.     Value: "value1"
5.   - 
6.     Key: "keyname2"
7.     Value: "value2"
```