

Ini adalah *Panduan Referensi CloudFormation Template* baru. Harap perbarui bookmark dan tautan Anda. Untuk bantuan memulai CloudFormation, lihat [Panduan AWS CloudFormation Pengguna](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/Welcome.html).

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

# Fungsi syarat
<a name="intrinsic-function-reference-conditions"></a>

Anda dapat menggunakan fungsi intrinsik, seperti `Fn::If` atau`Fn::Equals`, untuk membuat dan mengkonfigurasi sumber daya tumpukan berdasarkan logika bersyarat. Kondisi ini mengevaluasi selama pembuatan tumpukan atau pembaruan. Setelah Anda menentukan semua kondisi Anda, Anda dapat mengaitkannya dengan sumber daya atau properti sumber daya di `Resources` dan `Outputs` bagian template.

Untuk skenario lanjutan, Anda dapat menggabungkan kondisi menggunakan `Fn::And` atau `Fn::Or` fungsi, atau gunakan `Fn::Not` untuk meniadakan nilai kondisi. Anda juga dapat membuat kondisi sarang untuk membuat logika kondisional yang lebih kompleks.

Jika Anda baru menggunakan kondisi di template Anda, kami sarankan Anda terlebih dahulu meninjau topik [sintaks Ketentuan CloudFormation template](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/conditions-section-structure.html) di *Panduan AWS CloudFormation Pengguna*.

**catatan**  
Anda harus menentukan semua kondisi di `Conditions` bagian templat, kecuali untuk `Fn::If` kondisi. Anda dapat menggunakan `Fn::If` kondisi dalam `Metadata` atribut, `UpdatePolicy` atribut, dan nilai properti di `Outputs` bagian `Resources` dan.

**Topics**
+ [`Fn::And`](#intrinsic-function-reference-conditions-and)
+ [`Fn::Equals`](#intrinsic-function-reference-conditions-equals)
+ [`Fn::If`](#intrinsic-function-reference-conditions-if)
+ [`Fn::Not`](#intrinsic-function-reference-conditions-not)
+ [`Fn::Or`](#intrinsic-function-reference-conditions-or)
+ [Fungsi yang didukung](#w2aac24c20c25)
+ [Templat sampel](#conditions-sample-templates)

## `Fn::And`
<a name="intrinsic-function-reference-conditions-and"></a>

Menghasilkan `true` jika semua syarat yang ditentukan bernilai true, atau menghasilkan `false` jika salah satu syarat bernilai false. `Fn::And` bertindak sebagai operator AND. Jumlah minimum syarat yang dapat Anda sertakan adalah 2, dan maksimum adalah 10.

### Pernyataan
<a name="intrinsic-function-reference-conditions-and-syntax"></a>

#### JSON
<a name="intrinsic-function-reference-conditions-and-syntax.json"></a>

```
"Fn::And": [{{{condition}}}, {{{...}}}]
```

#### YAML
<a name="intrinsic-function-reference-conditions-and-syntax.yaml"></a>

Sintaks untuk nama fungsi penuh:

```
Fn::And: [{{condition}}]
```

Sintaks untuk bentuk pendek:

```
!And [{{condition}}]
```

### Parameter
<a name="w2aac24c20c13b7"></a>

condition  <a name="fn-and-condition"></a>
Suatu syarat yang bernilai `true` atau `false`.

### `Fn::And`contoh penggunaan
<a name="w2aac24c20c13b9"></a>

`MyAndCondition` berikut ini bernilai true jika nama grup keamanan yang direferensikan sama dengan `sg-mysggroup` dan jika `SomeOtherCondition` bernilai true:

#### JSON
<a name="intrinsic-function-reference-conditions-and-example.json"></a>

```
"MyAndCondition": {
   "Fn::And": [
      {"Fn::Equals": ["sg-mysggroup", {"Ref": "ASecurityGroup"}]},
      {"Condition": "SomeOtherCondition"}
   ]
}
```

#### YAML
<a name="intrinsic-function-reference-conditions-and-example.yaml"></a>

```
MyAndCondition: !And
  - !Equals ["sg-mysggroup", !Ref ASecurityGroup]
  - !Condition SomeOtherCondition
```

## `Fn::Equals`
<a name="intrinsic-function-reference-conditions-equals"></a>

Membandingkan apakah dua nilai sama. Menghasilkan `true` jika dua nilai tersebut sama atau `false` jika tidak.

### Pernyataan
<a name="intrinsic-function-reference-conditions-equals-syntax"></a>

#### JSON
<a name="intrinsic-function-reference-conditions-equals-syntax.json"></a>

```
"Fn::Equals" : ["{{value_1}}", "{{value_2}}"]
```

#### YAML
<a name="intrinsic-function-reference-conditions-equals-syntax.yaml"></a>

Sintaks untuk nama fungsi penuh:

```
Fn::Equals: [{{value_1}}, {{value_2}}]
```

Sintaks untuk bentuk pendek:

```
!Equals [{{value_1}}, {{value_2}}]
```

### Parameter
<a name="w2aac24c20c15b7"></a>

value  
Nilai string yang ingin Anda bandingkan.

### `Fn::Equals`contoh penggunaan
<a name="w2aac24c20c15b9"></a>

Syarat `IsProduction` berikut bernilai true jika nilai untuk parameter `EnvironmentType` adalah sama dengan `prod`:

#### JSON
<a name="intrinsic-function-reference-conditions-equals-example.json"></a>

```
"IsProduction" : {
   "Fn::Equals": [
      {"Ref": "EnvironmentType"},
      "prod"
   ]
}
```

#### YAML
<a name="intrinsic-function-reference-conditions-equals-example.yaml"></a>

```
IsProduction:
  !Equals [!Ref EnvironmentType, prod]
```

## `Fn::If`
<a name="intrinsic-function-reference-conditions-if"></a>

Mengembalikan satu nilai jika syarat yang ditentukan bernilai `true` dan nilai lain jika syarat yang ditentukan bernilai `false`. Saat ini, CloudFormation mendukung fungsi `Fn::If` intrinsik dalam `Metadata` atribut, `UpdatePolicy` atribut, dan nilai properti di `Resources` bagian dan `Outputs` bagian template. Anda dapat menggunakan pseudo parameter `AWS::NoValue` sebagai nilai kembali untuk menghapus properti yang sesuai.

### Pernyataan
<a name="intrinsic-function-reference-conditions-if-syntax"></a>

#### JSON
<a name="intrinsic-function-reference-conditions-if-syntax.json"></a>

```
"Fn::If": [{{condition_name}}, {{value_if_true}}, {{value_if_false}}]
```

#### YAML
<a name="intrinsic-function-reference-conditions-if-syntax.yaml"></a>

Sintaks untuk nama fungsi penuh:

```
Fn::If: [{{condition_name}}, {{value_if_true}}, {{value_if_false}}]
```

Sintaks untuk bentuk pendek:

```
!If [{{condition_name}}, {{value_if_true}}, {{value_if_false}}]
```

### Parameter
<a name="w2aac24c20c19b7"></a>

condition\_name  <a name="condition_name"></a>
Sebuah referensi untuk syarat di bagian Syarat. Gunakan nama syarat untuk mereferensikannya.

value\_if\_true  <a name="value_if_true"></a>
Nilai yang akan dikembalikan jika syarat yang ditentukan bernilai true.

value\_if\_false  <a name="value_if_false"></a>
Nilai yang akan dikembalikan jika syarat yang ditentukan bernilai `false`.

### `Fn::If`contoh penggunaan
<a name="w2aac24c20c19b9"></a>

**Topics**
+ [Memilih sumber daya secara kondisional](#w2aac24c20c19b9b5)
+ [Output bersyarat](#w2aac24c20c19b9b7)
+ [Nilai array bersyarat](#w2aac24c20c19b9b9)
+ [Properti bersyarat dan nilai properti](#w2aac24c20c19b9c11)
+ [Kebijakan pembaruan bersyarat](#w2aac24c20c19b9c13)

#### Memilih sumber daya secara kondisional
<a name="w2aac24c20c19b9b5"></a>

Contoh berikut menggunakan `Fn::If` fungsi dalam definisi EC2 sumber daya Amazon untuk menentukan sumber daya grup keamanan mana yang akan dikaitkan dengan instance. Jika `CreateNewSecurityGroup` kondisi dievaluasi ke true, CloudFormation gunakan nilai referensi `NewSecurityGroup` (grup keamanan yang dibuat di tempat lain dalam template) untuk menentukan properti. `SecurityGroupIds` Jika `CreateNewSecurityGroup` salah, CloudFormation gunakan nilai referensi `ExistingSecurityGroupId` (parameter yang mereferensikan grup keamanan yang ada).

##### JSON
<a name="intrinsic-function-reference-conditions-if-example1.json"></a>

```
"Resources": {
  "EC2Instance": {
    "Type": "AWS::EC2::Instance",
    "Properties": {
      "ImageId": "ami-0abcdef1234567890",
      "InstanceType": "t3.micro",
      "SecurityGroupIds": {
        "Fn::If": [
          "CreateNewSecurityGroup",
          [{"Ref": "NewSecurityGroup"}],
          [{"Ref": "ExistingSecurityGroupId"}]
        ]
      }]
    }
  }
}
```

##### YAML
<a name="intrinsic-function-reference-conditions-if-example1.yaml"></a>

```
Resources:
  EC2Instance:
    Type: AWS::EC2::Instance
    Properties:
      ImageId: ami-0abcdef1234567890
      InstanceType: t3.micro
      SecurityGroupIds: !If
        - CreateNewSecurityGroup
        - [!Ref NewSecurityGroup]
        - [!Ref ExistingSecurityGroupId]
```

#### Output bersyarat
<a name="w2aac24c20c19b9b7"></a>

Di `Output` bagian templat, Anda dapat menggunakan `Fn::If` fungsi untuk mengeluarkan informasi secara kondisional. Dalam cuplikan berikut, jika `CreateNewSecurityGroup` kondisi dievaluasi ke true, CloudFormation output ID grup keamanan sumber daya. `NewSecurityGroup` Jika kondisinya salah, CloudFormation output ID grup keamanan `ExistingSecurityGroup` sumber daya.

##### JSON
<a name="intrinsic-function-reference-conditions-if-example2.json"></a>

```
"Outputs" : {
  "SecurityGroupId" : {
    "Description" : "Group ID of the security group used.",
    "Value" : {
      "Fn::If" : [
        "CreateNewSecurityGroup",
        {"Ref" : "NewSecurityGroup"},
        {"Ref" : "ExistingSecurityGroupId"}
      ]
    }
  }
}
```

##### YAML
<a name="intrinsic-function-reference-conditions-if-example2.yaml"></a>

```
Outputs:
  SecurityGroupId: 
    Description: Group ID of the security group used.
    Value: !If [CreateNewSecurityGroup, !Ref NewSecurityGroup, !Ref ExistingSecurityGroupId]
```

#### Nilai array bersyarat
<a name="w2aac24c20c19b9b9"></a>

Contoh berikut menggunakan `Fn::If` untuk memberikan nilai array yang berbeda secara kondisional berdasarkan kondisi. Jika `MoreThan2AZs` kondisi dievaluasi menjadi benar, ia menggunakan tiga subnet publik. Jika tidak, ia hanya menggunakan dua subnet publik.

##### JSON
<a name="intrinsic-function-reference-conditions-if-example-arrays.json"></a>

```
"Subnets": {
  "Fn::If": [
    "MoreThan2AZs",
    [
      {"Fn::ImportValue": "PublicSubnet01"},
      {"Fn::ImportValue": "PublicSubnet02"},
      {"Fn::ImportValue": "PublicSubnet03"}
    ],
    [
      {"Fn::ImportValue": "PublicSubnet01"},
      {"Fn::ImportValue": "PublicSubnet02"}
    ]
  ]
}
```

##### YAML
<a name="intrinsic-function-reference-conditions-if-example-arrays.yaml"></a>

```
Subnets:
  Fn::If:
    - MoreThan2AZs
    - - Fn::ImportValue: PublicSubnet01
      - Fn::ImportValue: PublicSubnet02
      - Fn::ImportValue: PublicSubnet03
    - - Fn::ImportValue: PublicSubnet01
      - Fn::ImportValue: PublicSubnet02
```

#### Properti bersyarat dan nilai properti
<a name="w2aac24c20c19b9c11"></a>

Contoh berikut menggunakan parameter `AWS::NoValue` pseudo dalam suatu `Fn::If` fungsi. Kondisi ini menggunakan snapshot untuk instans Amazon RDS DB hanya jika ID snapshot disediakan. Jika `UseDBSnapshot` kondisi dievaluasi ke true, CloudFormation menggunakan nilai `DBSnapshotName` parameter untuk `DBSnapshotIdentifier` properti. Jika syarat bernilai salah, CloudFormation menghapus properti `DBSnapshotIdentifier`.

Ini juga menggunakan `Fn::If` fungsi di `AllocatedStorage` properti instans Amazon RDS DB. Jika `IsProduction` kondisi dievaluasi ke true, ukuran penyimpanan diatur ke`100`. Jika tidak, itu diatur ke`20`.

##### JSON
<a name="intrinsic-function-reference-conditions-if-example3.json"></a>

```
"MyDatabase" : {
  "Type" : "AWS::RDS::DBInstance",
  "Properties": {
    "DBInstanceClass": "db.t3.micro",
    "AllocatedStorage": {
      "Fn::If": [
        "IsProduction",
        100,
        20
      ]
    },
    "Engine" : "MySQL",
    "EngineVersion" : "5.5",
    "MasterUsername" : { "Ref" : "DBUser" },
    "MasterUserPassword" : { "Ref" : "DBPassword" },
    "DBParameterGroupName" : { "Ref" : "MyRDSParamGroup" },
    "DBSnapshotIdentifier" : {
      "Fn::If" : [
        "UseDBSnapshot",
        {"Ref" : "DBSnapshotName"},
        {"Ref" : "AWS::NoValue"}
      ]
    }
  }
}
```

##### YAML
<a name="intrinsic-function-reference-conditions-if-example3.yaml"></a>

```
MyDatabase:
  Type: AWS::RDS::DBInstance
  Properties:
    DBInstanceClass: db.t3.micro
    AllocatedStorage: !If [IsProduction, 100, 20]
    Engine: MySQL
    EngineVersion: 5.5
    MasterUsername: !Ref DBUser
    MasterUserPassword: !Ref DBPassword
    DBParameterGroupName: !Ref MyRDSParamGroup
    DBSnapshotIdentifier: !If [UseDBSnapshot, !Ref DBSnapshotName, !Ref "AWS::NoValue"]
```

#### Kebijakan pembaruan bersyarat
<a name="w2aac24c20c19b9c13"></a>

Cuplikan berikut menyediakan kebijakan pembaruan Auto Scaling hanya jika kondisi dievaluasi `RollingUpdates` ke true. Jika kondisi dievaluasi menjadi false, CloudFormation hapus kebijakan `AutoScalingRollingUpdate` pemutakhiran.

##### JSON
<a name="intrinsic-function-reference-conditions-if-example4.json"></a>

```
"UpdatePolicy": {
  "Fn::If": [
    "RollingUpdates",
    {
      "AutoScalingRollingUpdate": {
        "MaxBatchSize": 2,
        "MinInstancesInService": 2,
        "PauseTime": "PT0M30S"
      }
    },
    {
      "Ref": "AWS::NoValue"
    }
  ]
}
```

##### YAML
<a name="intrinsic-function-reference-conditions-if-example4.yaml"></a>

```
UpdatePolicy: !If
  - RollingUpdates
  - AutoScalingRollingUpdate:
      MaxBatchSize: 2
      MinInstancesInService: 2
      PauseTime: PT0M30S
  - !Ref "AWS::NoValue"
```

## `Fn::Not`
<a name="intrinsic-function-reference-conditions-not"></a>

Menghasilkan `true` untuk syarat yang bernilai `false` atau menghasilkan `false` untuk syarat yang bernilai `true`. `Fn::Not` bertindak sebagai operator NOT.

### Pernyataan
<a name="intrinsic-function-reference-conditions-not-syntax"></a>

#### JSON
<a name="intrinsic-function-reference-conditions-not-syntax.json"></a>

```
"Fn::Not": [{{{condition}}}]
```

#### YAML
<a name="intrinsic-function-reference-conditions-not-syntax.yaml"></a>

Sintaks untuk nama fungsi penuh:

```
Fn::Not: [{{condition}}]
```

Sintaks untuk bentuk pendek:

```
!Not [{{condition}}]
```

### Parameter
<a name="w2aac24c20c21b7"></a>

condition  <a name="condition"></a>
Suatu syarat seperti `Fn::Equals` yang bernilai `true` atau `false`.

### `Fn::Not`contoh penggunaan
<a name="w2aac24c20c21b9"></a>

Syarat `EnvCondition` berikut bernilai true jika nilai untuk parameter `EnvironmentType` tidak sama dengan `prod`:

#### JSON
<a name="intrinsic-function-reference-conditions-not-example.json"></a>

```
"MyNotCondition" : {
   "Fn::Not" : [{
      "Fn::Equals" : [
         {"Ref" : "EnvironmentType"},
         "prod"
      ]
   }]
}
```

#### YAML
<a name="intrinsic-function-reference-conditions-not-example.yaml"></a>

```
MyNotCondition:
  !Not [!Equals [!Ref EnvironmentType, prod]]
```

## `Fn::Or`
<a name="intrinsic-function-reference-conditions-or"></a>

Menghasilkan `true` jika semua syarat yang ditentukan bernilai true, atau menghasilkan `false` jika semua syarat bernilai false. `Fn::Or` bertindak sebagai operator OR. Jumlah minimum syarat yang dapat Anda sertakan adalah 2, dan maksimum adalah 10.

### Pernyataan
<a name="intrinsic-function-reference-conditions-or-syntax"></a>

#### JSON
<a name="intrinsic-function-reference-conditions-or-syntax.json"></a>

```
"Fn::Or": [{{{condition}}}, {{{...}}}]
```

#### YAML
<a name="intrinsic-function-reference-conditions-or-syntax.yaml"></a>

Sintaks untuk nama fungsi penuh:

```
Fn::Or: [{{condition, ...}}]
```

Sintaks untuk bentuk pendek:

```
!Or [{{condition, ...}}]
```

### Parameter
<a name="w2aac24c20c23b7"></a>

condition  
Suatu syarat yang bernilai `true` atau `false`.

### `Fn::Or`contoh penggunaan
<a name="w2aac24c20c23b9"></a>

`MyOrCondition` berikut ini bernilai true jika nama grup keamanan yang direferensikan sama dengan `sg-mysggroup` atau jika `SomeOtherCondition` bernilai true:

#### JSON
<a name="intrinsic-function-reference-conditions-or-example.json"></a>

```
"MyOrCondition" : {
   "Fn::Or" : [
      {"Fn::Equals" : ["sg-mysggroup", {"Ref" : "ASecurityGroup"}]},
      {"Condition" : "SomeOtherCondition"}
   ]
}
```

#### YAML
<a name="intrinsic-function-reference-conditions-or-example.yaml"></a>

```
MyOrCondition:
  !Or [!Equals [sg-mysggroup, !Ref ASecurityGroup], Condition: SomeOtherCondition]
```

## Fungsi yang didukung
<a name="w2aac24c20c25"></a>

Anda dapat menggunakan fungsi berikut di syarat `Fn::If`:
+ `Fn::Base64`
+ `Fn::FindInMap`
+ `Fn::GetAtt`
+ `Fn::GetAZs`
+ `Fn::If`
+ `Fn::Join`
+ `Fn::Select`
+ `Fn::Sub`
+ `Ref`

Anda dapat menggunakan fungsi-fungsi berikut di semua fungsi syarat lainnya, seperti `Fn::Equals` dan `Fn::Or`:
+ `Fn::FindInMap`
+ `Ref`
+ Fungsi syarat lainnya

## Templat sampel
<a name="conditions-sample-templates"></a>

### Membuat sumber daya secara kondisional untuk tumpukan produksi, pengembangan, atau tes
<a name="w2aac24c20c27b3"></a>

Dalam beberapa kasus, Anda mungkin ingin membuat tumpukan yang mirip tetapi dengan tweak kecil. Misalnya, Anda mungkin memiliki templat yang Anda gunakan untuk aplikasi produksi. Anda ingin membuat tumpukan produksi yang sama agar Anda dapat menggunakannya untuk pengembangan atau pengujian. Namun, untuk pengembangan dan pengujian, Anda mungkin tidak memerlukan semua kapasitas tambahan yang disertakan dalam tumpukan tingkat produksi. Sebaliknya, Anda dapat menggunakan parameter input jenis lingkungan guna membuat sumber daya tumpukan secara kondisional yang khusus untuk produksi, pengembangan, atau pengujian, seperti yang ditunjukkan dalam contoh berikut:

Anda dapat menentukan `prod`, `dev`, atau `test` untuk parameter `EnvType`. Untuk setiap jenis lingkungan, templat menentukan jenis instans yang berbeda. Jenis instans dapat berkisar dari instans besar yang dioptimalkan dengan komputasi hingga instans kecil untuk tujuan umum. Untuk menentukan jenis instance secara kondisional, template mendefinisikan dua kondisi di `Conditions` bagian template:`CreateProdResources`, yang mengevaluasi ke true jika nilai `EnvType` parameter sama dengan `prod` dan`CreateDevResources`, yang mengevaluasi ke true jika nilai parameter sama dengan. `dev`

Di properti `InstanceType`, templat menyimpan dua fungsi intrinsik `Fn::If` untuk menentukan jenis instans yang akan digunakan. Jika syarat `CreateProdResources` true, jenis instans adalah `c5.xlarge`. Jika syarat salah, syarat `CreateDevResources` dievaluasi. Jika syarat `CreateDevResources` true, jenis instans adalah `t3.medium` atau `t3.small`.

Selain jenis instans, lingkungan produksi membuat dan melampirkan EC2 volume Amazon ke instance. Sumber daya `MountPoint` dan `NewVolume` yang terkait dengan syarat `CreateProdResources` sehingga sumber daya dibuat hanya jika syarat bernilai true.

**Example JSON**  

```
{
  "AWSTemplateFormatVersion" : "2010-09-09",
  "Parameters" : {
    "EnvType" : {
      "Description" : "Environment type.",
      "Default" : "test",
      "Type" : "String",
      "AllowedValues" : ["prod", "dev", "test"],
      "ConstraintDescription" : "must specify prod, dev, or test."
    }
  },
  "Conditions" : {
    "CreateProdResources" : {"Fn::Equals" : [{"Ref" : "EnvType"}, "prod"]},
    "CreateDevResources" : {"Fn::Equals" : [{"Ref" : "EnvType"}, "dev"]}
  },
  "Resources" : {
    "EC2Instance" : {
      "Type" : "AWS::EC2::Instance",
      "Properties" : {
        "ImageId" : "ami-1234567890abcdef0",
        "InstanceType" : { "Fn::If" : [
          "CreateProdResources",
          "c5.xlarge",
          {"Fn::If" : [
            "CreateDevResources",
            "t3.medium",
            "t3.small"
          ]}
        ]}
      }
    },
    "MountPoint" : {
      "Type" : "AWS::EC2::VolumeAttachment",
      "Condition" : "CreateProdResources",
      "Properties" : {
        "InstanceId" : { "Ref" : "EC2Instance" },
        "VolumeId"  : { "Ref" : "NewVolume" },
        "Device" : "/dev/sdh"
      }
    },
    "NewVolume" : {
      "Type" : "AWS::EC2::Volume",
      "Condition" : "CreateProdResources",
      "Properties" : {
        "Size" : "100",
        "AvailabilityZone" : { "Fn::GetAtt" : [ "EC2Instance", "AvailabilityZone" ]}
      }
    }
  }
}
```

**Example YAML**  

```
AWSTemplateFormatVersion: "2010-09-09"
Parameters:
  EnvType:
    Description: Environment type.
    Default: test
    Type: String
    AllowedValues: [prod, dev, test]
    ConstraintDescription: must specify prod, dev, or test.
Conditions:
  CreateProdResources: !Equals [!Ref EnvType, prod]
  CreateDevResources: !Equals [!Ref EnvType, "dev"]
Resources:
  EC2Instance:
    Type: AWS::EC2::Instance
    Properties:
      ImageId: ami-1234567890abcdef0
      InstanceType: !If [CreateProdResources, c5.xlarge, !If [CreateDevResources, t3.medium, t3.small]]    
  MountPoint:
    Type: AWS::EC2::VolumeAttachment
    Condition: CreateProdResources
    Properties:
      InstanceId: !Ref EC2Instance
      VolumeId: !Ref NewVolume
      Device: /dev/sdh
  NewVolume:
    Type: AWS::EC2::Volume
    Condition: CreateProdResources
    Properties:
      Size: 100
      AvailabilityZone: !GetAtt EC2Instance.AvailabilityZone
```

**catatan**  
Untuk contoh penggunaan kondisi yang lebih kompleks untuk membuat sumber daya, lihat [`Condition`atribut](aws-attribute-condition.md) topiknya.